diff --git a/workspaces/kiali/.changeset/warm-humans-juggle.md b/workspaces/kiali/.changeset/warm-humans-juggle.md new file mode 100644 index 0000000000..a7ece2a1e6 --- /dev/null +++ b/workspaces/kiali/.changeset/warm-humans-juggle.md @@ -0,0 +1,6 @@ +--- +'@backstage-community/plugin-kiali-backend': patch +'@backstage-community/plugin-kiali': patch +--- + +The `kiali` and `kiali-backend` plugins from the [janus-idp/backstage-plugins](https://github.com/janus-idp/backstage-plugins) repository were migrated to the community plugins, based on commit [92a16c5](https://github.com/janus-idp/backstage-plugins/commit/92a16c5). The migration was performed by following the manual migration steps outlined in the [Community Plugins CONTRIBUTING guide](https://github.com/backstage/community-plugins/blob/main/CONTRIBUTING.md#migrating-a-plugin) diff --git a/workspaces/kiali/DEVELOPMENT.md b/workspaces/kiali/DEVELOPMENT.md new file mode 100644 index 0000000000..f5eb24ec85 --- /dev/null +++ b/workspaces/kiali/DEVELOPMENT.md @@ -0,0 +1,64 @@ +# Development environment + +## Full Setup + +1. Configure you `app-config.local.yaml` with kiali configuration + + ```yaml + catalog: + providers: + # highlight-add-start + kiali: + # Required. Kiali endpoint + url: ${KIALI_ENDPOINT} + # Optional. Required by token authentication + serviceAccountToken: ${KIALI_SERVICE_ACCOUNT_TOKEN} + # Optional. defaults false + skipTLSVerify: true + # Optional + caData: ${KIALI_CONFIG_CA_DATA} + # Optional. Local path to CA file + caFile: '' + # Optional. Time in seconds that session is enabled, defaults to 1 minute. + sessionTime: 60 + # highlight-add-end + ``` + +2. Run + +```bash + export KIALI_BASE_URL=https://kiali-istio-system.apps-crc.testing;` + yarn start:backstage +``` + +## Configure auth + +### Token authentication + +1. Set the parameters in app-config.local.yaml + + ```yaml + catalog: + providers: + # highlight-add-start + kiali: + # Required. Kiali endpoint + url: ${KIALI_ENDPOINT} + # Optional. Required by token authentication + serviceAccountToken: ${KIALI_SERVICE_ACCOUNT_TOKEN} + # Optional. defaults false + skipTLSVerify: true + # Optional + ``` + +2. To get `KIALI_SERVICE_ACCOUNT_TOKEN` create your service account and create the token + + ```bash + kubectl create token $KIALI_SERVICE_ACCOUNT + ``` + + or if you installed kiali with the operator then execute + + ```bash + export KIALI_SERVICE_ACCOUNT_TOKEN=$(kubectl describe secret $(kubectl get secret -n istio-system | grep kiali-service-account-token | cut -d" " -f1) -n istio-system | grep token: | cut -d ":" -f2 | sed 's/^ *//') + ``` diff --git a/workspaces/kiali/README.md b/workspaces/kiali/README.md index 94044a3fa6..7ad884bb31 100644 --- a/workspaces/kiali/README.md +++ b/workspaces/kiali/README.md @@ -1,16 +1,162 @@ -# [Backstage](https://backstage.io) +# Kiali plugin for Backstage -This is your newly scaffolded Backstage App, Good Luck! +The Kiali Plugin +This plugin exposes information about your entity-specific ServiceMesh objects. -To start the app, run: +## Capabilities -```sh -yarn install -yarn dev -``` +The Kiali plugin has the following capabilities: + +- Overview + - Metrics by namespace + - Health by namespace + - Canary info + - Istio Config warnings +- Worklist + +## For administrators + +### Setting up the Kiali plugin + +#### Prerequisites + +- The following annotation is added to the entity's `catalog-info.yaml` file to identify whether an entity contains the Kubernetes resources: + + ```yaml + annotations: + ... + + kiali.io/namespace: + ``` + +#### Setting up the Kiali frontend package + +1. Install the Kiali plugin using the following commands: + + ```console + yarn workspace app add @backstage-community/plugin-kiali + ``` + +2. Select the components that you want to use, such as: + + - `KialiPage`: This is a standalone page or dashboard displaying all namespaces in the mesh. You can add `KialiPage` to `packages/app/src/App.tsx` file as follows: + + ```tsx title="packages/app/src/App.tsx" + /* highlight-add-next-line */ + import { KialiPage } from '@backstage-community/plugin-kiali'; + + const routes = ( + + {/* ... */} + {/* highlight-add-next-line */} + } /> + + ); + ``` + + You can also update navigation in `packages/app/src/components/Root/Root.tsx` as follows: + + ```tsx title="packages/app/src/components/Root/Root.tsx" + /* highlight-add-next-line */ + import { KialiIcon } from '@backstage-community/plugin-kiali'; + + export const Root = ({ children }: PropsWithChildren<{}>) => ( + + + }> + {/* ... */} + {/* highlight-add-next-line */} + + + {/* ... */} + + {children} + + ); + ``` + + - `EntityKialiContent`: This component is a React context provided for Kiali data, which is related to the current entity. The `EntityKialiContent` component is used to display any data on the React components mentioned in `packages/app/src/components/catalog/EntityPage.tsx`: + + ```tsx title="packages/app/src/components/catalog/EntityPage.tsx" + /* highlight-add-next-line */ + import { EntityKialiContent } from '@backstage-community/plugin-kiali'; -To generate knip reports for this app, run: + const serviceEntityPage = ( + + {/* ... */} + {/* highlight-add-start */} + + + + {/* highlight-add-end */} + + ); + ``` -```sh -yarn backstage-repo-tools knip-reports +3. Configure you `app-config.yaml` with kiali configuration + +```yaml +catalog: + providers: + # highlight-add-start + kiali: + # Required. Kiali endpoint + url: ${KIALI_ENDPOINT} + # Optional. Required by token authentication + serviceAccountToken: ${KIALI_SERVICE_ACCOUNT_TOKEN} + # Optional. defaults false + skipTLSVerify: true + # Optional + caData: ${KIALI_CONFIG_CA_DATA} + # Optional. Local path to CA file + caFile: '' + # Optional. Time in seconds that session is enabled, defaults to 1 minute. + sessionTime: 60 + # highlight-add-end ``` + +Authentication methods: + +- anonymous [Read docs about this authentication in kiali.io](https://kiali.io/docs/configuration/authentication/anonymous/) +- token [Read docs about this authentication in kiali.io](https://kiali.io/docs/configuration/authentication/token/) + +The following table describes the parameters that you can configure to enable the plugin under `catalog.providers.keycloakOrg.` object in the `app-config.yaml` file: + +| Name | Description | Default Value | Required | +| --------------------- | -------------------------------------------------------------------------------------------------------------------- | ------------- | --------------------------------------- | +| `url` | Location of the Kiali server, such as `https://localhost:4000` | "" | Yes | +| `serviceAccountToken` | Service Account Token which is used for querying data from Kiali | "" | Yes if using token based authentication | +| `skipTLSVerify` | Skip TLS certificate verification presented by the API server | false | No | +| `caData` | Base64-encoded certificate authority bundle in PEM format | "" | No | +| `caFile` | Filesystem path (on the host where the Backstage process is running) to a certificate authority bundle in PEM format | "" | No | +| `sessionTime` | Time in seconds that session is enabled | 60 | No | + +## For users + +We have 2 ways to consume the Kiali plugin, entity view or full view. + +1. Open your Backstage application and select a component from the **Catalog** page. + +![catalog-list](./images/docs/EntityStep.png) + +2. We can see the GraphCard in the overview section + +![GraphCard](./images/docs/GraphCard.png) + +3. Go to the **Kiali** tab. + + The **Kiali** tab displays the Overview view associated to a Servicemesh. + + ![overview-tab](./images/docs/EntityView.png) + + An If we scroll down we can see the full picture + + ![overview-tab](./images/docs/EntityFullView.png) + +To see the full view we can select the kiali option sidebar. + +![kialiPage](./images/docs/KialiPage.png) + +## Development + +To develop/contribute in kiali plugin follow [these instructions](./DEVELOPMENT.md) diff --git a/workspaces/kiali/app-config.yaml b/workspaces/kiali/app-config.yaml new file mode 100644 index 0000000000..12f7f811bf --- /dev/null +++ b/workspaces/kiali/app-config.yaml @@ -0,0 +1,107 @@ +app: + title: Kiali - The Console for Istio Service Mesh + baseUrl: http://localhost:3000 + +organization: + name: Kiali Community + +backend: + # Used for enabling authentication, secret is shared by all backend plugins + # See https://backstage.io/docs/auth/service-to-service-auth for + # information on the format + # auth: + # keys: + # - secret: ${BACKEND_SECRET} + baseUrl: http://localhost:7007 + listen: + port: 7007 + # Uncomment the following host directive to bind to specific interfaces + # host: 127.0.0.1 + csp: + connect-src: ["'self'", 'http:', 'https:'] + # Content-Security-Policy directives follow the Helmet format: https://helmetjs.github.io/#reference + # Default Helmet Content-Security-Policy values can be removed by setting the key to false + cors: + origin: http://localhost:3000 + methods: [GET, HEAD, PATCH, POST, PUT, DELETE] + credentials: true + # This is for local development only, it is not recommended to use this in production + # The production database configuration is stored in app-config.production.yaml + database: + client: better-sqlite3 + connection: ':memory:' + # workingDirectory: /tmp # Use this to configure a working directory for the scaffolder, defaults to the OS temp-dir + +integrations: + github: + - host: github.com + # This is a Personal Access Token or PAT from GitHub. You can find out how to generate this token, and more information + # about setting up the GitHub integration here: https://backstage.io/docs/integrations/github/locations#configuration + token: ${GITHUB_TOKEN} + ### Example for how to add your GitHub Enterprise instance using the API: + # - host: ghe.example.net + # apiBaseUrl: https://ghe.example.net/api/v3 + # token: ${GHE_TOKEN} + +proxy: + ### Example for how to add a proxy endpoint for the frontend. + ### A typical reason to do this is to handle HTTPS and CORS for internal services. + # endpoints: + # '/test': + # target: 'https://example.com' + # changeOrigin: true + +# Reference documentation http://backstage.io/docs/features/techdocs/configuration +# Note: After experimenting with basic setup, use CI/CD to generate docs +# and an external cloud storage when deploying TechDocs for production use-case. +# https://backstage.io/docs/features/techdocs/how-to-guides#how-to-migrate-from-techdocs-basic-to-recommended-deployment-approach +techdocs: + builder: 'local' # Alternatives - 'external' + generator: + runIn: 'docker' # Alternatives - 'local' + publisher: + type: 'local' # Alternatives - 'googleGcs' or 'awsS3'. Read documentation for using alternatives. + +auth: + # see https://backstage.io/docs/auth/ to learn about auth providers + providers: + # See https://backstage.io/docs/auth/guest/provider + guest: {} + +scaffolder: + # see https://backstage.io/docs/features/software-templates/configuration for software template options + +catalog: + import: + entityFilename: catalog-info.yaml + pullRequestBranchName: backstage-integration + rules: + - allow: [Component, System, API, Resource, Location] + locations: + # Local example data, file locations are relative to the backend process, typically `packages/backend` + - type: file + target: ../../examples/kialiEntities.yaml + +kubernetes: + # see https://backstage.io/docs/features/kubernetes/configuration for kubernetes configuration options + +kiali: + # See the README file for configuration + url: ${KIALI_BASE_URL} + # Optional. Kiali public URL to redirect to standalone Kiali. When not specified, url will be used. + # urlExternal: '' + # Optional. Required by token authentication + # serviceAccountToken: ${KIALI_SERVICE_ACCOUNT_TOKEN} + # Optional. defaults false + skipTLSVerify: true + # Optional + # caData: ${KIALI_CONFIG_CA_DATA} + # Optional. Local path to CA file + # caFile: '' + # Optional. Time in seconds that session is enabled, defaults to 1 minute. + sessionTime: 60 + +# see https://backstage.io/docs/permissions/getting-started for more on the permission framework +permission: + # setting this to `false` will disable permissions + enabled: true diff --git a/workspaces/kiali/backstage.json b/workspaces/kiali/backstage.json index 1efaf2de35..f818fc0e26 100644 --- a/workspaces/kiali/backstage.json +++ b/workspaces/kiali/backstage.json @@ -1 +1 @@ -{ "version": "1.32.0" } +{ "version": "1.32.2" } diff --git a/workspaces/kiali/examples/kialiEntities.yaml b/workspaces/kiali/examples/kialiEntities.yaml new file mode 100644 index 0000000000..c8fada59d9 --- /dev/null +++ b/workspaces/kiali/examples/kialiEntities.yaml @@ -0,0 +1,34 @@ +--- +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + name: istio-system + description: Namespace istio-system. + tags: + - istio + - kiali + - core + - servicemesh + annotations: + 'kiali.io/namespace': istio-system +spec: + type: service + lifecycle: production + owner: user:guest +--- +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + name: bookinfo + description: Bookinfo Application + tags: + - bookinfo + - kiali + - core + - servicemesh + annotations: + 'kiali.io/namespace': bookinfo +spec: + type: service + lifecycle: production + owner: user:guest diff --git a/workspaces/kiali/images/docs/EntityFullView.png b/workspaces/kiali/images/docs/EntityFullView.png new file mode 100644 index 0000000000..e23c6ce137 Binary files /dev/null and b/workspaces/kiali/images/docs/EntityFullView.png differ diff --git a/workspaces/kiali/images/docs/EntityStep.png b/workspaces/kiali/images/docs/EntityStep.png new file mode 100644 index 0000000000..d9fe32f404 Binary files /dev/null and b/workspaces/kiali/images/docs/EntityStep.png differ diff --git a/workspaces/kiali/images/docs/EntityView.png b/workspaces/kiali/images/docs/EntityView.png new file mode 100644 index 0000000000..3586584924 Binary files /dev/null and b/workspaces/kiali/images/docs/EntityView.png differ diff --git a/workspaces/kiali/images/docs/GraphCard.png b/workspaces/kiali/images/docs/GraphCard.png new file mode 100644 index 0000000000..40fda32c6d Binary files /dev/null and b/workspaces/kiali/images/docs/GraphCard.png differ diff --git a/workspaces/kiali/images/docs/KialiPage.png b/workspaces/kiali/images/docs/KialiPage.png new file mode 100644 index 0000000000..f1a72de78e Binary files /dev/null and b/workspaces/kiali/images/docs/KialiPage.png differ diff --git a/workspaces/kiali/images/logo/kiali_logo_lightbkg_1280px.png b/workspaces/kiali/images/logo/kiali_logo_lightbkg_1280px.png new file mode 100644 index 0000000000..d7aa3e494c Binary files /dev/null and b/workspaces/kiali/images/logo/kiali_logo_lightbkg_1280px.png differ diff --git a/workspaces/kiali/images/logo/kiali_logo_lightbkg_200px.png b/workspaces/kiali/images/logo/kiali_logo_lightbkg_200px.png new file mode 100644 index 0000000000..c05d8d0ec9 Binary files /dev/null and b/workspaces/kiali/images/logo/kiali_logo_lightbkg_200px.png differ diff --git a/workspaces/kiali/images/logo/kiali_logo_lightbkg_600px.png b/workspaces/kiali/images/logo/kiali_logo_lightbkg_600px.png new file mode 100644 index 0000000000..c381aaa0ba Binary files /dev/null and b/workspaces/kiali/images/logo/kiali_logo_lightbkg_600px.png differ diff --git a/workspaces/kiali/package.json b/workspaces/kiali/package.json index b04536db55..169e9e39e8 100644 --- a/workspaces/kiali/package.json +++ b/workspaces/kiali/package.json @@ -6,6 +6,9 @@ "node": "18 || 20" }, "scripts": { + "start:backstage": "concurrently -c auto -n \"fe,be\" -p \"{name}:{pid}\" \"yarn start-app\" \"yarn start-backend\"", + "start-app": "yarn workspace app start", + "start-backend": "yarn workspace backend start", "tsc": "tsc", "tsc:full": "tsc --skipLibCheck true --incremental false", "build:all": "backstage-cli repo build --all", @@ -18,6 +21,7 @@ "lint": "backstage-cli repo lint --since origin/main", "lint:all": "backstage-cli repo lint", "prettier:check": "prettier --check .", + "prettier:write": "prettier --write .", "new": "backstage-cli new --scope @backstage-community", "postinstall": "cd ../../ && yarn install" }, @@ -37,14 +41,18 @@ "@backstage/e2e-test-utils": "^0.1.1", "@backstage/repo-tools": "^0.10.0", "@changesets/cli": "^2.27.1", + "@ianvs/prettier-plugin-sort-imports": "^4.3.1", "@spotify/prettier-config": "^12.0.0", + "@types/deep-freeze": "^0.1.5", + "concurrently": "^8.2.2", "knip": "^5.27.4", "node-gyp": "^9.0.0", "prettier": "^2.3.2", "typescript": "~5.3.0" }, "dependencies": { - "@ianvs/prettier-plugin-sort-imports": "^4.3.1" + "@backstage-community/plugin-kiali": "workspace:^", + "@backstage-community/plugin-kiali-backend": "workspace:^" }, "resolutions": { "@types/react": "^18", diff --git a/workspaces/kiali/packages/app/.eslintignore b/workspaces/kiali/packages/app/.eslintignore new file mode 100644 index 0000000000..a48cf0de7a --- /dev/null +++ b/workspaces/kiali/packages/app/.eslintignore @@ -0,0 +1 @@ +public diff --git a/workspaces/kiali/packages/app/.eslintrc.js b/workspaces/kiali/packages/app/.eslintrc.js new file mode 100644 index 0000000000..e2a53a6ad2 --- /dev/null +++ b/workspaces/kiali/packages/app/.eslintrc.js @@ -0,0 +1 @@ +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); diff --git a/workspaces/kiali/packages/app/e2e-tests/app.test.ts b/workspaces/kiali/packages/app/e2e-tests/app.test.ts new file mode 100644 index 0000000000..9763cd9f2b --- /dev/null +++ b/workspaces/kiali/packages/app/e2e-tests/app.test.ts @@ -0,0 +1,27 @@ +/* + * Copyright 2020 The Backstage Authors + * + * 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. + */ + +import { expect, test } from '@playwright/test'; + +test('App should render the welcome page', async ({ page }) => { + await page.goto('/'); + + const enterButton = page.getByRole('button', { name: 'Enter' }); + await expect(enterButton).toBeVisible(); + await enterButton.click(); + + await expect(page.getByText('My Company Catalog')).toBeVisible(); +}); diff --git a/workspaces/kiali/packages/app/package.json b/workspaces/kiali/packages/app/package.json new file mode 100644 index 0000000000..1fcf938618 --- /dev/null +++ b/workspaces/kiali/packages/app/package.json @@ -0,0 +1,79 @@ +{ + "name": "app", + "version": "0.0.0", + "private": true, + "bundled": true, + "repository": { + "type": "git", + "url": "https://github.com/backstage/community-plugins", + "directory": "workspaces/kiali/packages/app" + }, + "backstage": { + "role": "frontend" + }, + "scripts": { + "start": "backstage-cli package start", + "build": "backstage-cli package build", + "clean": "backstage-cli package clean", + "test": "backstage-cli package test", + "lint": "backstage-cli package lint" + }, + "dependencies": { + "@backstage-community/plugin-kiali": "workspace:^", + "@backstage/app-defaults": "^1.5.12", + "@backstage/catalog-model": "^1.7.0", + "@backstage/cli": "^0.28.0", + "@backstage/core-app-api": "^1.15.1", + "@backstage/core-components": "^0.15.1", + "@backstage/core-plugin-api": "^1.10.0", + "@backstage/integration-react": "^1.2.0", + "@backstage/plugin-api-docs": "^0.11.11", + "@backstage/plugin-catalog": "^1.24.0", + "@backstage/plugin-catalog-common": "^1.1.0", + "@backstage/plugin-catalog-graph": "^0.4.11", + "@backstage/plugin-catalog-import": "^0.12.5", + "@backstage/plugin-catalog-react": "^1.14.0", + "@backstage/plugin-kubernetes": "^0.11.16", + "@backstage/plugin-org": "^0.6.31", + "@backstage/plugin-permission-react": "^0.4.27", + "@backstage/plugin-scaffolder": "^1.26.0", + "@backstage/plugin-search": "^1.4.18", + "@backstage/plugin-search-react": "^1.8.1", + "@backstage/plugin-techdocs": "^1.11.0", + "@backstage/plugin-techdocs-module-addons-contrib": "^1.1.16", + "@backstage/plugin-techdocs-react": "^1.2.9", + "@backstage/plugin-user-settings": "^0.8.14", + "@backstage/theme": "^0.6.0", + "@material-ui/core": "^4.12.2", + "@material-ui/icons": "^4.9.1", + "react": "^18.0.2", + "react-dom": "^18.0.2", + "react-router": "^6.3.0", + "react-router-dom": "^6.3.0" + }, + "devDependencies": { + "@backstage/test-utils": "^1.7.0", + "@playwright/test": "^1.32.3", + "@testing-library/dom": "^9.0.0", + "@testing-library/jest-dom": "^6.0.0", + "@testing-library/react": "^14.0.0", + "@testing-library/user-event": "^14.0.0", + "@types/react-dom": "*", + "cross-env": "^7.0.0" + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + }, + "files": [ + "dist" + ] +} diff --git a/workspaces/kiali/packages/app/public/android-chrome-192x192.png b/workspaces/kiali/packages/app/public/android-chrome-192x192.png new file mode 100644 index 0000000000..eec0ae25b9 Binary files /dev/null and b/workspaces/kiali/packages/app/public/android-chrome-192x192.png differ diff --git a/workspaces/kiali/packages/app/public/apple-touch-icon.png b/workspaces/kiali/packages/app/public/apple-touch-icon.png new file mode 100644 index 0000000000..3158830ac7 Binary files /dev/null and b/workspaces/kiali/packages/app/public/apple-touch-icon.png differ diff --git a/workspaces/kiali/packages/app/public/favicon-16x16.png b/workspaces/kiali/packages/app/public/favicon-16x16.png new file mode 100644 index 0000000000..58cf61a35e Binary files /dev/null and b/workspaces/kiali/packages/app/public/favicon-16x16.png differ diff --git a/workspaces/kiali/packages/app/public/favicon-32x32.png b/workspaces/kiali/packages/app/public/favicon-32x32.png new file mode 100644 index 0000000000..c0915ece75 Binary files /dev/null and b/workspaces/kiali/packages/app/public/favicon-32x32.png differ diff --git a/workspaces/kiali/packages/app/public/favicon.ico b/workspaces/kiali/packages/app/public/favicon.ico new file mode 100644 index 0000000000..5e45e5dfbd Binary files /dev/null and b/workspaces/kiali/packages/app/public/favicon.ico differ diff --git a/workspaces/kiali/packages/app/public/index.html b/workspaces/kiali/packages/app/public/index.html new file mode 100644 index 0000000000..18da7c4773 --- /dev/null +++ b/workspaces/kiali/packages/app/public/index.html @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + <%= config.getOptionalString('app.title') ?? 'Backstage' %> + + + +
+ + + diff --git a/workspaces/kiali/packages/app/public/manifest.json b/workspaces/kiali/packages/app/public/manifest.json new file mode 100644 index 0000000000..4a7c1b4ec4 --- /dev/null +++ b/workspaces/kiali/packages/app/public/manifest.json @@ -0,0 +1,15 @@ +{ + "short_name": "Backstage", + "name": "Backstage", + "icons": [ + { + "src": "favicon.ico", + "sizes": "48x48", + "type": "image/png" + } + ], + "start_url": "./index.html", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/workspaces/kiali/packages/app/public/robots.txt b/workspaces/kiali/packages/app/public/robots.txt new file mode 100644 index 0000000000..01b0f9a107 --- /dev/null +++ b/workspaces/kiali/packages/app/public/robots.txt @@ -0,0 +1,2 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * diff --git a/workspaces/kiali/packages/app/public/safari-pinned-tab.svg b/workspaces/kiali/packages/app/public/safari-pinned-tab.svg new file mode 100644 index 0000000000..0f500b3002 --- /dev/null +++ b/workspaces/kiali/packages/app/public/safari-pinned-tab.svg @@ -0,0 +1 @@ +Created by potrace 1.11, written by Peter Selinger 2001-2013 \ No newline at end of file diff --git a/workspaces/kiali/packages/app/src/App.test.tsx b/workspaces/kiali/packages/app/src/App.test.tsx new file mode 100644 index 0000000000..19a8d6cbae --- /dev/null +++ b/workspaces/kiali/packages/app/src/App.test.tsx @@ -0,0 +1,44 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { render, waitFor } from '@testing-library/react'; +import React from 'react'; +import App from './App'; + +describe('App', () => { + it('should render', async () => { + process.env = { + NODE_ENV: 'test', + APP_CONFIG: [ + { + data: { + app: { title: 'Test' }, + backend: { baseUrl: 'http://localhost:7007' }, + techdocs: { + storageUrl: 'http://localhost:7007/api/techdocs/static/docs', + }, + }, + context: 'test', + }, + ] as any, + }; + + const rendered = render(); + + await waitFor(() => { + expect(rendered.baseElement).toBeInTheDocument(); + }); + }); +}); diff --git a/workspaces/kiali/packages/app/src/App.tsx b/workspaces/kiali/packages/app/src/App.tsx new file mode 100644 index 0000000000..3baf955e25 --- /dev/null +++ b/workspaces/kiali/packages/app/src/App.tsx @@ -0,0 +1,125 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { KialiPage } from '@backstage-community/plugin-kiali'; +import { createApp } from '@backstage/app-defaults'; +import { AppRouter, FlatRoutes } from '@backstage/core-app-api'; +import { + AlertDisplay, + OAuthRequestDialog, + SignInPage, +} from '@backstage/core-components'; +import { apiDocsPlugin, ApiExplorerPage } from '@backstage/plugin-api-docs'; +import { + CatalogEntityPage, + CatalogIndexPage, + catalogPlugin, +} from '@backstage/plugin-catalog'; +import { catalogEntityCreatePermission } from '@backstage/plugin-catalog-common/alpha'; +import { CatalogGraphPage } from '@backstage/plugin-catalog-graph'; +import { + CatalogImportPage, + catalogImportPlugin, +} from '@backstage/plugin-catalog-import'; +import { orgPlugin } from '@backstage/plugin-org'; +import { RequirePermission } from '@backstage/plugin-permission-react'; +import { ScaffolderPage, scaffolderPlugin } from '@backstage/plugin-scaffolder'; +import { SearchPage } from '@backstage/plugin-search'; +import { + TechDocsIndexPage, + techdocsPlugin, + TechDocsReaderPage, +} from '@backstage/plugin-techdocs'; +import { ReportIssue } from '@backstage/plugin-techdocs-module-addons-contrib'; +import { TechDocsAddons } from '@backstage/plugin-techdocs-react'; +import { UserSettingsPage } from '@backstage/plugin-user-settings'; +import React from 'react'; +import { Navigate, Route } from 'react-router-dom'; +import { apis } from './apis'; +import { entityPage } from './components/catalog/EntityPage'; +import { Root } from './components/Root'; +import { searchPage } from './components/search/SearchPage'; + +const app = createApp({ + apis, + bindRoutes({ bind }) { + bind(catalogPlugin.externalRoutes, { + createComponent: scaffolderPlugin.routes.root, + viewTechDoc: techdocsPlugin.routes.docRoot, + createFromTemplate: scaffolderPlugin.routes.selectedTemplate, + }); + bind(apiDocsPlugin.externalRoutes, { + registerApi: catalogImportPlugin.routes.importPage, + }); + bind(scaffolderPlugin.externalRoutes, { + registerComponent: catalogImportPlugin.routes.importPage, + viewTechDoc: techdocsPlugin.routes.docRoot, + }); + bind(orgPlugin.externalRoutes, { + catalogIndex: catalogPlugin.routes.catalogIndex, + }); + }, + components: { + SignInPage: props => , + }, +}); + +const routes = ( + + } /> + } /> + } + > + {entityPage} + + } /> + } + > + + + + + } /> + } /> + + + + } + /> + }> + {searchPage} + + } /> + } /> + } /> + +); + +export default app.createRoot( + <> + + + + {routes} + + , +); diff --git a/workspaces/kiali/packages/app/src/apis.ts b/workspaces/kiali/packages/app/src/apis.ts new file mode 100644 index 0000000000..3b1db0b574 --- /dev/null +++ b/workspaces/kiali/packages/app/src/apis.ts @@ -0,0 +1,34 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { + AnyApiFactory, + configApiRef, + createApiFactory, +} from '@backstage/core-plugin-api'; +import { + ScmAuth, + ScmIntegrationsApi, + scmIntegrationsApiRef, +} from '@backstage/integration-react'; + +export const apis: AnyApiFactory[] = [ + createApiFactory({ + api: scmIntegrationsApiRef, + deps: { configApi: configApiRef }, + factory: ({ configApi }) => ScmIntegrationsApi.fromConfig(configApi), + }), + ScmAuth.createDefaultApiFactory(), +]; diff --git a/workspaces/kiali/packages/app/src/components/Root/LogoFull.tsx b/workspaces/kiali/packages/app/src/components/Root/LogoFull.tsx new file mode 100644 index 0000000000..52c92a6944 --- /dev/null +++ b/workspaces/kiali/packages/app/src/components/Root/LogoFull.tsx @@ -0,0 +1,45 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { makeStyles } from '@material-ui/core'; +import React from 'react'; + +const useStyles = makeStyles({ + svg: { + width: 'auto', + height: 30, + }, + path: { + fill: '#7df3e1', + }, +}); +const LogoFull = () => { + const classes = useStyles(); + + return ( + + + + ); +}; + +export default LogoFull; diff --git a/workspaces/kiali/packages/app/src/components/Root/LogoIcon.tsx b/workspaces/kiali/packages/app/src/components/Root/LogoIcon.tsx new file mode 100644 index 0000000000..bfb8941e35 --- /dev/null +++ b/workspaces/kiali/packages/app/src/components/Root/LogoIcon.tsx @@ -0,0 +1,46 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { makeStyles } from '@material-ui/core'; +import React from 'react'; + +const useStyles = makeStyles({ + svg: { + width: 'auto', + height: 28, + }, + path: { + fill: '#7df3e1', + }, +}); + +const LogoIcon = () => { + const classes = useStyles(); + + return ( + + + + ); +}; + +export default LogoIcon; diff --git a/workspaces/kiali/packages/app/src/components/Root/Root.tsx b/workspaces/kiali/packages/app/src/components/Root/Root.tsx new file mode 100644 index 0000000000..b8eeea568a --- /dev/null +++ b/workspaces/kiali/packages/app/src/components/Root/Root.tsx @@ -0,0 +1,115 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { KialiIcon } from '@backstage-community/plugin-kiali'; +import { + Link, + Sidebar, + sidebarConfig, + SidebarDivider, + SidebarGroup, + SidebarItem, + SidebarPage, + SidebarScrollWrapper, + SidebarSpace, + useSidebarOpenState, +} from '@backstage/core-components'; +import { MyGroupsSidebarItem } from '@backstage/plugin-org'; +import { SidebarSearchModal } from '@backstage/plugin-search'; +import { + Settings as SidebarSettings, + UserSettingsSignInAvatar, +} from '@backstage/plugin-user-settings'; +import { makeStyles } from '@material-ui/core'; +import CreateComponentIcon from '@material-ui/icons/AddCircleOutline'; +import ExtensionIcon from '@material-ui/icons/Extension'; +import HomeIcon from '@material-ui/icons/Home'; +import LibraryBooks from '@material-ui/icons/LibraryBooks'; +import MenuIcon from '@material-ui/icons/Menu'; +import GroupIcon from '@material-ui/icons/People'; +import SearchIcon from '@material-ui/icons/Search'; +import React, { PropsWithChildren } from 'react'; +import LogoFull from './LogoFull'; +import LogoIcon from './LogoIcon'; + +const useSidebarLogoStyles = makeStyles({ + root: { + width: sidebarConfig.drawerWidthClosed, + height: 3 * sidebarConfig.logoHeight, + display: 'flex', + flexFlow: 'row nowrap', + alignItems: 'center', + marginBottom: -14, + }, + link: { + width: sidebarConfig.drawerWidthClosed, + marginLeft: 24, + }, +}); + +const SidebarLogo = () => { + const classes = useSidebarLogoStyles(); + const { isOpen } = useSidebarOpenState(); + + return ( +
+ + {isOpen ? : } + +
+ ); +}; + +export const Root = ({ children }: PropsWithChildren<{}>) => ( + + + + } to="/search"> + + + + }> + {/* Kiali Menu */} + + {/* Global nav, not org-specific */} + + + + + + {/* End global nav */} + + + + {/* Items in this group will be scrollable if they run out of space */} + + + + + } + to="/settings" + > + + + + {children} + +); diff --git a/workspaces/kiali/packages/app/src/components/Root/index.ts b/workspaces/kiali/packages/app/src/components/Root/index.ts new file mode 100644 index 0000000000..6e933a21b6 --- /dev/null +++ b/workspaces/kiali/packages/app/src/components/Root/index.ts @@ -0,0 +1,16 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +export { Root } from './Root'; diff --git a/workspaces/kiali/packages/app/src/components/catalog/EntityPage.tsx b/workspaces/kiali/packages/app/src/components/catalog/EntityPage.tsx new file mode 100644 index 0000000000..bff475648e --- /dev/null +++ b/workspaces/kiali/packages/app/src/components/catalog/EntityPage.tsx @@ -0,0 +1,434 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { + EntityKialiContent, + EntityKialiGraphCard, +} from '@backstage-community/plugin-kiali'; +import { + RELATION_API_CONSUMED_BY, + RELATION_API_PROVIDED_BY, + RELATION_CONSUMES_API, + RELATION_DEPENDENCY_OF, + RELATION_DEPENDS_ON, + RELATION_HAS_PART, + RELATION_PART_OF, + RELATION_PROVIDES_API, +} from '@backstage/catalog-model'; +import { EmptyState } from '@backstage/core-components'; +import { + EntityApiDefinitionCard, + EntityConsumedApisCard, + EntityConsumingComponentsCard, + EntityHasApisCard, + EntityProvidedApisCard, + EntityProvidingComponentsCard, +} from '@backstage/plugin-api-docs'; +import { + EntityAboutCard, + EntityDependsOnComponentsCard, + EntityDependsOnResourcesCard, + EntityHasComponentsCard, + EntityHasResourcesCard, + EntityHasSubcomponentsCard, + EntityHasSystemsCard, + EntityLayout, + EntityLinksCard, + EntityOrphanWarning, + EntityProcessingErrorsPanel, + EntityRelationWarning, + EntitySwitch, + hasCatalogProcessingErrors, + hasRelationWarnings, + isComponentType, + isKind, + isOrphan, +} from '@backstage/plugin-catalog'; +import { + Direction, + EntityCatalogGraphCard, +} from '@backstage/plugin-catalog-graph'; +import { + EntityKubernetesContent, + isKubernetesAvailable, +} from '@backstage/plugin-kubernetes'; +import { + EntityGroupProfileCard, + EntityMembersListCard, + EntityOwnershipCard, + EntityUserProfileCard, +} from '@backstage/plugin-org'; +import { EntityTechdocsContent } from '@backstage/plugin-techdocs'; +import { ReportIssue } from '@backstage/plugin-techdocs-module-addons-contrib'; +import { TechDocsAddons } from '@backstage/plugin-techdocs-react'; +import { Button, Grid } from '@material-ui/core'; +import React from 'react'; + +const techdocsContent = ( + + + + + +); + +const cicdContent = ( + // This is an example of how you can implement your company's logic in entity page. + // You can for example enforce that all components of type 'service' should use GitHubActions + + {/* + Here you can add support for different CI/CD services, for example + using @backstage-community/plugin-github-actions as follows: + + + + */} + + + + Read more + + } + /> + + +); + +const entityWarningContent = ( + <> + + + + + + + + + + + + + + + + + + + + + + + + +); + +const overviewContent = ( + + {entityWarningContent} + + + + + + + + + + + + + + + + + +); + +const serviceEntityPage = ( + + + {overviewContent} + + + + + + {cicdContent} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {techdocsContent} + + +); + +const websiteEntityPage = ( + + + {overviewContent} + + + + {cicdContent} + + + + + + + + + + + + + + + + + + + {techdocsContent} + + +); + +/** + * NOTE: This page is designed to work on small screens such as mobile devices. + * This is based on Material UI Grid. If breakpoints are used, each grid item must set the `xs` prop to a column size or to `true`, + * since this does not default. If no breakpoints are used, the items will equitably share the available space. + * https://material-ui.com/components/grid/#basic-grid. + */ + +const defaultEntityPage = ( + + + {overviewContent} + + + + {techdocsContent} + + +); + +const componentPage = ( + + + {serviceEntityPage} + + + + {websiteEntityPage} + + + {defaultEntityPage} + +); + +const apiPage = ( + + + + {entityWarningContent} + + + + + + + + + + + + + + + + + + + + + + + + + + + + +); + +const userPage = ( + + + + {entityWarningContent} + + + + + + + + + +); + +const groupPage = ( + + + + {entityWarningContent} + + + + + + + + + + + + + + + +); + +const systemPage = ( + + + + {entityWarningContent} + + + + + + + + + + + + + + + + + + + + + + + + +); + +const domainPage = ( + + + + {entityWarningContent} + + + + + + + + + + + + +); + +export const entityPage = ( + + + + + + + + + {defaultEntityPage} + +); diff --git a/workspaces/kiali/packages/app/src/components/search/SearchPage.tsx b/workspaces/kiali/packages/app/src/components/search/SearchPage.tsx new file mode 100644 index 0000000000..8a37529a37 --- /dev/null +++ b/workspaces/kiali/packages/app/src/components/search/SearchPage.tsx @@ -0,0 +1,137 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { + CatalogIcon, + Content, + DocsIcon, + Header, + Page, +} from '@backstage/core-components'; +import { useApi } from '@backstage/core-plugin-api'; +import { CatalogSearchResultListItem } from '@backstage/plugin-catalog'; +import { + CATALOG_FILTER_EXISTS, + catalogApiRef, +} from '@backstage/plugin-catalog-react'; +import { SearchType } from '@backstage/plugin-search'; +import { + SearchBar, + SearchFilter, + SearchPagination, + SearchResult, + useSearch, +} from '@backstage/plugin-search-react'; +import { TechDocsSearchResultListItem } from '@backstage/plugin-techdocs'; +import { Grid, makeStyles, Paper, Theme } from '@material-ui/core'; +import React from 'react'; + +const useStyles = makeStyles((theme: Theme) => ({ + bar: { + padding: theme.spacing(1, 0), + }, + filters: { + padding: theme.spacing(2), + marginTop: theme.spacing(2), + }, + filter: { + '& + &': { + marginTop: theme.spacing(2.5), + }, + }, +})); + +const SearchPage = () => { + const classes = useStyles(); + const { types } = useSearch(); + const catalogApi = useApi(catalogApiRef); + + return ( + +
+ + + + + + + + + , + }, + { + value: 'techdocs', + name: 'Documentation', + icon: , + }, + ]} + /> + + {types.includes('techdocs') && ( + { + // Return a list of entities which are documented. + const { items } = await catalogApi.getEntities({ + fields: ['metadata.name'], + filter: { + 'metadata.annotations.backstage.io/techdocs-ref': + CATALOG_FILTER_EXISTS, + }, + }); + + const names = items.map(entity => entity.metadata.name); + names.sort(); + return names; + }} + /> + )} + + + + + + + + } /> + } /> + + + + + + ); +}; + +export const searchPage = ; diff --git a/workspaces/kiali/packages/app/src/index.tsx b/workspaces/kiali/packages/app/src/index.tsx new file mode 100644 index 0000000000..2338991231 --- /dev/null +++ b/workspaces/kiali/packages/app/src/index.tsx @@ -0,0 +1,21 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import '@backstage/cli/asset-types'; +import React from 'react'; +import ReactDOM from 'react-dom/client'; +import App from './App'; + +ReactDOM.createRoot(document.getElementById('root')!).render(); diff --git a/workspaces/kiali/packages/app/src/setupTests.ts b/workspaces/kiali/packages/app/src/setupTests.ts new file mode 100644 index 0000000000..658016ffdd --- /dev/null +++ b/workspaces/kiali/packages/app/src/setupTests.ts @@ -0,0 +1,16 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import '@testing-library/jest-dom'; diff --git a/workspaces/kiali/packages/backend/.eslintrc.js b/workspaces/kiali/packages/backend/.eslintrc.js new file mode 100644 index 0000000000..e2a53a6ad2 --- /dev/null +++ b/workspaces/kiali/packages/backend/.eslintrc.js @@ -0,0 +1 @@ +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); diff --git a/workspaces/kiali/packages/backend/Dockerfile b/workspaces/kiali/packages/backend/Dockerfile new file mode 100644 index 0000000000..6a4c257afb --- /dev/null +++ b/workspaces/kiali/packages/backend/Dockerfile @@ -0,0 +1,66 @@ +# This dockerfile builds an image for the backend package. +# It should be executed with the root of the repo as docker context. +# +# Before building this image, be sure to have run the following commands in the repo root: +# +# yarn install --immutable +# yarn tsc +# yarn build:backend +# +# Once the commands have been run, you can build the image using `yarn build-image` + +FROM node:20-bookworm-slim + +# Set Python interpreter for `node-gyp` to use +ENV PYTHON=/usr/bin/python3 + +# Install isolate-vm dependencies, these are needed by the @backstage/plugin-scaffolder-backend. +RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ + --mount=type=cache,target=/var/lib/apt,sharing=locked \ + apt-get update && \ + apt-get install -y --no-install-recommends python3 g++ build-essential && \ + rm -rf /var/lib/apt/lists/* + +# Install sqlite3 dependencies. You can skip this if you don't use sqlite3 in the image, +# in which case you should also move better-sqlite3 to "devDependencies" in package.json. +RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ + --mount=type=cache,target=/var/lib/apt,sharing=locked \ + apt-get update && \ + apt-get install -y --no-install-recommends libsqlite3-dev && \ + rm -rf /var/lib/apt/lists/* + +# From here on we use the least-privileged `node` user to run the backend. +USER node + +# This should create the app dir as `node`. +# If it is instead created as `root` then the `tar` command below will fail: `can't create directory 'packages/': Permission denied`. +# If this occurs, then ensure BuildKit is enabled (`DOCKER_BUILDKIT=1`) so the app dir is correctly created as `node`. +WORKDIR /app + +# Copy files needed by Yarn +COPY --chown=node:node .yarn ./.yarn +COPY --chown=node:node .yarnrc.yml ./ + +# This switches many Node.js dependencies to production mode. +ENV NODE_ENV=production + +# This disables node snapshot for Node 20 to work with the Scaffolder +ENV NODE_OPTIONS="--no-node-snapshot" + +# Copy repo skeleton first, to avoid unnecessary docker cache invalidation. +# The skeleton contains the package.json of each package in the monorepo, +# and along with yarn.lock and the root package.json, that's enough to run yarn install. +COPY --chown=node:node yarn.lock package.json packages/backend/dist/skeleton.tar.gz ./ +RUN tar xzf skeleton.tar.gz && rm skeleton.tar.gz + +RUN --mount=type=cache,target=/home/node/.cache/yarn,sharing=locked,uid=1000,gid=1000 \ + yarn workspaces focus --all --production && rm -rf "$(yarn cache clean)" + +# This will include the examples, if you don't need these simply remove this line +COPY --chown=node:node examples ./examples + +# Then copy the rest of the backend bundle, along with any other files we might want. +COPY --chown=node:node packages/backend/dist/bundle.tar.gz app-config*.yaml ./ +RUN tar xzf bundle.tar.gz && rm bundle.tar.gz + +CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"] diff --git a/workspaces/kiali/packages/backend/README.md b/workspaces/kiali/packages/backend/README.md new file mode 100644 index 0000000000..3607b0a092 --- /dev/null +++ b/workspaces/kiali/packages/backend/README.md @@ -0,0 +1,59 @@ +# example-backend + +This package is an EXAMPLE of a Backstage backend. + +The main purpose of this package is to provide a test bed for Backstage plugins +that have a backend part. Feel free to experiment locally or within your fork by +adding dependencies and routes to this backend, to try things out. + +Our goal is to eventually amend the create-app flow of the CLI, such that a +production ready version of a backend skeleton is made alongside the frontend +app. Until then, feel free to experiment here! + +## Development + +To run the example backend, first go to the project root and run + +```bash +yarn install +``` + +You should only need to do this once. + +After that, go to the `packages/backend` directory and run + +```bash +yarn start +``` + +If you want to override any configuration locally, for example adding any secrets, +you can do so in `app-config.local.yaml`. + +The backend starts up on port 7007 per default. + +## Populating The Catalog + +If you want to use the catalog functionality, you need to add so called +locations to the backend. These are places where the backend can find some +entity descriptor data to consume and serve. For more information, see +[Software Catalog Overview - Adding Components to the Catalog](https://backstage.io/docs/features/software-catalog/#adding-components-to-the-catalog). + +To get started quickly, this template already includes some statically configured example locations +in `app-config.yaml` under `catalog.locations`. You can remove and replace these locations as you +like, and also override them for local development in `app-config.local.yaml`. + +## Authentication + +We chose [Passport](http://www.passportjs.org/) as authentication platform due +to its comprehensive set of supported authentication +[strategies](http://www.passportjs.org/packages/). + +Read more about the +[auth-backend](https://github.com/backstage/backstage/blob/master/plugins/auth-backend/README.md) +and +[how to add a new provider](https://github.com/backstage/backstage/blob/master/docs/auth/add-auth-provider.md) + +## Documentation + +- [Backstage Readme](https://github.com/backstage/backstage/blob/master/README.md) +- [Backstage Documentation](https://backstage.io/docs) diff --git a/workspaces/kiali/packages/backend/package.json b/workspaces/kiali/packages/backend/package.json new file mode 100644 index 0000000000..784bc415a0 --- /dev/null +++ b/workspaces/kiali/packages/backend/package.json @@ -0,0 +1,59 @@ +{ + "name": "backend", + "version": "0.0.0", + "main": "dist/index.cjs.js", + "types": "src/index.ts", + "private": true, + "repository": { + "type": "git", + "url": "https://github.com/backstage/community-plugins", + "directory": "workspaces/kiali/packages/backend" + }, + "backstage": { + "role": "backend" + }, + "scripts": { + "start": "backstage-cli package start", + "build": "backstage-cli package build", + "lint": "backstage-cli package lint", + "test": "backstage-cli package test", + "clean": "backstage-cli package clean", + "build-image": "docker build ../.. -f Dockerfile --tag backstage" + }, + "dependencies": { + "@backstage-community/plugin-kiali-backend": "workspace:^", + "@backstage/backend-defaults": "^0.5.1", + "@backstage/config": "^1.2.0", + "@backstage/plugin-app-backend": "^0.3.76", + "@backstage/plugin-auth-backend": "^0.23.1", + "@backstage/plugin-auth-backend-module-github-provider": "^0.2.1", + "@backstage/plugin-auth-backend-module-guest-provider": "^0.2.1", + "@backstage/plugin-auth-node": "^0.5.3", + "@backstage/plugin-catalog-backend": "^1.27.0", + "@backstage/plugin-catalog-backend-module-logs": "^0.1.2", + "@backstage/plugin-catalog-backend-module-scaffolder-entity-model": "^0.2.1", + "@backstage/plugin-kubernetes-backend": "^0.18.7", + "@backstage/plugin-permission-backend": "^0.5.50", + "@backstage/plugin-permission-backend-module-allow-all-policy": "^0.2.1", + "@backstage/plugin-permission-common": "^0.8.1", + "@backstage/plugin-permission-node": "^0.8.4", + "@backstage/plugin-proxy-backend": "^0.5.7", + "@backstage/plugin-scaffolder-backend": "^1.26.0", + "@backstage/plugin-search-backend": "^1.6.0", + "@backstage/plugin-search-backend-module-catalog": "^0.2.3", + "@backstage/plugin-search-backend-module-pg": "^0.5.36", + "@backstage/plugin-search-backend-module-techdocs": "^0.3.0", + "@backstage/plugin-search-backend-node": "^1.3.3", + "@backstage/plugin-techdocs-backend": "^1.11.0", + "app": "link:../app", + "better-sqlite3": "^9.0.0", + "node-gyp": "^10.0.0", + "pg": "^8.11.3" + }, + "devDependencies": { + "@backstage/cli": "^0.28.0" + }, + "files": [ + "dist" + ] +} diff --git a/workspaces/kiali/packages/backend/src/index.ts b/workspaces/kiali/packages/backend/src/index.ts new file mode 100644 index 0000000000..d5d24b7c90 --- /dev/null +++ b/workspaces/kiali/packages/backend/src/index.ts @@ -0,0 +1,65 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ + +import { createBackend } from '@backstage/backend-defaults'; + +const backend = createBackend(); + +backend.add(import('@backstage/plugin-app-backend/alpha')); +backend.add(import('@backstage/plugin-proxy-backend/alpha')); +backend.add(import('@backstage/plugin-scaffolder-backend/alpha')); +backend.add(import('@backstage/plugin-techdocs-backend/alpha')); + +// auth plugin +backend.add(import('@backstage/plugin-auth-backend')); +// See https://backstage.io/docs/backend-system/building-backends/migrating#the-auth-plugin +backend.add(import('@backstage/plugin-auth-backend-module-guest-provider')); +// See https://backstage.io/docs/auth/guest/provider + +// catalog plugin +backend.add(import('@backstage/plugin-catalog-backend/alpha')); +backend.add( + import('@backstage/plugin-catalog-backend-module-scaffolder-entity-model'), +); + +// See https://backstage.io/docs/features/software-catalog/configuration#subscribing-to-catalog-errors +backend.add(import('@backstage/plugin-catalog-backend-module-logs')); + +// permission plugin +backend.add(import('@backstage/plugin-permission-backend/alpha')); +// See https://backstage.io/docs/permissions/getting-started for how to create your own permission policy +backend.add( + import('@backstage/plugin-permission-backend-module-allow-all-policy'), +); + +// search plugin +backend.add(import('@backstage/plugin-search-backend/alpha')); + +// search engine +// See https://backstage.io/docs/features/search/search-engines +backend.add(import('@backstage/plugin-search-backend-module-pg/alpha')); + +// search collators +backend.add(import('@backstage/plugin-search-backend-module-catalog/alpha')); +backend.add(import('@backstage/plugin-search-backend-module-techdocs/alpha')); + +// kubernetes +backend.add(import('@backstage/plugin-kubernetes-backend/alpha')); + +// kiali +backend.add(import('@backstage-community/plugin-kiali-backend')); + +backend.start(); diff --git a/workspaces/kiali/plugins/kiali-backend/package.json b/workspaces/kiali/plugins/kiali-backend/package.json index 4e0ddaa8ae..fea69c69ef 100644 --- a/workspaces/kiali/plugins/kiali-backend/package.json +++ b/workspaces/kiali/plugins/kiali-backend/package.json @@ -12,6 +12,7 @@ "supported-versions": "1.31.3", "pluginId": "kiali", "pluginPackages": [ + "@backstage-community/plugin-kiali", "@backstage-community/plugin-kiali-backend" ] }, @@ -37,10 +38,7 @@ "test": "backstage-cli package test --passWithNoTests --coverage", "clean": "backstage-cli package clean", "prepack": "backstage-cli package prepack", - "postpack": "backstage-cli package postpack", - "postversion": "yarn run export-dynamic", - "export-dynamic": "janus-cli package export-dynamic-plugin", - "export-dynamic:clean": "janus-cli package export-dynamic-plugin --clean" + "postpack": "backstage-cli package postpack" }, "configSchema": "config.d.ts", "dependencies": { @@ -59,7 +57,6 @@ "devDependencies": { "@backstage/backend-test-utils": "1.0.0", "@backstage/cli": "0.27.1", - "@janus-idp/cli": "1.19.1", "@types/express": "4.17.21", "@types/supertest": "2.0.16", "msw": "1.3.5", diff --git a/workspaces/kiali/plugins/kiali/.eslintignore b/workspaces/kiali/plugins/kiali/.eslintignore new file mode 100644 index 0000000000..55289f4a23 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/.eslintignore @@ -0,0 +1,2 @@ +dist-dynamic +dist-scalprum diff --git a/workspaces/kiali/plugins/kiali/.eslintrc.js b/workspaces/kiali/plugins/kiali/.eslintrc.js new file mode 100644 index 0000000000..e2a53a6ad2 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/.eslintrc.js @@ -0,0 +1 @@ +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); diff --git a/workspaces/kiali/plugins/kiali/.prettierignore b/workspaces/kiali/plugins/kiali/.prettierignore new file mode 100644 index 0000000000..fc8357d99e --- /dev/null +++ b/workspaces/kiali/plugins/kiali/.prettierignore @@ -0,0 +1,12 @@ +dist +dist-types +coverage +.vscode +CHANGELOG.md +generated +templates +*.hbs +renovate.json +dist-dynamic +dist-scalprum +playwright-report diff --git a/workspaces/kiali/plugins/kiali/.prettierrc.js b/workspaces/kiali/plugins/kiali/.prettierrc.js new file mode 100644 index 0000000000..811bd789b2 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/.prettierrc.js @@ -0,0 +1,20 @@ +// @ts-check + +/** @type {import("@ianvs/prettier-plugin-sort-imports").PrettierConfig} */ +module.exports = { + ...require('@spotify/prettier-config'), + plugins: ['@ianvs/prettier-plugin-sort-imports'], + importOrder: [ + '^react(.*)$', + '', + '^@backstage/(.*)$', + '', + '', + '', + '^@backstage-community/(.*)$', + '', + '', + '', + '^[.]', + ], +}; diff --git a/workspaces/kiali/plugins/kiali/CHANGELOG.md b/workspaces/kiali/plugins/kiali/CHANGELOG.md new file mode 100644 index 0000000000..85f3144fcd --- /dev/null +++ b/workspaces/kiali/plugins/kiali/CHANGELOG.md @@ -0,0 +1,655 @@ +### Dependencies + +## 1.35.0 + +### Minor Changes + +- 9671df5: Bump plugins/kiali to 1.35.0 in main branch, in prep for release of 1.4.0 + +## 1.34.1 + +### Patch Changes + +- 0e6bfd3: feat: update Backstage to the latest version + + Update to Backstage 1.32.5 + +## 1.34.0 + +### Minor Changes + +- 8244f28: chore(deps): update to backstage 1.32 + +## 1.33.1 + +### Patch Changes + +- 7342e9b: chore: remove @janus-idp/cli dep and relink local packages + + This update removes `@janus-idp/cli` from all plugins, as it’s no longer necessary. Additionally, packages are now correctly linked with a specified version. + +## 1.33.0 + +### Minor Changes + +- d9551ae: feat(deps): update to backstage 1.31 + +### Patch Changes + +- d9551ae: Change local package references to a `*` +- d9551ae: pin the @janus-idp/cli package +- d9551ae: upgrade to yarn v3 + +* **@janus-idp/cli:** upgraded to 1.15.2 + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.15.1 + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.15.0 + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.14.0 + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.13.2 + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.13.1 + +## @backstage-community/plugin-kiali [1.30.0](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.29.0...@backstage-community/plugin-kiali@1.30.0) (2024-07-30) + +### Features + +- **kiali:** traffic graph ([#1606](https://github.com/janus-idp/backstage-plugins/issues/1606)) ([657fef9](https://github.com/janus-idp/backstage-plugins/commit/657fef97d73e8ba2ad6a3e0c5bc95379f802aa69)) + +## @backstage-community/plugin-kiali [1.29.0](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.28.0...@backstage-community/plugin-kiali@1.29.0) (2024-07-26) + +### Features + +- **deps:** update to backstage 1.29 ([#1900](https://github.com/janus-idp/backstage-plugins/issues/1900)) ([f53677f](https://github.com/janus-idp/backstage-plugins/commit/f53677fb02d6df43a9de98c43a9f101a6db76802)) + +## @backstage-community/plugin-kiali [1.28.0](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.27.0...@backstage-community/plugin-kiali@1.28.0) (2024-07-24) + +### Features + +- **deps:** update to backstage 1.28 ([#1891](https://github.com/janus-idp/backstage-plugins/issues/1891)) ([1ba1108](https://github.com/janus-idp/backstage-plugins/commit/1ba11088e0de60e90d138944267b83600dc446e5)) + +## @backstage-community/plugin-kiali [1.27.0](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.26.0...@backstage-community/plugin-kiali@1.27.0) (2024-07-17) + +### Features + +- **kiali:** sticky headers for tables ([#1877](https://github.com/janus-idp/backstage-plugins/issues/1877)) ([64578d9](https://github.com/janus-idp/backstage-plugins/commit/64578d9c409d5e0d5ed58a93d911ecfe29587679)) + +## @backstage-community/plugin-kiali [1.26.0](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.25.0...@backstage-community/plugin-kiali@1.26.0) (2024-07-10) + +### Features + +- **kiali:** revert changes to Kiali 1.86 ([#1839](https://github.com/janus-idp/backstage-plugins/issues/1839)) ([#1876](https://github.com/janus-idp/backstage-plugins/issues/1876)) ([c512b29](https://github.com/janus-idp/backstage-plugins/commit/c512b298e028d371cb8d22260cdd707e1f5b1ff7)) + +## @backstage-community/plugin-kiali [1.25.0](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.24.1...@backstage-community/plugin-kiali@1.25.0) (2024-07-09) + +### Features + +- **kiali:** improve styles ([#1861](https://github.com/janus-idp/backstage-plugins/issues/1861)) ([158800f](https://github.com/janus-idp/backstage-plugins/commit/158800fc3f59a4901ea43c7cc00695a6bfb86ca8)) + +## @backstage-community/plugin-kiali [1.24.1](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.24.0...@backstage-community/plugin-kiali@1.24.1) (2024-07-08) + +### Bug Fixes + +- **kiali:** add bearer token ([#1870](https://github.com/janus-idp/backstage-plugins/issues/1870)) ([8875276](https://github.com/janus-idp/backstage-plugins/commit/8875276d8f836111462161ef4a6e0caae9209409)) + +## @backstage-community/plugin-kiali [1.24.0](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.23.0...@backstage-community/plugin-kiali@1.24.0) (2024-06-28) + +### Features + +- **kiali:** changes to Kiali 1.86 ([#1839](https://github.com/janus-idp/backstage-plugins/issues/1839)) ([ab1f6bc](https://github.com/janus-idp/backstage-plugins/commit/ab1f6bcb0a803406c96ea944701e5efa94c9cbcf)) + +## @backstage-community/plugin-kiali [1.23.0](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.22.0...@backstage-community/plugin-kiali@1.23.0) (2024-06-26) + +### Features + +- **kiali:** add tests for the overview page ([#1790](https://github.com/janus-idp/backstage-plugins/issues/1790)) ([582cf36](https://github.com/janus-idp/backstage-plugins/commit/582cf36da48f21f7aa31075430bf566a818a3cfa)) + +## @backstage-community/plugin-kiali [1.22.0](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.21.0...@backstage-community/plugin-kiali@1.22.0) (2024-06-24) + +### Features + +- **kiali:** include Kiali external URL as a parameter ([#1835](https://github.com/janus-idp/backstage-plugins/issues/1835)) ([6dbe9eb](https://github.com/janus-idp/backstage-plugins/commit/6dbe9eb6cd635f682da6b893aad8bcd8ad2fb170)) + +## @backstage-community/plugin-kiali [1.21.0](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.20.0...@backstage-community/plugin-kiali@1.21.0) (2024-06-21) + +### Features + +- **kiali:** add banner to warn for tech preview windows ([#1829](https://github.com/janus-idp/backstage-plugins/issues/1829)) ([b0cb796](https://github.com/janus-idp/backstage-plugins/commit/b0cb7960b572dd17ec001a1afcb314219a45e656)) + +## @backstage-community/plugin-kiali [1.20.0](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.19.2...@backstage-community/plugin-kiali@1.20.0) (2024-06-20) + +### Features + +- **kiali:** resources card test coverage ([#1821](https://github.com/janus-idp/backstage-plugins/issues/1821)) ([4090fc2](https://github.com/janus-idp/backstage-plugins/commit/4090fc2e0a20db31fb08fc262dd290a67bd7b05e)) + +## @backstage-community/plugin-kiali [1.19.2](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.19.1...@backstage-community/plugin-kiali@1.19.2) (2024-06-19) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.11.1 + +## @backstage-community/plugin-kiali [1.19.1](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.19.0...@backstage-community/plugin-kiali@1.19.1) (2024-06-14) + +## @backstage-community/plugin-kiali [1.19.0](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.18.14...@backstage-community/plugin-kiali@1.19.0) (2024-06-13) + +### Features + +- **deps:** update to backstage 1.27 ([#1683](https://github.com/janus-idp/backstage-plugins/issues/1683)) ([a14869c](https://github.com/janus-idp/backstage-plugins/commit/a14869c3f4177049cb8d6552b36c3ffd17e7997d)) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.11.0 + +## @backstage-community/plugin-kiali [1.18.14](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.18.13...@backstage-community/plugin-kiali@1.18.14) (2024-06-13) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.10.1 + +## @backstage-community/plugin-kiali [1.18.13](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.18.12...@backstage-community/plugin-kiali@1.18.13) (2024-06-10) + +### Bug Fixes + +- **kiali:** fix dev links ([#1801](https://github.com/janus-idp/backstage-plugins/issues/1801)) ([2a86a5e](https://github.com/janus-idp/backstage-plugins/commit/2a86a5e7ed43c520962f32a11bc1cce6d13523e3)) + +## @backstage-community/plugin-kiali [1.18.12](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.18.11...@backstage-community/plugin-kiali@1.18.12) (2024-06-06) + +### Bug Fixes + +- **kiali:** remove debug window ([#1793](https://github.com/janus-idp/backstage-plugins/issues/1793)) ([b5b5376](https://github.com/janus-idp/backstage-plugins/commit/b5b5376181d49074bd58bb34734561eab6ee8d2a)) + +## @backstage-community/plugin-kiali [1.18.11](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.18.10...@backstage-community/plugin-kiali@1.18.11) (2024-06-06) + +### Documentation + +- **kiali:** update development doc for alpha backend([#1720](https://github.com/janus-idp/backstage-plugins/issues/1720)) ([e06e9be](https://github.com/janus-idp/backstage-plugins/commit/e06e9bee0745e76beccb8d7e3810548fd46207db)) + +## @backstage-community/plugin-kiali [1.18.10](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.18.9...@backstage-community/plugin-kiali@1.18.10) (2024-06-06) + +### Bug Fixes + +- **kiali:** sanitize input for CWE-79 ([#1786](https://github.com/janus-idp/backstage-plugins/issues/1786)) ([9ba95bb](https://github.com/janus-idp/backstage-plugins/commit/9ba95bba7b9d5081829831e797b27f6a286971a4)) + +## @backstage-community/plugin-kiali [1.18.9](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.18.8...@backstage-community/plugin-kiali@1.18.9) (2024-06-05) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.10.0 + +## @backstage-community/plugin-kiali [1.18.8](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.18.7...@backstage-community/plugin-kiali@1.18.8) (2024-06-04) + +## @backstage-community/plugin-kiali [1.18.7](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.18.6...@backstage-community/plugin-kiali@1.18.7) (2024-06-04) + +### Bug Fixes + +- **deps:** update kiali dependencies (minor) ([#1779](https://github.com/janus-idp/backstage-plugins/issues/1779)) ([ff2b421](https://github.com/janus-idp/backstage-plugins/commit/ff2b421be9206d395805f497d4e2821ca4d6edc1)) + +## @backstage-community/plugin-kiali [1.18.6](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.18.5...@backstage-community/plugin-kiali@1.18.6) (2024-06-03) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.9.0 + +## @backstage-community/plugin-kiali [1.18.5](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.18.4...@backstage-community/plugin-kiali@1.18.5) (2024-05-31) + +## @backstage-community/plugin-kiali [1.18.4](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.18.3...@backstage-community/plugin-kiali@1.18.4) (2024-05-31) + +## @backstage-community/plugin-kiali [1.18.3](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.18.2...@backstage-community/plugin-kiali@1.18.3) (2024-05-29) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.8.10 + +## @backstage-community/plugin-kiali [1.18.2](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.18.1...@backstage-community/plugin-kiali@1.18.2) (2024-05-29) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.8.9 + +## @backstage-community/plugin-kiali [1.18.1](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.18.0...@backstage-community/plugin-kiali@1.18.1) (2024-05-16) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.8.7 + +## @backstage-community/plugin-kiali [1.18.0](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.17.3...@backstage-community/plugin-kiali@1.18.0) (2024-05-14) + +### Features + +- **deps:** use RHDH themes in the backstage app and dev pages ([#1480](https://github.com/janus-idp/backstage-plugins/issues/1480)) ([8263bf0](https://github.com/janus-idp/backstage-plugins/commit/8263bf099736cbb0d0f2316082d338ba81fa6927)) + +## @backstage-community/plugin-kiali [1.17.3](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.17.2...@backstage-community/plugin-kiali@1.17.3) (2024-05-13) + +### Bug Fixes + +- **kiali:** removing unnecessary afterAll hook ([#1642](https://github.com/janus-idp/backstage-plugins/issues/1642)) ([a314607](https://github.com/janus-idp/backstage-plugins/commit/a3146073bebb17b6f990891a277323a19e3731d6)) + +## @backstage-community/plugin-kiali [1.17.2](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.17.1...@backstage-community/plugin-kiali@1.17.2) (2024-05-09) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.8.6 + +## @backstage-community/plugin-kiali [1.17.1](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.17.0...@backstage-community/plugin-kiali@1.17.1) (2024-05-08) + +### Documentation + +- **kiali:** update rhdh docs ([#1621](https://github.com/janus-idp/backstage-plugins/issues/1621)) ([7087cba](https://github.com/janus-idp/backstage-plugins/commit/7087cbad8929708f065e0027871a337946f09881)) + +## @backstage-community/plugin-kiali [1.17.0](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.16.10...@backstage-community/plugin-kiali@1.17.0) (2024-05-07) + +### Features + +- **kiali:** add card for resources ([#1565](https://github.com/janus-idp/backstage-plugins/issues/1565)) ([1e727aa](https://github.com/janus-idp/backstage-plugins/commit/1e727aae0464aa55e4dce754a04e97a5708c07f9)) + +## @backstage-community/plugin-kiali [1.16.10](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.16.9...@backstage-community/plugin-kiali@1.16.10) (2024-05-04) + +### Bug Fixes + +- **kiali:** remove IstioConfig extra, Fix links and add kiali control ([#1452](https://github.com/janus-idp/backstage-plugins/issues/1452)) ([51a35f0](https://github.com/janus-idp/backstage-plugins/commit/51a35f0ccee8a38555079b2fa6027639ee595f9b)) + +## @backstage-community/plugin-kiali [1.16.9](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.16.8...@backstage-community/plugin-kiali@1.16.9) (2024-05-02) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.8.5 + +## @backstage-community/plugin-kiali [1.16.8](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.16.7...@backstage-community/plugin-kiali@1.16.8) (2024-05-02) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.8.4 + +## @backstage-community/plugin-kiali [1.16.7](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.16.6...@backstage-community/plugin-kiali@1.16.7) (2024-04-30) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.8.3 + +## @backstage-community/plugin-kiali [1.16.6](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.16.5...@backstage-community/plugin-kiali@1.16.6) (2024-04-30) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.8.2 + +## @backstage-community/plugin-kiali [1.16.5](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.16.4...@backstage-community/plugin-kiali@1.16.5) (2024-04-25) + +### Bug Fixes + +- **kiali:** update load for overview page ([#1491](https://github.com/janus-idp/backstage-plugins/issues/1491)) ([8de16e2](https://github.com/janus-idp/backstage-plugins/commit/8de16e2f08f2f02ad8001a21d7ec0511ba965a86)) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.8.1 + +## @backstage-community/plugin-kiali [1.16.4](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.16.3...@backstage-community/plugin-kiali@1.16.4) (2024-04-15) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.8.0 + +## @backstage-community/plugin-kiali [1.16.3](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.16.2...@backstage-community/plugin-kiali@1.16.3) (2024-04-09) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.7.10 + +## @backstage-community/plugin-kiali [1.16.2](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.16.1...@backstage-community/plugin-kiali@1.16.2) (2024-04-09) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.7.9 + +## @backstage-community/plugin-kiali [1.16.1](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.16.0...@backstage-community/plugin-kiali@1.16.1) (2024-04-05) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.7.8 + +## @backstage-community/plugin-kiali [1.16.0](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.15.0...@backstage-community/plugin-kiali@1.16.0) (2024-04-04) + +### Features + +- **kiali:** istio config list and details ([#1326](https://github.com/janus-idp/backstage-plugins/issues/1326)) ([f8fc349](https://github.com/janus-idp/backstage-plugins/commit/f8fc349e1305b10632520c4f25f78c45b54481bb)) + +## @backstage-community/plugin-kiali [1.15.0](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.14.2...@backstage-community/plugin-kiali@1.15.0) (2024-04-03) + +### Features + +- **kiali:** update dark theme ([#1434](https://github.com/janus-idp/backstage-plugins/issues/1434)) ([e0d84e1](https://github.com/janus-idp/backstage-plugins/commit/e0d84e177786187e0d7a8b279d7e72f710207d91)) + +## @backstage-community/plugin-kiali [1.14.2](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.14.1...@backstage-community/plugin-kiali@1.14.2) (2024-04-02) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.7.7 + +## @backstage-community/plugin-kiali [1.14.1](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.14.0...@backstage-community/plugin-kiali@1.14.1) (2024-03-29) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.7.6 + +## @backstage-community/plugin-kiali [1.14.0](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.13.0...@backstage-community/plugin-kiali@1.14.0) (2024-03-25) + +### Features + +- **kiali:** metrics tab ([#1331](https://github.com/janus-idp/backstage-plugins/issues/1331)) ([d80e331](https://github.com/janus-idp/backstage-plugins/commit/d80e33155481730c0e95de40da99ed0280e982c8)) + +## @backstage-community/plugin-kiali [1.13.0](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.12.1...@backstage-community/plugin-kiali@1.13.0) (2024-03-14) + +### Features + +- **kiali:** include a new List entity view ([#1316](https://github.com/janus-idp/backstage-plugins/issues/1316)) ([f4d5e70](https://github.com/janus-idp/backstage-plugins/commit/f4d5e70ed98ceaf6277402f39feb26bd114d0d6b)) + +## @backstage-community/plugin-kiali [1.12.1](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.12.0...@backstage-community/plugin-kiali@1.12.1) (2024-03-11) + +### Documentation + +- **kiali:** minor update in development docs ([#820](https://github.com/janus-idp/backstage-plugins/issues/820)) ([81e79bf](https://github.com/janus-idp/backstage-plugins/commit/81e79bf59ebff745a8775dc9ac784c7889e9532c)) + +## @backstage-community/plugin-kiali [1.12.0](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.11.3...@backstage-community/plugin-kiali@1.12.0) (2024-03-06) + +### Features + +- **kiali:** services and apps list and details overview ([#1276](https://github.com/janus-idp/backstage-plugins/issues/1276)) ([7e4c0a5](https://github.com/janus-idp/backstage-plugins/commit/7e4c0a5fd699b42def7989155bfc377a670575db)) + +## @backstage-community/plugin-kiali [1.11.3](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.11.2...@backstage-community/plugin-kiali@1.11.3) (2024-03-04) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.7.5 + +## @backstage-community/plugin-kiali [1.11.2](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.11.1...@backstage-community/plugin-kiali@1.11.2) (2024-02-27) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.7.4 + +## @backstage-community/plugin-kiali [1.11.1](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.11.0...@backstage-community/plugin-kiali@1.11.1) (2024-02-26) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.7.3 + +## @backstage-community/plugin-kiali [1.11.0](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.10.2...@backstage-community/plugin-kiali@1.11.0) (2024-02-21) + +### Features + +- **kiali:** workloads details page overview tab ([#1198](https://github.com/janus-idp/backstage-plugins/issues/1198)) ([34adc57](https://github.com/janus-idp/backstage-plugins/commit/34adc57837406e80b93a1a1657e96ff902bf24bd)) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.7.2 + +## @backstage-community/plugin-kiali [1.10.2](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.10.1...@backstage-community/plugin-kiali@1.10.2) (2024-02-19) + +### Bug Fixes + +- **kiali:** update styles, remove item details links ([#1207](https://github.com/janus-idp/backstage-plugins/issues/1207)) ([c133ea7](https://github.com/janus-idp/backstage-plugins/commit/c133ea76772b44ec348c5bff3ad4609f1938fdba)) + +## @backstage-community/plugin-kiali [1.10.1](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.10.0...@backstage-community/plugin-kiali@1.10.1) (2024-02-14) + +### Bug Fixes + +- **kiali:** add corner cases, fix some issues and improve dev env ([#1202](https://github.com/janus-idp/backstage-plugins/issues/1202)) ([fd9a8aa](https://github.com/janus-idp/backstage-plugins/commit/fd9a8aaae4aa7f625bbfdac954e2580d0dc0e30f)) + +## @backstage-community/plugin-kiali [1.10.0](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.9.1...@backstage-community/plugin-kiali@1.10.0) (2024-02-12) + +### Features + +- **kiali:** workloads page list ([#1129](https://github.com/janus-idp/backstage-plugins/issues/1129)) ([1e3991b](https://github.com/janus-idp/backstage-plugins/commit/1e3991b9af35ef5da8f9987fc2d17026d438a853)) + +## @backstage-community/plugin-kiali [1.9.1](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.9.0...@backstage-community/plugin-kiali@1.9.1) (2024-02-08) + +### Bug Fixes + +- **kiali:** namespaceSelector is removing options ([#1186](https://github.com/janus-idp/backstage-plugins/issues/1186)) ([0195b06](https://github.com/janus-idp/backstage-plugins/commit/0195b06158327649afb298715ceab9fc0e89a07b)) + +## @backstage-community/plugin-kiali [1.9.0](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.8.5...@backstage-community/plugin-kiali@1.9.0) (2024-02-07) + +### Features + +- **kiali:** add KialiPage Component ([#1180](https://github.com/janus-idp/backstage-plugins/issues/1180)) ([c91bcc3](https://github.com/janus-idp/backstage-plugins/commit/c91bcc3bc13b274312de3d0656d8ea865a3af27b)) + +## @backstage-community/plugin-kiali [1.8.5](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.8.4...@backstage-community/plugin-kiali@1.8.5) (2024-02-05) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.7.1 + +## @backstage-community/plugin-kiali [1.8.4](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.8.3...@backstage-community/plugin-kiali@1.8.4) (2024-01-31) + +### Bug Fixes + +- **kiali:** show username when auth is anonymous ([#1139](https://github.com/janus-idp/backstage-plugins/issues/1139)) ([0a04992](https://github.com/janus-idp/backstage-plugins/commit/0a04992b0581a3cb47017c0713703ed7e204ac02)) + +## @backstage-community/plugin-kiali [1.8.3](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.8.2...@backstage-community/plugin-kiali@1.8.3) (2024-01-30) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.7.0 + +## @backstage-community/plugin-kiali [1.8.2](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.8.1...@backstage-community/plugin-kiali@1.8.2) (2024-01-25) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.6.0 + +## @backstage-community/plugin-kiali [1.8.1](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.8.0...@backstage-community/plugin-kiali@1.8.1) (2024-01-24) + +### Bug Fixes + +- **kiali:** fix sessionTime configuration and tests ([#1099](https://github.com/janus-idp/backstage-plugins/issues/1099)) ([882381c](https://github.com/janus-idp/backstage-plugins/commit/882381c0b65a2bcfecc2365048f83376938a0fb8)), closes [#1100](https://github.com/janus-idp/backstage-plugins/issues/1100) + +## @backstage-community/plugin-kiali [1.8.0](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.7.0...@backstage-community/plugin-kiali@1.8.0) (2024-01-19) + +### Other changes + +- **kiali:** add context, remove kiali-common and refactor backend ([#855](https://github.com/janus-idp/backstage-plugins/issues/855)) ([54c7001](https://github.com/janus-idp/backstage-plugins/commit/54c70018d948912d36a4949bbaf1633763fb9ae1)) + +## @backstage-community/plugin-kiali [1.7.0](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.6.13...@backstage-community/plugin-kiali@1.7.0) (2024-01-18) + +### Features + +- **kiali:** add OWNERS file to kiali\* plugin ([#1082](https://github.com/janus-idp/backstage-plugins/issues/1082)) ([e2dc23b](https://github.com/janus-idp/backstage-plugins/commit/e2dc23b9db3da0384137e809795a57da118e494d)) + +## @backstage-community/plugin-kiali [1.6.13](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.6.12...@backstage-community/plugin-kiali@1.6.13) (2024-01-16) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.5.0 + +## @backstage-community/plugin-kiali [1.6.12](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.6.11...@backstage-community/plugin-kiali@1.6.12) (2023-12-07) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.4.7 + +## @backstage-community/plugin-kiali [1.6.11](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.6.10...@backstage-community/plugin-kiali@1.6.11) (2023-11-30) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.4.6 + +## @backstage-community/plugin-kiali [1.6.10](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.6.9...@backstage-community/plugin-kiali@1.6.10) (2023-11-22) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.4.5 + +## @backstage-community/plugin-kiali [1.6.9](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.6.8...@backstage-community/plugin-kiali@1.6.9) (2023-11-21) + +### Bug Fixes + +- sync versions in dynamic assets and publish derived packages as additional packages ([#963](https://github.com/janus-idp/backstage-plugins/issues/963)) ([7d0a386](https://github.com/janus-idp/backstage-plugins/commit/7d0a38609b4a18b54c75378a150e8b5c3ba8ff43)) + +## @backstage-community/plugin-kiali [1.6.8](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.6.7...@backstage-community/plugin-kiali@1.6.8) (2023-11-20) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.4.4 + +## @backstage-community/plugin-kiali [1.6.7](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.6.6...@backstage-community/plugin-kiali@1.6.7) (2023-11-16) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.4.3 + +## @backstage-community/plugin-kiali [1.6.6](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.6.5...@backstage-community/plugin-kiali@1.6.6) (2023-11-13) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.4.2 + +## @backstage-community/plugin-kiali [1.6.5](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.6.4...@backstage-community/plugin-kiali@1.6.5) (2023-11-13) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.4.1 + +## @backstage-community/plugin-kiali [1.6.4](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.6.3...@backstage-community/plugin-kiali@1.6.4) (2023-11-07) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.4.0 + +## @backstage-community/plugin-kiali [1.6.3](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.6.2...@backstage-community/plugin-kiali@1.6.3) (2023-11-06) + +### Bug Fixes + +- **cli:** add default scalprum config ([#909](https://github.com/janus-idp/backstage-plugins/issues/909)) ([d74fc72](https://github.com/janus-idp/backstage-plugins/commit/d74fc72ab7e0a843da047c7b6570d8a6fbc068e1)) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.3.3 + +## @backstage-community/plugin-kiali [1.6.2](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.6.1...@backstage-community/plugin-kiali@1.6.2) (2023-11-06) + +### Documentation + +- update frontend plugin docs to use EntityLayout instead of EntityPageLayout ([#907](https://github.com/janus-idp/backstage-plugins/issues/907)) ([aa91bba](https://github.com/janus-idp/backstage-plugins/commit/aa91bba4c7a43de416258eb019724e21c7cf4bb8)) + +## @backstage-community/plugin-kiali [1.6.1](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.6.0...@backstage-community/plugin-kiali@1.6.1) (2023-11-02) + +### Dependencies + +- **@janus-idp/cli:** upgraded to 1.3.2 + +## @backstage-community/plugin-kiali [1.6.0](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.5.5...@backstage-community/plugin-kiali@1.6.0) (2023-11-01) + +### Features + +- **dynamic-plugins:** publish dynamic assets for all frontend plugins ([#896](https://github.com/janus-idp/backstage-plugins/issues/896)) ([dcfb0ac](https://github.com/janus-idp/backstage-plugins/commit/dcfb0ac56769c82f6b8b2cef2726251e0b60c375)) + +## @backstage-community/plugin-kiali [1.5.5](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.5.4...@backstage-community/plugin-kiali@1.5.5) (2023-10-27) + +### Dependencies + +- **@backstage-community/plugin-kiali-common:** upgraded to 1.0.0 + +## @backstage-community/plugin-kiali [1.5.4](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.5.3...@backstage-community/plugin-kiali@1.5.4) (2023-10-25) + +### Bug Fixes + +- **kiali:** use prevState callback ([#874](https://github.com/janus-idp/backstage-plugins/issues/874)) ([13a01f7](https://github.com/janus-idp/backstage-plugins/commit/13a01f79be812fe74f71f474152c7e8fe0f4fe90)) + +## @backstage-community/plugin-kiali [1.5.3](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.5.2...@backstage-community/plugin-kiali@1.5.3) (2023-10-19) + +### Dependencies + +- **@backstage-community/plugin-kiali-common:** upgraded to 1.4.1 + +## @backstage-community/plugin-kiali [1.5.2](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.5.1...@backstage-community/plugin-kiali@1.5.2) (2023-09-22) + +## @backstage-community/plugin-kiali [1.5.1](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.5.0...@backstage-community/plugin-kiali@1.5.1) (2023-09-11) + +## @backstage-community/plugin-kiali [1.5.0](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.4.0...@backstage-community/plugin-kiali@1.5.0) (2023-08-30) + +### Features + +- **kiali:** add namespace selector ([#675](https://github.com/janus-idp/backstage-plugins/issues/675)) ([e3cfc26](https://github.com/janus-idp/backstage-plugins/commit/e3cfc26bdf550916da3ee801601196d8614471b5)) + +### Dependencies + +- **@backstage-community/plugin-kiali-common:** upgraded to 1.4.0 + +## @backstage-community/plugin-kiali [1.4.0](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.3.1...@backstage-community/plugin-kiali@1.4.0) (2023-08-29) + +### Features + +- **kiali:** frontend dev environment ([#687](https://github.com/janus-idp/backstage-plugins/issues/687)) ([c4f4ddd](https://github.com/janus-idp/backstage-plugins/commit/c4f4dddd1f2b6ba5b908bbf1a5f88dc9d54b93e5)) + +## @backstage-community/plugin-kiali [1.3.1](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.3.0...@backstage-community/plugin-kiali@1.3.1) (2023-08-29) + +### Bug Fixes + +- **kiali:** upgrade patternfly ([#673](https://github.com/janus-idp/backstage-plugins/issues/673)) ([6e5702f](https://github.com/janus-idp/backstage-plugins/commit/6e5702f196c2fbf8de888ca5083241a58548469e)) + +## @backstage-community/plugin-kiali [1.3.0](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.2.1...@backstage-community/plugin-kiali@1.3.0) (2023-08-28) + +### Features + +- **kiali:** show kiali information in header ([#630](https://github.com/janus-idp/backstage-plugins/issues/630)) ([b9a83b3](https://github.com/janus-idp/backstage-plugins/commit/b9a83b332ec518e60a9780961fdce070eda02d02)) + +### Dependencies + +- **@backstage-community/plugin-kiali-common:** upgraded to 1.3.0 + +## @backstage-community/plugin-kiali [1.2.1](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.2.0...@backstage-community/plugin-kiali@1.2.1) (2023-08-22) + +### Bug Fixes + +- **kiali:** fix code smells ([#607](https://github.com/janus-idp/backstage-plugins/issues/607)) ([ef2eecf](https://github.com/janus-idp/backstage-plugins/commit/ef2eecfa71e2a60b4442ce3105a526b3332eaa1b)) + +### Dependencies + +- **@backstage-community/plugin-kiali-common:** upgraded to 1.2.1 + +## @backstage-community/plugin-kiali [1.2.0](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.1.0...@backstage-community/plugin-kiali@1.2.0) (2023-08-14) + +### Features + +- **ts:** transpile each plugin separately ([#634](https://github.com/janus-idp/backstage-plugins/issues/634)) ([b94c4dc](https://github.com/janus-idp/backstage-plugins/commit/b94c4dc50ada328e5ce1bed5fb7c76f64607e1ee)) + +### Dependencies + +- **@backstage-community/plugin-kiali-common:** upgraded to 1.2.0 + +## @backstage-community/plugin-kiali [1.1.0](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.0.3...@backstage-community/plugin-kiali@1.1.0) (2023-07-27) + +### Features + +- **kiali:** move from node-fetch to axios ([#573](https://github.com/janus-idp/backstage-plugins/issues/573)) ([c0ed797](https://github.com/janus-idp/backstage-plugins/commit/c0ed7972ef8fa143d51b590ca5f874900e5d8bef)) + +### Dependencies + +- **@backstage-community/plugin-kiali-common:** upgraded to 1.1.0 + +## @backstage-community/plugin-kiali [1.0.3](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.0.2...@backstage-community/plugin-kiali@1.0.3) (2023-07-25) + +## @backstage-community/plugin-kiali [1.0.2](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.0.1...@backstage-community/plugin-kiali@1.0.2) (2023-07-25) + +## @backstage-community/plugin-kiali [1.0.1](https://github.com/janus-idp/backstage-plugins/compare/@backstage-community/plugin-kiali@1.0.0...@backstage-community/plugin-kiali@1.0.1) (2023-07-25) + +## @backstage-community/plugin-kiali 1.0.0 (2023-07-25) + +### Features + +- **kiali:** kiali plugin ([#371](https://github.com/janus-idp/backstage-plugins/issues/371)) ([08d5583](https://github.com/janus-idp/backstage-plugins/commit/08d5583f839a8233d7b08a7ec1eb043bf4978e91)) + +### Dependencies + +- **@backstage-community/plugin-kiali-common:** upgraded to 1.0.0 diff --git a/workspaces/kiali/plugins/kiali/README.md b/workspaces/kiali/plugins/kiali/README.md new file mode 100644 index 0000000000..8ac0e07113 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/README.md @@ -0,0 +1,4 @@ +# Kiali plugin for Backstage + +The Kiali Plugin +This plugin exposes information about your entity-specific ServiceMesh objects. diff --git a/workspaces/kiali/plugins/kiali/dev/MockProvider.tsx b/workspaces/kiali/plugins/kiali/dev/MockProvider.tsx new file mode 100644 index 0000000000..fd8ce89d72 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/MockProvider.tsx @@ -0,0 +1,574 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React from 'react'; + +import { Entity } from '@backstage/catalog-model'; +import { Content, HeaderTabs, Page } from '@backstage/core-components'; +import { EntityProvider } from '@backstage/plugin-catalog-react'; +import { TestApiProvider } from '@backstage/test-utils'; + +import { getEntityRoutes } from '../src/components/Router'; +import { AppDetailsPage } from '../src/pages/AppDetails/AppDetailsPage'; +import { AppListPage } from '../src/pages/AppList/AppListPage'; +import { IstioConfigDetailsPage } from '../src/pages/IstioConfigDetails/IstioConfigDetailsPage'; +import { IstioConfigListPage } from '../src/pages/IstioConfigList/IstioConfigListPage'; +import { KialiNoPath } from '../src/pages/Kiali'; +import { KialiHeader } from '../src/pages/Kiali/Header/KialiHeader'; +import { OverviewPage } from '../src/pages/Overview/OverviewPage'; +import { ServiceDetailsPage } from '../src/pages/ServiceDetails/ServiceDetailsPage'; +import { ServiceListPage } from '../src/pages/ServiceList/ServiceListPage'; +import TrafficGraphPage from '../src/pages/TrafficGraph/TrafficGraphPage'; +import { WorkloadDetailsPage } from '../src/pages/WorkloadDetails/WorkloadDetailsPage'; +import { WorkloadListPage } from '../src/pages/WorkloadList/WorkloadListPage'; +import { KialiApi, kialiApiRef } from '../src/services/Api'; +import { KialiProvider } from '../src/store/KialiProvider'; +import { App, AppQuery } from '../src/types/App'; +import { AppList, AppListQuery } from '../src/types/AppList'; +import { AuthInfo } from '../src/types/Auth'; +import { CertsInfo } from '../src/types/CertsInfo'; +import { DurationInSeconds, TimeInSeconds } from '../src/types/Common'; +import { DashboardModel } from '../src/types/Dashboards'; +import { GrafanaInfo } from '../src/types/GrafanaInfo'; +import { GraphDefinition, GraphElementsQuery } from '../src/types/Graph'; +import { + AppHealth, + NamespaceAppHealth, + NamespaceServiceHealth, + NamespaceWorkloadHealth, + ServiceHealth, + WorkloadHealth, +} from '../src/types/Health'; +import { IstioConfigDetails } from '../src/types/IstioConfigDetails'; +import { IstioConfigList, IstioConfigsMap } from '../src/types/IstioConfigList'; +import { + CanaryUpgradeStatus, + OutboundTrafficPolicy, + PodLogs, + ValidationStatus, +} from '../src/types/IstioObjects'; +import { + ComponentStatus, + IstiodResourceThresholds, +} from '../src/types/IstioStatus'; +import { IstioMetricsMap } from '../src/types/Metrics'; +import { IstioMetricsOptions } from '../src/types/MetricsOptions'; +import { Namespace } from '../src/types/Namespace'; +import { KialiCrippledFeatures, ServerConfig } from '../src/types/ServerConfig'; +import { ServiceDetailsInfo } from '../src/types/ServiceInfo'; +import { ServiceList, ServiceListQuery } from '../src/types/ServiceList'; +import { StatusState } from '../src/types/StatusState'; +import { TLSStatus } from '../src/types/TLSStatus'; +import { Span, TracingQuery } from '../src/types/Tracing'; +import { + Workload, + WorkloadListItem, + WorkloadNamespaceResponse, + WorkloadOverview, + WorkloadQuery, +} from '../src/types/Workload'; +import { filterNsByAnnotation } from '../src/utils/entityFilter'; +import { kialiData } from './__fixtures__'; +import { mockEntity } from './mockEntity'; + +export class MockKialiClient implements KialiApi { + private entity?: Entity; + + constructor() { + this.entity = undefined; + } + + getGraphElements(_params: GraphElementsQuery): Promise { + return kialiData.graph; + } + + setEntity(entity?: Entity): void { + this.entity = entity; + } + + async status(): Promise { + return kialiData.status; + } + + async getAuthInfo(): Promise { + return kialiData.auth; + } + async getStatus(): Promise { + return kialiData.status; + } + + async getNamespaces(): Promise { + return filterNsByAnnotation( + kialiData.namespaces as Namespace[], + this.entity, + ); + } + + async getWorkloads( + namespace: string, + duration: number, + ): Promise { + const nsl = kialiData.workloads as WorkloadNamespaceResponse[]; + // @ts-ignore + return nsl[namespace].workloads.map( + (w: WorkloadOverview): WorkloadListItem => { + return { + name: w.name, + namespace: namespace, + cluster: w.cluster, + type: w.type, + istioSidecar: w.istioSidecar, + istioAmbient: w.istioAmbient, + additionalDetailSample: undefined, + appLabel: w.appLabel, + versionLabel: w.versionLabel, + labels: w.labels, + istioReferences: w.istioReferences, + notCoveredAuthPolicy: w.notCoveredAuthPolicy, + health: WorkloadHealth.fromJson(namespace, w.name, w.health, { + rateInterval: duration, + hasSidecar: w.istioSidecar, + hasAmbient: w.istioAmbient, + }), + }; + }, + ); + } + + async getWorkload( + namespace: string, + name: string, + _: WorkloadQuery, + __?: string, + ): Promise { + const parsedName = name.replace(/-/g, ''); + return kialiData.namespacesData[namespace].workloads[parsedName]; + } + + async getIstioConfig( + namespace: string, + _: string[], + __: boolean, + ___: string, + ____: string, + _____?: string, + ): Promise { + return kialiData.namespacesData[namespace].istioConfigList; + } + + async getServerConfig(): Promise { + return kialiData.config; + } + + async getNamespaceAppHealth( + namespace: string, + duration: DurationInSeconds, + cluster?: string, + queryTime?: TimeInSeconds, + ): Promise { + const ret: NamespaceAppHealth = {}; + const params: any = { + type: 'app', + rateInterval: `${String(duration)}s`, + queryTime: String(queryTime), + clusterName: cluster, + }; + const data = kialiData.namespacesData[namespace].health[params.type]; + Object.keys(data).forEach(k => { + ret[k] = AppHealth.fromJson(namespace, k, data[k], { + rateInterval: duration, + hasSidecar: true, + hasAmbient: false, + }); + }); + return ret; + } + + async getNamespaceServiceHealth( + namespace: string, + duration: DurationInSeconds, + cluster?: string, + queryTime?: TimeInSeconds, + ): Promise { + const ret: NamespaceServiceHealth = {}; + const params: any = { + type: 'service', + rateInterval: `${String(duration)}s`, + queryTime: String(queryTime), + clusterName: cluster, + }; + const data = kialiData.namespacesData[namespace].health[params.type]; + Object.keys(data).forEach(k => { + ret[k] = ServiceHealth.fromJson(namespace, k, data[k], { + rateInterval: duration, + hasSidecar: true, + hasAmbient: false, + }); + }); + return ret; + } + + async getNamespaceWorkloadHealth( + namespace: string, + duration: DurationInSeconds, + cluster?: string, + queryTime?: TimeInSeconds, + ): Promise { + const ret: NamespaceWorkloadHealth = {}; + const params: any = { + type: 'workload', + rateInterval: `${String(duration)}s`, + queryTime: String(queryTime), + clusterName: cluster, + }; + const data = kialiData.namespacesData[namespace].health[params.type]; + Object.keys(data).forEach(k => { + ret[k] = WorkloadHealth.fromJson(namespace, k, data[k], { + rateInterval: duration, + hasSidecar: true, + hasAmbient: false, + }); + }); + return ret; + } + + async getNamespaceTls( + namespace: string, + cluster?: string, + ): Promise { + const queryParams: any = {}; + if (cluster) { + queryParams.clusterName = cluster; + } + return kialiData.namespacesData[namespace].tls; + } + + async getMeshTls(cluster?: string): Promise { + const queryParams: any = {}; + if (cluster) { + queryParams.clusterName = cluster; + } + return kialiData.meshTls; + } + + async getOutboundTrafficPolicyMode(): Promise { + return kialiData.outboundTrafficPolicy; + } + + async getCanaryUpgradeStatus(): Promise { + return kialiData.meshCanaryStatus; + } + + async getIstiodResourceThresholds(): Promise { + return kialiData.meshIstioResourceThresholds; + } + + async getConfigValidations(cluster?: string): Promise { + const queryParams: any = {}; + if (cluster) { + queryParams.clusterName = cluster; + } + return kialiData.istioValidations; + } + + async getAllIstioConfigs( + namespaces: string[], + objects: string[], + validate: boolean, + labelSelector: string, + workloadSelector: string, + cluster?: string, + ): Promise { + const params: any = + namespaces && namespaces.length > 0 + ? { namespaces: namespaces.join(',') } + : {}; + if (objects && objects.length > 0) { + params.objects = objects.join(','); + } + if (validate) { + params.validate = validate; + } + if (labelSelector) { + params.labelSelector = labelSelector; + } + if (workloadSelector) { + params.workloadSelector = workloadSelector; + } + if (cluster) { + params.clusterName = cluster; + } + return kialiData.istioConfig; + } + + async getNamespaceMetrics( + namespace: string, + params: IstioMetricsOptions, + ): Promise> { + return kialiData.namespacesData[namespace].metrics[params.direction][ + params.duration as number + ]; + } + + async getIstioStatus(cluster?: string): Promise { + const queryParams: any = {}; + if (cluster) { + queryParams.clusterName = cluster; + } + return kialiData.istioStatus; + } + + async getIstioCertsInfo(): Promise { + return kialiData.istioCertsInfo; + } + isDevEnv(): boolean { + return true; + } + + async getPodLogs( + _: string, + __: string, + container?: string, + ___?: number, + ____?: number, + _duration?: DurationInSeconds, + _isProxy?: boolean, + _cluster?: string, + ): Promise { + if (container === 'istio-proxy') { + return kialiData.istioLogs; + } + return kialiData.logs; + } + + setPodEnvoyProxyLogLevel = async ( + _namespace: string, + _name: string, + _level: string, + _cluster?: string, + ): Promise => { + return; + }; + + async getWorkloadSpans( + _: string, + __: string, + ___: TracingQuery, + ____?: string, + ): Promise { + return kialiData.spanLogs; + } + + async getServices( + namespace: string, + _?: ServiceListQuery, + ): Promise { + return kialiData.services[namespace]; + } + + async getIstioConfigDetail( + namespace: string, + objectType: string, + object: string, + _validate: boolean, + _cluster?: string, + ): Promise { + return kialiData.namespacesData[namespace].istioConfigDetails[objectType][ + object + ]; + } + + async getServiceDetail( + namespace: string, + service: string, + _validate: boolean, + _cluster?: string, + rateInterval?: DurationInSeconds, + ): Promise { + const parsedName = service.replace(/-/g, ''); + const info: ServiceDetailsInfo = + kialiData.namespacesData[namespace].services[parsedName]; + + if (info.health) { + // Default rate interval in backend = 600s + info.health = ServiceHealth.fromJson(namespace, service, info.health, { + rateInterval: rateInterval ?? 600, + hasSidecar: info.istioSidecar, + hasAmbient: info.istioAmbient, + }); + } + return info; + } + + getApps = async ( + namespace: string, + _params: AppListQuery, + ): Promise => { + return kialiData.apps[namespace]; + }; + + getApp = async ( + namespace: string, + app: string, + _params: AppQuery, + _cluster?: string, + ): Promise => { + const parsedName = app.replace(/-/g, ''); + return kialiData.namespacesData[namespace].apps[parsedName]; + }; + + getCrippledFeatures = async (): Promise => { + return kialiData.crippledFeatures; + }; + + getWorkloadDashboard = async ( + namespace: string, + _workload: string, + _params: IstioMetricsOptions, + _cluster?: string, + ): Promise => { + return kialiData.namespacesData[namespace].dashboard; + }; + + getServiceDashboard = async ( + namespace: string, + _service: string, + _params: IstioMetricsOptions, + _cluster?: string, + ): Promise => { + return kialiData.namespacesData[namespace].dashboard; + }; + + getAppDashboard = async ( + namespace: string, + _app: string, + _params: IstioMetricsOptions, + _cluster?: string, + ): Promise => { + return kialiData.namespacesData[namespace].dashboard; + }; + + getGrafanaInfo = async (): Promise => { + return kialiData.grafanaInfo; + }; + + getAppSpans = async ( + namespace: string, + _app: string, + _params: TracingQuery, + _cluster?: string, + ): Promise => { + return kialiData.namespacesData[namespace].spans; + }; + + getServiceSpans = async ( + namespace: string, + _service: string, + _params: TracingQuery, + _cluster?: string, + ): Promise => { + return kialiData.namespacesData[namespace].spans; + }; +} + +const getSelected = (route: number) => { + const pathname = window.location.pathname.split('/'); + const paths = ['workloads', 'applications', 'services', 'istio', 'graph']; + if (pathname && paths.includes(pathname[2])) { + switch (pathname[2]) { + case 'workloads': + return ; + case 'services': + return ; + case 'applications': + return ; + case 'istio': + return ; + case 'graph': + return ; + default: + return ; + } + } + switch (route) { + case 0: + return ; + case 1: + return ; + case 2: + return ; + case 3: + return ; + case 4: + return ; + case 5: + return ; + default: + return ; + } +}; + +interface Props { + children?: React.ReactNode; + entity?: Entity; + isEntity?: boolean; +} + +export const MockProvider = (props: Props) => { + const [selectedTab, setSelectedTab] = React.useState(0); + const tabs = [ + { label: 'Overview', route: `/kiali#overview` }, + { label: 'Workloads', route: `/kiali#workloads` }, + { label: 'Services', route: `/kiali#services` }, + { label: 'Applications', route: `/kiali#applications` }, + { label: 'Istio Config', route: `/kiali#istio` }, + { label: 'Traffic Graph', route: `/kiali#graph` }, + ]; + + const content = ( + + + {!props.isEntity && ( + <> + + { + setSelectedTab(index); + }} + tabs={tabs.map(({ label }, index) => ({ + id: tabs[index].route, + label, + }))} + /> + + {getSelected(selectedTab)} + + )} + {props.isEntity && {getEntityRoutes()}} + + + ); + + const viewIfEntity = props.isEntity && ( + {content} + ); + + return ( + + {viewIfEntity || content} + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/auth_info_anonymous.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/auth_info_anonymous.json new file mode 100644 index 0000000000..b66d1554cf --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/auth_info_anonymous.json @@ -0,0 +1 @@ +{ "strategy": "anonymous", "sessionInfo": {} } diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/config.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/config.json new file mode 100644 index 0000000000..48d358f71d --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/config.json @@ -0,0 +1,190 @@ +{ + "accessibleNamespaces": ["**"], + "authStrategy": "anonymous", + "ambientEnabled": true, + "clusters": { + "Kubernetes": { + "apiEndpoint": "https://10.217.4.1:443", + "isKialiHome": true, + "kialiInstances": [ + { + "namespace": "istio-system", + "operatorResource": "kiali-operator/kiali", + "serviceName": "kiali", + "url": "https://kiali-istio-system.apps-crc.testing", + "version": "dev" + } + ], + "name": "Kubernetes", + "network": "", + "secretName": "" + } + }, + "deployment": {}, + "gatewayAPIClasses": [ + { + "name": "Istio", + "className": "istio" + } + ], + "healthConfig": { + "rate": [ + { + "tolerance": [ + { + "code": "5XX", + "degraded": 0, + "failure": 10, + "protocol": "http", + "direction": ".*" + }, + { + "code": "4XX", + "degraded": 10, + "failure": 20, + "protocol": "http", + "direction": ".*" + }, + { + "code": "^[1-9]$|^1[0-6]$", + "degraded": 0, + "failure": 10, + "protocol": "grpc", + "direction": ".*" + }, + { + "code": "^-$", + "degraded": 0, + "failure": 10, + "protocol": "http|grpc", + "direction": ".*" + } + ] + }, + { + "tolerance": [ + { + "code": "5XX", + "degraded": 0, + "failure": 10, + "protocol": "http", + "direction": ".*" + }, + { + "code": "4XX", + "degraded": 10, + "failure": 20, + "protocol": "http", + "direction": ".*" + }, + { + "code": "^[1-9]$|^1[0-6]$", + "degraded": 0, + "failure": 10, + "protocol": "grpc", + "direction": ".*" + }, + { + "code": "^-$", + "degraded": 0, + "failure": 10, + "protocol": "http|grpc", + "direction": ".*" + } + ] + } + ] + }, + "istioAnnotations": { + "istioInjectionAnnotation": "sidecar.istio.io/inject" + }, + "istioCanaryRevision": {}, + "istioConfigMap": "istio", + "istioIdentityDomain": "svc.cluster.local", + "istioLabels": { + "appLabelName": "app", + "injectionLabelName": "istio-injection", + "injectionLabelRev": "istio.io/rev", + "versionLabelName": "version" + }, + "istioNamespace": "istio-system", + "istioStatusEnabled": true, + "kialiFeatureFlags": { + "certificatesInformationIndicators": { + "enabled": true, + "secrets": ["cacerts", "istio-ca-secret"] + }, + "clustering": { + "enable_exec_provider": false + }, + "istioAnnotationAction": true, + "istioInjectionAction": true, + "istioUpgradeAction": false, + "uiDefaults": { + "graph": { + "findOptions": [ + { + "description": "Find: slow edges (\u003e 1s)", + "expression": "rt \u003e 1000" + }, + { + "description": "Find: unhealthy nodes", + "expression": "! healthy" + }, + { + "description": "Find: unknown nodes", + "expression": "name = unknown" + }, + { + "description": "Find: nodes with the 2 top rankings", + "expression": "rank \u003c= 2" + } + ], + "hideOptions": [ + { + "description": "Hide: healthy nodes", + "expression": "healthy" + }, + { + "description": "Hide: unknown nodes", + "expression": "name = unknown" + }, + { + "description": "Hide: nodes ranked lower than the 2 top rankings", + "expression": "rank \u003e 2" + } + ], + "impl": "cy", + "settings": { + "fontLabel": 13, + "minFontBadge": 7, + "minFontLabel": 10 + }, + "traffic": { + "grpc": "requests", + "http": "requests", + "tcp": "sent" + } + }, + "list": { + "includeHealth": true, + "includeIstioResources": true, + "includeValidations": true, + "showIncludeToggles": false + }, + "metricsPerRefresh": "1m", + "metricsInbound": {}, + "metricsOutbound": {}, + "refreshInterval": "60s" + }, + "validations": { + "ignore": ["KIA1201"], + "SkipWildcardGatewayHosts": false + } + }, + "logLevel": "trace", + "prometheus": { + "globalScrapeInterval": 15, + "storageTsdbRetention": 1296000 + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/crippledFeatures.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/crippledFeatures.json new file mode 100644 index 0000000000..df57b3043c --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/crippledFeatures.json @@ -0,0 +1,11 @@ +{ + "requestSize": false, + "requestSizeAverage": false, + "requestSizePercentiles": false, + "responseSize": false, + "responseSizeAverage": false, + "responseSizePercentiles": false, + "responseTime": false, + "responseTimeAverage": false, + "responseTimePercentiles": false +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/grafana.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/grafana.json new file mode 100644 index 0000000000..d5c78b758a --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/grafana.json @@ -0,0 +1 @@ +{ "externalLinks": [] } diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/graph.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/graph.json new file mode 100644 index 0000000000..08cf71c4a0 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/graph.json @@ -0,0 +1,693 @@ +{ + "timestamp": 1714482372, + "duration": 600, + "graphType": "versionedApp", + "elements": { + "nodes": [ + { + "data": { + "id": "aff0da95c77e733c6c59a13e37eb7426", + "nodeType": "box", + "cluster": "Kubernetes", + "namespace": "bookinfo", + "app": "details", + "healthData": null, + "isBox": "app" + } + }, + { + "data": { + "id": "4ca2e3526d0ccf5c9504a47a8b4d0110", + "nodeType": "box", + "cluster": "Kubernetes", + "namespace": "bookinfo", + "app": "productpage", + "healthData": null, + "isBox": "app" + } + }, + { + "data": { + "id": "6378b52ac56dfbf2e3c67dbef33175e9", + "nodeType": "box", + "cluster": "Kubernetes", + "namespace": "bookinfo", + "app": "ratings", + "healthData": null, + "isBox": "app" + } + }, + { + "data": { + "id": "3e47740be8ba644276344b56d7fcec99", + "nodeType": "box", + "cluster": "Kubernetes", + "namespace": "bookinfo", + "app": "reviews", + "healthData": null, + "isBox": "app" + } + }, + { + "data": { + "id": "f57e738c232d795bebf9a44123805ce7", + "parent": "aff0da95c77e733c6c59a13e37eb7426", + "nodeType": "service", + "cluster": "Kubernetes", + "namespace": "bookinfo", + "app": "details", + "service": "details", + "destServices": [ + { + "cluster": "Kubernetes", + "namespace": "bookinfo", + "name": "details" + } + ], + "traffic": [ + { + "protocol": "http", + "rates": { + "httpIn": "1.00", + "httpOut": "1.00" + } + } + ], + "healthData": null + } + }, + { + "data": { + "id": "b04c9d1c1cc52bfef05b650959f234be", + "parent": "aff0da95c77e733c6c59a13e37eb7426", + "nodeType": "app", + "cluster": "Kubernetes", + "namespace": "bookinfo", + "workload": "details-v1", + "app": "details", + "version": "v1", + "destServices": [ + { + "cluster": "Kubernetes", + "namespace": "bookinfo", + "name": "details" + } + ], + "traffic": [ + { + "protocol": "http", + "rates": { + "httpIn": "1.00" + } + } + ], + "healthData": null + } + }, + { + "data": { + "id": "18ff9f7024139d94a8425f5d0c9fe13b", + "nodeType": "app", + "cluster": "Kubernetes", + "namespace": "bookinfo", + "workload": "kiali-traffic-generator", + "app": "kiali-traffic-generator", + "version": "unknown", + "healthData": null, + "isIdle": true + } + }, + { + "data": { + "id": "157216a5f2d59f1a81ed4b8c491bdf89", + "parent": "4ca2e3526d0ccf5c9504a47a8b4d0110", + "nodeType": "service", + "cluster": "Kubernetes", + "namespace": "bookinfo", + "app": "productpage", + "service": "productpage", + "destServices": [ + { + "cluster": "Kubernetes", + "namespace": "bookinfo", + "name": "productpage" + } + ], + "traffic": [ + { + "protocol": "http", + "rates": { + "httpIn": "1.00", + "httpOut": "1.00" + } + } + ], + "healthData": null, + "hasRequestRouting": true, + "hasVS": { + "hostnames": ["*"] + } + } + }, + { + "data": { + "id": "aee5d4295ff485ac2f2b69617d35b75b", + "parent": "4ca2e3526d0ccf5c9504a47a8b4d0110", + "nodeType": "app", + "cluster": "Kubernetes", + "namespace": "bookinfo", + "workload": "productpage-v1", + "app": "productpage", + "version": "v1", + "destServices": [ + { + "cluster": "Kubernetes", + "namespace": "bookinfo", + "name": "productpage" + } + ], + "traffic": [ + { + "protocol": "http", + "rates": { + "httpIn": "1.00", + "httpOut": "2.00" + } + } + ], + "healthData": null + } + }, + { + "data": { + "id": "0e496a9f26a918c9545cb0b362c90bd4", + "parent": "6378b52ac56dfbf2e3c67dbef33175e9", + "nodeType": "service", + "cluster": "Kubernetes", + "namespace": "bookinfo", + "app": "ratings", + "service": "ratings", + "destServices": [ + { + "cluster": "Kubernetes", + "namespace": "bookinfo", + "name": "ratings" + } + ], + "traffic": [ + { + "protocol": "http", + "rates": { + "httpIn": "0.68", + "httpOut": "0.68" + } + } + ], + "healthData": null + } + }, + { + "data": { + "id": "39784f543b4215a7e14bd3d7e8ffa5a8", + "parent": "6378b52ac56dfbf2e3c67dbef33175e9", + "nodeType": "app", + "cluster": "Kubernetes", + "namespace": "bookinfo", + "workload": "ratings-v1", + "app": "ratings", + "version": "v1", + "destServices": [ + { + "cluster": "Kubernetes", + "namespace": "bookinfo", + "name": "ratings" + } + ], + "traffic": [ + { + "protocol": "http", + "rates": { + "httpIn": "0.68" + } + } + ], + "healthData": null + } + }, + { + "data": { + "id": "6d56f1d333f1df5be1332a09c0866dd7", + "parent": "3e47740be8ba644276344b56d7fcec99", + "nodeType": "service", + "cluster": "Kubernetes", + "namespace": "bookinfo", + "app": "reviews", + "service": "reviews", + "destServices": [ + { + "cluster": "Kubernetes", + "namespace": "bookinfo", + "name": "reviews" + } + ], + "traffic": [ + { + "protocol": "http", + "rates": { + "httpIn": "1.00", + "httpOut": "1.00" + } + } + ], + "healthData": null + } + }, + { + "data": { + "id": "be64cf1064d2d8d853979c25ab5d6dfe", + "parent": "3e47740be8ba644276344b56d7fcec99", + "nodeType": "app", + "cluster": "Kubernetes", + "namespace": "bookinfo", + "workload": "reviews-v1", + "app": "reviews", + "version": "v1", + "destServices": [ + { + "cluster": "Kubernetes", + "namespace": "bookinfo", + "name": "reviews" + } + ], + "traffic": [ + { + "protocol": "http", + "rates": { + "httpIn": "0.32" + } + } + ], + "healthData": null + } + }, + { + "data": { + "id": "b2f57800ff71b31035a226dca93d7ec0", + "parent": "3e47740be8ba644276344b56d7fcec99", + "nodeType": "app", + "cluster": "Kubernetes", + "namespace": "bookinfo", + "workload": "reviews-v2", + "app": "reviews", + "version": "v2", + "destServices": [ + { + "cluster": "Kubernetes", + "namespace": "bookinfo", + "name": "reviews" + } + ], + "traffic": [ + { + "protocol": "http", + "rates": { + "httpIn": "0.33", + "httpOut": "0.33" + } + } + ], + "healthData": null + } + }, + { + "data": { + "id": "582a5e548c2511d13bc0e15cdeacf25f", + "parent": "3e47740be8ba644276344b56d7fcec99", + "nodeType": "app", + "cluster": "Kubernetes", + "namespace": "bookinfo", + "workload": "reviews-v3", + "app": "reviews", + "version": "v3", + "destServices": [ + { + "cluster": "Kubernetes", + "namespace": "bookinfo", + "name": "reviews" + } + ], + "traffic": [ + { + "protocol": "http", + "rates": { + "httpIn": "0.35", + "httpOut": "0.34" + } + } + ], + "healthData": null + } + }, + { + "data": { + "id": "a667b44b1e859fa663a3e5f4255bec01", + "nodeType": "app", + "cluster": "Kubernetes", + "namespace": "istio-system", + "workload": "istio-ingressgateway", + "app": "istio-ingressgateway", + "version": "latest", + "traffic": [ + { + "protocol": "http", + "rates": { + "httpOut": "1.00" + } + } + ], + "healthData": null, + "isGateway": { + "ingressInfo": { + "hostnames": ["*"] + }, + "egressInfo": {}, + "gatewayAPIInfo": {} + }, + "isOutside": true, + "isRoot": true + } + } + ], + "edges": [ + { + "data": { + "id": "147839a13d6141a1d94edd3bfa6215ef", + "source": "0e496a9f26a918c9545cb0b362c90bd4", + "target": "39784f543b4215a7e14bd3d7e8ffa5a8", + "destPrincipal": "spiffe://cluster.local/ns/bookinfo/sa/bookinfo-ratings", + "isMTLS": "100", + "responseTime": "4", + "sourcePrincipal": "spiffe://cluster.local/ns/bookinfo/sa/bookinfo-reviews", + "throughput": "707", + "traffic": { + "protocol": "http", + "rates": { + "http": "0.68", + "httpPercentReq": "100.0" + }, + "responses": { + "200": { + "flags": { + "-": "100.0" + }, + "hosts": { + "ratings.bookinfo.svc.cluster.local": "100.0" + } + } + } + } + } + }, + { + "data": { + "id": "5cb834e8d308810ea4eb3649215537b1", + "source": "157216a5f2d59f1a81ed4b8c491bdf89", + "target": "aee5d4295ff485ac2f2b69617d35b75b", + "destPrincipal": "spiffe://cluster.local/ns/bookinfo/sa/bookinfo-productpage", + "isMTLS": "100", + "responseTime": "46", + "sourcePrincipal": "spiffe://cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account", + "throughput": "6025", + "traffic": { + "protocol": "http", + "rates": { + "http": "1.00", + "httpPercentReq": "100.0" + }, + "responses": { + "200": { + "flags": { + "-": "100.0" + }, + "hosts": { + "productpage.bookinfo.svc.cluster.local": "100.0" + } + } + } + } + } + }, + { + "data": { + "id": "93adf5c3ae2f1e4761abf3f426d80c2e", + "source": "582a5e548c2511d13bc0e15cdeacf25f", + "target": "0e496a9f26a918c9545cb0b362c90bd4", + "destPrincipal": "spiffe://cluster.local/ns/bookinfo/sa/bookinfo-ratings", + "isMTLS": "100", + "sourcePrincipal": "spiffe://cluster.local/ns/bookinfo/sa/bookinfo-reviews", + "traffic": { + "protocol": "http", + "rates": { + "http": "0.34", + "httpPercentReq": "100.0" + }, + "responses": { + "200": { + "flags": { + "-": "100.0" + }, + "hosts": { + "ratings.bookinfo.svc.cluster.local": "100.0" + } + } + } + } + } + }, + { + "data": { + "id": "406d2cca8f1dde85710e56914854db0f", + "source": "6d56f1d333f1df5be1332a09c0866dd7", + "target": "582a5e548c2511d13bc0e15cdeacf25f", + "destPrincipal": "spiffe://cluster.local/ns/bookinfo/sa/bookinfo-reviews", + "isMTLS": "100", + "responseTime": "10", + "sourcePrincipal": "spiffe://cluster.local/ns/bookinfo/sa/bookinfo-productpage", + "throughput": "501", + "traffic": { + "protocol": "http", + "rates": { + "http": "0.35", + "httpPercentReq": "35.0" + }, + "responses": { + "200": { + "flags": { + "-": "100.0" + }, + "hosts": { + "reviews.bookinfo.svc.cluster.local": "100.0" + } + } + } + } + } + }, + { + "data": { + "id": "311226f62878ee93e501c39e0f2f7e7a", + "source": "6d56f1d333f1df5be1332a09c0866dd7", + "target": "b2f57800ff71b31035a226dca93d7ec0", + "destPrincipal": "spiffe://cluster.local/ns/bookinfo/sa/bookinfo-reviews", + "isMTLS": "100", + "responseTime": "10", + "sourcePrincipal": "spiffe://cluster.local/ns/bookinfo/sa/bookinfo-productpage", + "throughput": "478", + "traffic": { + "protocol": "http", + "rates": { + "http": "0.33", + "httpPercentReq": "33.0" + }, + "responses": { + "200": { + "flags": { + "-": "100.0" + }, + "hosts": { + "reviews.bookinfo.svc.cluster.local": "100.0" + } + } + } + } + } + }, + { + "data": { + "id": "f26f9372c4ac32141a508f614fd02e65", + "source": "6d56f1d333f1df5be1332a09c0866dd7", + "target": "be64cf1064d2d8d853979c25ab5d6dfe", + "destPrincipal": "spiffe://cluster.local/ns/bookinfo/sa/bookinfo-reviews", + "isMTLS": "100", + "responseTime": "5", + "sourcePrincipal": "spiffe://cluster.local/ns/bookinfo/sa/bookinfo-productpage", + "throughput": "436", + "traffic": { + "protocol": "http", + "rates": { + "http": "0.32", + "httpPercentReq": "32.1" + }, + "responses": { + "200": { + "flags": { + "-": "100.0" + }, + "hosts": { + "reviews.bookinfo.svc.cluster.local": "100.0" + } + } + } + } + } + }, + { + "data": { + "id": "53f670e5e51ffbd71693281c6c9d72df", + "source": "a667b44b1e859fa663a3e5f4255bec01", + "target": "157216a5f2d59f1a81ed4b8c491bdf89", + "destPrincipal": "spiffe://cluster.local/ns/bookinfo/sa/bookinfo-productpage", + "isMTLS": "100", + "sourcePrincipal": "spiffe://cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account", + "traffic": { + "protocol": "http", + "rates": { + "http": "1.00", + "httpPercentReq": "100.0" + }, + "responses": { + "200": { + "flags": { + "-": "100.0" + }, + "hosts": { + "productpage.bookinfo.svc.cluster.local": "100.0" + } + } + } + } + } + }, + { + "data": { + "id": "4097ccbc1355d99fd6694e553fd468c9", + "source": "aee5d4295ff485ac2f2b69617d35b75b", + "target": "6d56f1d333f1df5be1332a09c0866dd7", + "destPrincipal": "spiffe://cluster.local/ns/bookinfo/sa/bookinfo-reviews", + "isMTLS": "100", + "sourcePrincipal": "spiffe://cluster.local/ns/bookinfo/sa/bookinfo-productpage", + "traffic": { + "protocol": "http", + "rates": { + "http": "1.00", + "httpPercentReq": "50.0" + }, + "responses": { + "200": { + "flags": { + "-": "100.0" + }, + "hosts": { + "reviews.bookinfo.svc.cluster.local": "100.0" + } + } + } + } + } + }, + { + "data": { + "id": "b3538d2ad65d3a391b01812c81fd28c2", + "source": "aee5d4295ff485ac2f2b69617d35b75b", + "target": "f57e738c232d795bebf9a44123805ce7", + "destPrincipal": "spiffe://cluster.local/ns/bookinfo/sa/bookinfo-details", + "isMTLS": "100", + "sourcePrincipal": "spiffe://cluster.local/ns/bookinfo/sa/bookinfo-productpage", + "traffic": { + "protocol": "http", + "rates": { + "http": "1.00", + "httpPercentReq": "50.0" + }, + "responses": { + "200": { + "flags": { + "-": "100.0" + }, + "hosts": { + "details.bookinfo.svc.cluster.local": "100.0" + } + } + } + } + } + }, + { + "data": { + "id": "53979a75015d8a0250fe23d7dbf3e9aa", + "source": "b2f57800ff71b31035a226dca93d7ec0", + "target": "0e496a9f26a918c9545cb0b362c90bd4", + "destPrincipal": "spiffe://cluster.local/ns/bookinfo/sa/bookinfo-ratings", + "isMTLS": "100", + "sourcePrincipal": "spiffe://cluster.local/ns/bookinfo/sa/bookinfo-reviews", + "traffic": { + "protocol": "http", + "rates": { + "http": "0.33", + "httpPercentReq": "100.0" + }, + "responses": { + "200": { + "flags": { + "-": "100.0" + }, + "hosts": { + "ratings.bookinfo.svc.cluster.local": "100.0" + } + } + } + } + } + }, + { + "data": { + "id": "09ae6b99f13a2d978f17f5494e366280", + "source": "f57e738c232d795bebf9a44123805ce7", + "target": "b04c9d1c1cc52bfef05b650959f234be", + "destPrincipal": "spiffe://cluster.local/ns/bookinfo/sa/bookinfo-details", + "isMTLS": "100", + "responseTime": "5", + "sourcePrincipal": "spiffe://cluster.local/ns/bookinfo/sa/bookinfo-productpage", + "throughput": "1150", + "traffic": { + "protocol": "http", + "rates": { + "http": "1.00", + "httpPercentReq": "100.0" + }, + "responses": { + "200": { + "flags": { + "-": "100.0" + }, + "hosts": { + "details.bookinfo.svc.cluster.local": "100.0" + } + } + } + } + } + } + ] + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/istioCertsInfo.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/istioCertsInfo.json new file mode 100644 index 0000000000..eeda6f935b --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/istioCertsInfo.json @@ -0,0 +1,12 @@ +[ + { + "secretName": "istio-ca-secret", + "secretNamespace": "istio-system", + "dnsNames": null, + "issuer": "O=cluster.local", + "notBefore": "2023-10-09T07:01:47Z", + "notAfter": "2033-10-06T07:01:47Z", + "error": "", + "accessible": true + } +] diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/istioConfig.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/istioConfig.json new file mode 100644 index 0000000000..506c4c4372 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/istioConfig.json @@ -0,0 +1,533 @@ +{ + "bookinfo": { + "namespace": { + "name": "bookinfo", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "destinationRules": [], + "envoyFilters": [], + "gateways": [ + { + "kind": "Gateway", + "apiVersion": "networking.istio.io/v1beta1", + "metadata": { + "name": "bookinfo-gateway", + "namespace": "bookinfo", + "uid": "6369d379-ce97-4a77-98ef-5702845ddc56", + "resourceVersion": "811259", + "generation": 3, + "creationTimestamp": "2024-03-05T14:38:05Z", + "annotations": { + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"networking.istio.io/v1alpha3\",\"kind\":\"Gateway\",\"metadata\":{\"annotations\":{},\"name\":\"bookinfo-gateway\",\"namespace\":\"bookinfo\"},\"spec\":{\"selector\":{\"istio\":\"ingressgateway\"},\"servers\":[{\"hosts\":[\"*\"],\"port\":{\"name\":\"http\",\"number\":8080,\"protocol\":\"HTTP\"}}]}}\n" + }, + "managedFields": [ + { + "manager": "kubectl-client-side-apply", + "operation": "Update", + "apiVersion": "networking.istio.io/v1alpha3", + "time": "2024-03-05T14:38:05Z", + "fieldsType": "FieldsV1", + "fieldsV1": { + "f:metadata": { + "f:annotations": { + ".": {}, + "f:kubectl.kubernetes.io/last-applied-configuration": {} + } + }, + "f:spec": { + ".": {}, + "f:selector": {}, + "f:servers": {} + } + } + }, + { + "manager": "kiali", + "operation": "Update", + "apiVersion": "networking.istio.io/v1beta1", + "time": "2024-03-20T12:42:26Z", + "fieldsType": "FieldsV1", + "fieldsV1": { + "f:spec": { + "f:selector": { + "f:istio": {} + } + } + } + } + ] + }, + "spec": { + "servers": [ + { + "port": { + "number": 8080, + "protocol": "HTTP", + "name": "http" + }, + "hosts": ["*"] + } + ], + "selector": { + "istio": "ingressgateway" + } + }, + "status": {} + } + ], + "serviceEntries": [], + "sidecars": [], + "virtualServices": [ + { + "kind": "VirtualService", + "apiVersion": "networking.istio.io/v1beta1", + "metadata": { + "name": "bookinfo", + "namespace": "bookinfo", + "uid": "16c9b2e6-4bc2-426c-9464-853a4148435f", + "resourceVersion": "784735", + "generation": 9, + "creationTimestamp": "2024-03-05T14:38:05Z", + "annotations": { + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"networking.istio.io/v1alpha3\",\"kind\":\"VirtualService\",\"metadata\":{\"annotations\":{},\"name\":\"bookinfo\",\"namespace\":\"bookinfo\"},\"spec\":{\"gateways\":[\"bookinfo-gateway\"],\"hosts\":[\"*\"],\"http\":[{\"match\":[{\"uri\":{\"exact\":\"/productpage\"}},{\"uri\":{\"prefix\":\"/static\"}},{\"uri\":{\"exact\":\"/login\"}},{\"uri\":{\"exact\":\"/logout\"}},{\"uri\":{\"prefix\":\"/api/v1/products\"}}],\"route\":[{\"destination\":{\"host\":\"productpage\",\"port\":{\"number\":9080}}}]}]}}\n" + }, + "managedFields": [ + { + "manager": "kubectl-client-side-apply", + "operation": "Update", + "apiVersion": "networking.istio.io/v1alpha3", + "time": "2024-03-05T14:38:05Z", + "fieldsType": "FieldsV1", + "fieldsV1": { + "f:metadata": { + "f:annotations": { + ".": {}, + "f:kubectl.kubernetes.io/last-applied-configuration": {} + } + }, + "f:spec": { + ".": {}, + "f:hosts": {}, + "f:http": {} + } + } + }, + { + "manager": "kiali", + "operation": "Update", + "apiVersion": "networking.istio.io/v1beta1", + "time": "2024-03-19T14:43:01Z", + "fieldsType": "FieldsV1", + "fieldsV1": { + "f:spec": { + "f:gateways": {} + } + } + } + ] + }, + "spec": { + "hosts": ["*"], + "gateways": ["bookinfo-gateway"], + "http": [ + { + "match": [ + { + "uri": { + "exact": "/productpage" + } + }, + { + "uri": { + "prefix": "/static" + } + }, + { + "uri": { + "exact": "/login" + } + }, + { + "uri": { + "exact": "/logout" + } + }, + { + "uri": { + "prefix": "/api/v1/products" + } + } + ], + "route": [ + { + "destination": { + "host": "productpage", + "port": { + "number": 9080 + } + } + } + ] + } + ] + }, + "status": {} + } + ], + "workloadEntries": [], + "workloadGroups": [], + "wasmPlugins": [], + "telemetries": [], + "k8sGateways": [], + "k8sGRPCRoutes": [], + "k8sHTTPRoutes": [], + "k8sReferenceGrants": [], + "k8sTCPRoutes": [], + "k8sTLSRoutes": [], + "authorizationPolicies": [], + "peerAuthentications": [], + "requestAuthentications": [], + "validations": {} + }, + "default": { + "namespace": { + "name": "default", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "destinationRules": [], + "envoyFilters": [], + "gateways": [], + "serviceEntries": [], + "sidecars": [], + "virtualServices": [], + "workloadEntries": [], + "workloadGroups": [], + "wasmPlugins": [], + "telemetries": [], + "k8sGateways": [], + "k8sGRPCRoutes": [], + "k8sHTTPRoutes": [], + "k8sReferenceGrants": [], + "k8sTCPRoutes": [], + "k8sTLSRoutes": [], + "authorizationPolicies": [], + "peerAuthentications": [], + "requestAuthentications": [], + "validations": {} + }, + "ingress-nginx": { + "namespace": { + "name": "ingress-nginx", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "destinationRules": [], + "envoyFilters": [], + "gateways": [], + "serviceEntries": [], + "sidecars": [], + "virtualServices": [], + "workloadEntries": [], + "workloadGroups": [], + "wasmPlugins": [], + "telemetries": [], + "k8sGateways": [], + "k8sGRPCRoutes": [], + "k8sHTTPRoutes": [], + "k8sReferenceGrants": [], + "k8sTCPRoutes": [], + "k8sTLSRoutes": [], + "authorizationPolicies": [], + "peerAuthentications": [], + "requestAuthentications": [], + "validations": {} + }, + "istio-system": { + "namespace": { + "name": "istio-system", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "destinationRules": [], + "envoyFilters": [], + "gateways": [], + "serviceEntries": [], + "sidecars": [], + "virtualServices": [], + "workloadEntries": [], + "workloadGroups": [], + "wasmPlugins": [], + "telemetries": [], + "k8sGateways": [], + "k8sGRPCRoutes": [], + "k8sHTTPRoutes": [], + "k8sReferenceGrants": [], + "k8sTCPRoutes": [], + "k8sTLSRoutes": [], + "authorizationPolicies": [], + "peerAuthentications": [], + "requestAuthentications": [], + "validations": {} + }, + "travel-agency": { + "namespace": { + "name": "travel-agency", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "destinationRules": [], + "envoyFilters": [], + "gateways": [], + "serviceEntries": [], + "sidecars": [], + "virtualServices": [], + "workloadEntries": [], + "workloadGroups": [], + "wasmPlugins": [], + "telemetries": [], + "k8sGateways": [], + "k8sGRPCRoutes": [], + "k8sHTTPRoutes": [], + "k8sReferenceGrants": [], + "k8sTCPRoutes": [], + "k8sTLSRoutes": [], + "authorizationPolicies": [], + "peerAuthentications": [], + "requestAuthentications": [], + "validations": {} + }, + "travel-control": { + "namespace": { + "name": "travel-control", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "destinationRules": [ + { + "kind": "DestinationRule", + "apiVersion": "networking.istio.io/v1beta1", + "metadata": { + "name": "control", + "namespace": "travel-control", + "uid": "a89f69da-5778-46be-b200-4085b6b4c356", + "resourceVersion": "811967", + "generation": 1, + "creationTimestamp": "2024-03-20T12:45:22Z", + "labels": { + "kiali_wizard": "request_routing" + }, + "managedFields": [ + { + "manager": "kiali", + "operation": "Update", + "apiVersion": "networking.istio.io/v1beta1", + "time": "2024-03-20T12:45:22Z", + "fieldsType": "FieldsV1", + "fieldsV1": { + "f:metadata": { + "f:labels": { + ".": {}, + "f:kiali_wizard": {} + } + }, + "f:spec": { + ".": {}, + "f:host": {}, + "f:subsets": {} + } + } + } + ] + }, + "spec": { + "host": "control.travel-control.svc.cluster.local", + "subsets": [ + { + "name": "v1", + "labels": { + "version": "v1" + } + } + ] + }, + "status": {} + } + ], + "envoyFilters": [], + "gateways": [ + { + "kind": "Gateway", + "apiVersion": "networking.istio.io/v1beta1", + "metadata": { + "name": "control-gateway", + "namespace": "travel-control", + "uid": "185675fa-6cca-45ab-a194-e64a57569452", + "resourceVersion": "812011", + "generation": 2, + "creationTimestamp": "2024-03-20T12:45:22Z", + "labels": { + "kiali_wizard": "request_routing" + }, + "managedFields": [ + { + "manager": "kiali", + "operation": "Update", + "apiVersion": "networking.istio.io/v1beta1", + "time": "2024-03-20T12:45:49Z", + "fieldsType": "FieldsV1", + "fieldsV1": { + "f:metadata": { + "f:labels": { + ".": {}, + "f:kiali_wizard": {} + } + }, + "f:spec": { + ".": {}, + "f:selector": { + ".": {}, + "f:istio": {} + }, + "f:servers": {} + } + } + } + ] + }, + "spec": { + "servers": [ + { + "port": { + "number": 8080, + "protocol": "HTTP", + "name": "http" + }, + "hosts": ["*"] + } + ], + "selector": { + "istio": "ingressgateway" + } + }, + "status": {} + } + ], + "serviceEntries": [], + "sidecars": [], + "virtualServices": [ + { + "kind": "VirtualService", + "apiVersion": "networking.istio.io/v1beta1", + "metadata": { + "name": "control", + "namespace": "travel-control", + "uid": "05468816-71ed-437d-9fc5-c0120d6ab61a", + "resourceVersion": "811969", + "generation": 1, + "creationTimestamp": "2024-03-20T12:45:22Z", + "labels": { + "kiali_wizard": "request_routing" + }, + "managedFields": [ + { + "manager": "kiali", + "operation": "Update", + "apiVersion": "networking.istio.io/v1beta1", + "time": "2024-03-20T12:45:22Z", + "fieldsType": "FieldsV1", + "fieldsV1": { + "f:metadata": { + "f:labels": { + ".": {}, + "f:kiali_wizard": {} + } + }, + "f:spec": { + ".": {}, + "f:gateways": {}, + "f:hosts": {}, + "f:http": {} + } + } + } + ] + }, + "spec": { + "hosts": ["*"], + "gateways": ["travel-control/control-gateway"], + "http": [ + { + "route": [ + { + "destination": { + "host": "control.travel-control.svc.cluster.local", + "subset": "v1" + }, + "weight": 100 + } + ] + } + ] + }, + "status": {} + } + ], + "workloadEntries": [], + "workloadGroups": [], + "wasmPlugins": [], + "telemetries": [], + "k8sGateways": [], + "k8sGRPCRoutes": [], + "k8sHTTPRoutes": [], + "k8sReferenceGrants": [], + "k8sTCPRoutes": [], + "k8sTLSRoutes": [], + "authorizationPolicies": [], + "peerAuthentications": [], + "requestAuthentications": [], + "validations": {} + }, + "travel-portal": { + "namespace": { + "name": "travel-portal", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "destinationRules": [], + "envoyFilters": [], + "gateways": [], + "serviceEntries": [], + "sidecars": [], + "virtualServices": [], + "workloadEntries": [], + "workloadGroups": [], + "wasmPlugins": [], + "telemetries": [], + "k8sGateways": [], + "k8sGRPCRoutes": [], + "k8sHTTPRoutes": [], + "k8sReferenceGrants": [], + "k8sTCPRoutes": [], + "k8sTLSRoutes": [], + "authorizationPolicies": [], + "peerAuthentications": [], + "requestAuthentications": [], + "validations": {} + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/istioLogs.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/istioLogs.json new file mode 100644 index 0000000000..801bf5ab0e --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/istioLogs.json @@ -0,0 +1,12918 @@ +{ + "entries": [ + { + "message": "2024-02-26T09:51:31.375802Z\tinfo\tFLAG: --concurrency=\"0\"", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.375", + "timestampUnix": 1708941091375 + }, + { + "message": "2024-02-26T09:51:31.375815Z\tinfo\tFLAG: --domain=\"bookinfo.svc.cluster.local\"", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.375", + "timestampUnix": 1708941091375 + }, + { + "message": "2024-02-26T09:51:31.375818Z\tinfo\tFLAG: --help=\"false\"", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.375", + "timestampUnix": 1708941091375 + }, + { + "message": "2024-02-26T09:51:31.375820Z\tinfo\tFLAG: --log_as_json=\"false\"", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.375", + "timestampUnix": 1708941091375 + }, + { + "message": "2024-02-26T09:51:31.375822Z\tinfo\tFLAG: --log_caller=\"\"", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.375", + "timestampUnix": 1708941091375 + }, + { + "message": "2024-02-26T09:51:31.375823Z\tinfo\tFLAG: --log_output_level=\"default:info\"", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.375", + "timestampUnix": 1708941091375 + }, + { + "message": "2024-02-26T09:51:31.375825Z\tinfo\tFLAG: --log_rotate=\"\"", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.375", + "timestampUnix": 1708941091375 + }, + { + "message": "2024-02-26T09:51:31.375826Z\tinfo\tFLAG: --log_rotate_max_age=\"30\"", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.375", + "timestampUnix": 1708941091375 + }, + { + "message": "2024-02-26T09:51:31.375828Z\tinfo\tFLAG: --log_rotate_max_backups=\"1000\"", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.375", + "timestampUnix": 1708941091375 + }, + { + "message": "2024-02-26T09:51:31.375830Z\tinfo\tFLAG: --log_rotate_max_size=\"104857600\"", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.375", + "timestampUnix": 1708941091375 + }, + { + "message": "2024-02-26T09:51:31.375832Z\tinfo\tFLAG: --log_stacktrace_level=\"default:none\"", + "severity": "TRACE", + "timestamp": "2024-02-26 09:51:31.375", + "timestampUnix": 1708941091375 + }, + { + "message": "2024-02-26T09:51:31.375839Z\tinfo\tFLAG: --log_target=\"[stdout]\"", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.375", + "timestampUnix": 1708941091375 + }, + { + "message": "2024-02-26T09:51:31.375841Z\tinfo\tFLAG: --meshConfig=\"./etc/istio/config/mesh\"", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.375", + "timestampUnix": 1708941091375 + }, + { + "message": "2024-02-26T09:51:31.375843Z\tinfo\tFLAG: --outlierLogPath=\"\"", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.375", + "timestampUnix": 1708941091375 + }, + { + "message": "2024-02-26T09:51:31.375845Z\tinfo\tFLAG: --profiling=\"true\"", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.375", + "timestampUnix": 1708941091375 + }, + { + "message": "2024-02-26T09:51:31.375846Z\tinfo\tFLAG: --proxyComponentLogLevel=\"misc:error\"", + "severity": "ERROR", + "timestamp": "2024-02-26 09:51:31.375", + "timestampUnix": 1708941091375 + }, + { + "message": "2024-02-26T09:51:31.375848Z\tinfo\tFLAG: --proxyLogLevel=\"warning\"", + "severity": "WARN", + "timestamp": "2024-02-26 09:51:31.375", + "timestampUnix": 1708941091375 + }, + { + "message": "2024-02-26T09:51:31.375849Z\tinfo\tFLAG: --serviceCluster=\"istio-proxy\"", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.375", + "timestampUnix": 1708941091375 + }, + { + "message": "2024-02-26T09:51:31.375851Z\tinfo\tFLAG: --stsPort=\"0\"", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.375", + "timestampUnix": 1708941091375 + }, + { + "message": "2024-02-26T09:51:31.375852Z\tinfo\tFLAG: --templateFile=\"\"", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.375", + "timestampUnix": 1708941091375 + }, + { + "message": "2024-02-26T09:51:31.375854Z\tinfo\tFLAG: --tokenManagerPlugin=\"GoogleTokenExchange\"", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.375", + "timestampUnix": 1708941091375 + }, + { + "message": "2024-02-26T09:51:31.375858Z\tinfo\tFLAG: --vklog=\"0\"", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.375", + "timestampUnix": 1708941091375 + }, + { + "message": "2024-02-26T09:51:31.375861Z\tinfo\tVersion 1.21.0-rc.0-d540fd3c7a277e2d5e0b2cc401644f10cebe19b8-Clean", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.375", + "timestampUnix": 1708941091375 + }, + { + "message": "2024-02-26T09:51:31.376984Z\tinfo\tMaximum file descriptors (ulimit -n): 1048576", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.377", + "timestampUnix": 1708941091377 + }, + { + "message": "2024-02-26T09:51:31.377111Z\tinfo\tProxy role\tips=[10.244.0.13] type=sidecar id=productpage-v1-675fc69cf-vv5wr.bookinfo domain=bookinfo.svc.cluster.local", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.377", + "timestampUnix": 1708941091377 + }, + { + "message": "2024-02-26T09:51:31.377154Z\tinfo\tApply proxy config from env {\"tracing\":{\"zipkin\":{\"address\":\"zipkin.istio-system:9411\"},\"sampling\":100}}", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.377", + "timestampUnix": 1708941091377 + }, + { + "message": "2024-02-26T09:51:31.378321Z\tinfo\tcpu limit detected as 2, setting concurrency", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.378", + "timestampUnix": 1708941091378 + }, + { + "message": "2024-02-26T09:51:31.378534Z\tinfo\tEffective config: binaryPath: /usr/local/bin/envoy", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.378", + "timestampUnix": 1708941091378 + }, + { + "message": "concurrency: 2", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.378", + "timestampUnix": 1708941091378 + }, + { + "message": "configPath: ./etc/istio/proxy", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.378", + "timestampUnix": 1708941091378 + }, + { + "message": "controlPlaneAuthPolicy: MUTUAL_TLS", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.378", + "timestampUnix": 1708941091378 + }, + { + "message": "discoveryAddress: istiod.istio-system.svc:15012", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.378", + "timestampUnix": 1708941091378 + }, + { + "message": "drainDuration: 45s", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.378", + "timestampUnix": 1708941091378 + }, + { + "message": "proxyAdminPort: 15000", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.378", + "timestampUnix": 1708941091378 + }, + { + "message": "serviceCluster: istio-proxy", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.378", + "timestampUnix": 1708941091378 + }, + { + "message": "statNameLength: 189", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.378", + "timestampUnix": 1708941091378 + }, + { + "message": "statusPort: 15020", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.378", + "timestampUnix": 1708941091378 + }, + { + "message": "terminationDrainDuration: 5s", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.378", + "timestampUnix": 1708941091378 + }, + { + "message": "tracing:", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.378", + "timestampUnix": 1708941091378 + }, + { + "message": "sampling: 100", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.378", + "timestampUnix": 1708941091378 + }, + { + "message": "zipkin:", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.378", + "timestampUnix": 1708941091378 + }, + { + "message": "address: zipkin.istio-system:9411", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.378", + "timestampUnix": 1708941091378 + }, + { + "message": "2024-02-26T09:51:31.378543Z\tinfo\tJWT policy is third-party-jwt", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.378", + "timestampUnix": 1708941091378 + }, + { + "message": "2024-02-26T09:51:31.378546Z\tinfo\tusing credential fetcher of JWT type in cluster.local trust domain", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.378", + "timestampUnix": 1708941091378 + }, + { + "message": "2024-02-26T09:51:31.580209Z\tinfo\tPrometheus scraping configuration: {true /metrics 9080}", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.580", + "timestampUnix": 1708941091580 + }, + { + "message": "2024-02-26T09:51:31.580282Z\tinfo\tWorkload SDS socket not found. Starting Istio SDS Server", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.580", + "timestampUnix": 1708941091580 + }, + { + "message": "2024-02-26T09:51:31.580247Z\tinfo\tOpening status port 15020", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.580", + "timestampUnix": 1708941091580 + }, + { + "message": "2024-02-26T09:51:31.580297Z\tinfo\tCA Endpoint istiod.istio-system.svc:15012, provider Citadel", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.580", + "timestampUnix": 1708941091580 + }, + { + "message": "2024-02-26T09:51:31.580314Z\tinfo\tUsing CA istiod.istio-system.svc:15012 cert with certs: var/run/secrets/istio/root-cert.pem", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.580", + "timestampUnix": 1708941091580 + }, + { + "message": "2024-02-26T09:51:31.592909Z\tinfo\tads\tAll caches have been synced up in 217.330065ms, marking server ready", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.593", + "timestampUnix": 1708941091593 + }, + { + "message": "2024-02-26T09:51:31.593011Z\tinfo\txdsproxy\tInitializing with upstream address \"istiod.istio-system.svc:15012\" and cluster \"Kubernetes\"", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.593", + "timestampUnix": 1708941091593 + }, + { + "message": "2024-02-26T09:51:31.594006Z\tinfo\tPilot SAN: [istiod.istio-system.svc]", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.594", + "timestampUnix": 1708941091594 + }, + { + "message": "2024-02-26T09:51:31.594595Z\tinfo\tStarting proxy agent", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.594", + "timestampUnix": 1708941091594 + }, + { + "message": "2024-02-26T09:51:31.594621Z\tinfo\tEnvoy command: [-c etc/istio/proxy/envoy-rev.json --drain-time-s 45 --drain-strategy immediate --local-address-ip-version v4 --file-flush-interval-msec 1000 --disable-hot-restart --allow-unknown-static-fields --log-format %Y-%m-%dT%T.%fZ\t%l\tenvoy %n %g:%#\t%v\tthread=%t -l warning --component-log-level misc:error --concurrency 2]", + "severity": "WARN", + "timestamp": "2024-02-26 09:51:31.594", + "timestampUnix": 1708941091594 + }, + { + "message": "2024-02-26T09:51:31.609075Z\tinfo\tsds\tStarting SDS grpc server", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.609", + "timestampUnix": 1708941091609 + }, + { + "message": "2024-02-26T09:51:31.609145Z\tinfo\tstarting Http service at 127.0.0.1:15004", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.609", + "timestampUnix": 1708941091609 + }, + { + "message": "2024-02-26T09:51:31.642466Z\tinfo\txdsproxy\tconnected to upstream XDS server[1]: istiod.istio-system.svc:15012", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.642", + "timestampUnix": 1708941091642 + }, + { + "message": "2024-02-26T09:51:31.662440Z\tinfo\tcache\tgenerated new workload certificate\tlatency=69.375827ms ttl=23h59m59.337562845s", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.662", + "timestampUnix": 1708941091662 + }, + { + "message": "2024-02-26T09:51:31.662463Z\tinfo\tcache\tRoot cert has changed, start rotating root cert", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.662", + "timestampUnix": 1708941091662 + }, + { + "message": "2024-02-26T09:51:31.662480Z\tinfo\tads\tXDS: Incremental Pushing ConnectedEndpoints:0 Version:", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.662", + "timestampUnix": 1708941091662 + }, + { + "message": "2024-02-26T09:51:31.662508Z\tinfo\tcache\treturned workload trust anchor from cache\tttl=23h59m59.337492371s", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.662", + "timestampUnix": 1708941091662 + }, + { + "message": "2024-02-26T09:51:31.664179Z\tinfo\tads\tADS: new connection for node:productpage-v1-675fc69cf-vv5wr.bookinfo-1", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.664", + "timestampUnix": 1708941091664 + }, + { + "message": "2024-02-26T09:51:31.664310Z\tinfo\tads\tADS: new connection for node:productpage-v1-675fc69cf-vv5wr.bookinfo-2", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.664", + "timestampUnix": 1708941091664 + }, + { + "message": "2024-02-26T09:51:31.664409Z\tinfo\tcache\treturned workload trust anchor from cache\tttl=23h59m59.335592733s", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.664", + "timestampUnix": 1708941091664 + }, + { + "message": "2024-02-26T09:51:31.664852Z\tinfo\tcache\treturned workload certificate from cache\tttl=23h59m59.335148794s", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.664", + "timestampUnix": 1708941091664 + }, + { + "message": "2024-02-26T09:51:31.664884Z\tinfo\tads\tSDS: PUSH request for node:productpage-v1-675fc69cf-vv5wr.bookinfo resources:1 size:1.1kB resource:ROOTCA", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.664", + "timestampUnix": 1708941091664 + }, + { + "message": "2024-02-26T09:51:31.664930Z\tinfo\tads\tSDS: PUSH request for node:productpage-v1-675fc69cf-vv5wr.bookinfo resources:1 size:4.0kB resource:default", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.664", + "timestampUnix": 1708941091664 + }, + { + "message": "2024-02-26T09:51:31.792667Z\tinfo\tReadiness succeeded in 420.630314ms", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.792", + "timestampUnix": 1708941091792 + }, + { + "message": "2024-02-26T09:51:31.792911Z\tinfo\tEnvoy proxy is ready", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:31.792", + "timestampUnix": 1708941091792 + }, + { + "message": "[2024-02-26T09:51:50.057Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 7 6 \"-\" \"curl/7.81.0\" \"6f5344c1-942e-9577-a4a5-8c4863254e3d\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:56252 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:50.057", + "timestampUnix": 1708941110057, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "7", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "6f5344c1-942e-9577-a4a5-8c4863254e3d", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:51:50.057Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "6", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:56252", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "curl/7.81.0" + } + }, + { + "message": "[2024-02-26T09:51:50.069Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 460 460 \"-\" \"curl/7.81.0\" \"6f5344c1-942e-9577-a4a5-8c4863254e3d\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:50830 10.99.45.111:9080 10.244.0.13:33072 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:50.069", + "timestampUnix": 1708941110069, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "460", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "6f5344c1-942e-9577-a4a5-8c4863254e3d", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:51:50.069Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "460", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:50830", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:33072", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "curl/7.81.0" + } + }, + { + "message": "[2024-02-26T09:51:50.052Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 514 513 \"10.244.0.1\" \"curl/7.81.0\" \"6f5344c1-942e-9577-a4a5-8c4863254e3d\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:60395 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:51:50.052", + "timestampUnix": 1708941110052, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "514", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "6f5344c1-942e-9577-a4a5-8c4863254e3d", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:51:50.052Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "513", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:60395", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "curl/7.81.0" + } + }, + { + "message": "[2024-02-26T09:52:04.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 2 1 \"-\" \"Go-http-client/1.1\" \"a96b0771-b8b0-9444-b62c-6dc362bdd77a\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:60780 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:04.277", + "timestampUnix": 1708941124277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "a96b0771-b8b0-9444-b62c-6dc362bdd77a", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:04.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:60780", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:04.284Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 357 356 \"-\" \"Go-http-client/1.1\" \"a96b0771-b8b0-9444-b62c-6dc362bdd77a\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:34890 10.99.45.111:9080 10.244.0.13:56636 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:04.284", + "timestampUnix": 1708941124284, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "357", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "a96b0771-b8b0-9444-b62c-6dc362bdd77a", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:04.284Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "356", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:34890", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:56636", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:04.274Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 369 369 \"10.244.0.1\" \"Go-http-client/1.1\" \"a96b0771-b8b0-9444-b62c-6dc362bdd77a\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:58023 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:04.274", + "timestampUnix": 1708941124274, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "369", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "a96b0771-b8b0-9444-b62c-6dc362bdd77a", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:04.274Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "369", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:58023", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:05.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"c45d3022-0ce0-9ce7-8405-72e12885885a\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:60792 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:05.276", + "timestampUnix": 1708941125276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "c45d3022-0ce0-9ce7-8405-72e12885885a", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:05.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:60792", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:05.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 16 16 \"-\" \"Go-http-client/1.1\" \"c45d3022-0ce0-9ce7-8405-72e12885885a\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:32944 10.99.45.111:9080 10.244.0.13:56648 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:05.28", + "timestampUnix": 1708941125280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "16", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "c45d3022-0ce0-9ce7-8405-72e12885885a", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:05.280Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "16", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:32944", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:56648", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:05.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 27 27 \"10.244.0.1\" \"Go-http-client/1.1\" \"c45d3022-0ce0-9ce7-8405-72e12885885a\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:37123 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:05.273", + "timestampUnix": 1708941125273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "27", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "c45d3022-0ce0-9ce7-8405-72e12885885a", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:05.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "27", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:37123", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:06.280Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"0a545a69-2564-92d9-8c25-67a51e319ff7\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:60796 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:06.28", + "timestampUnix": 1708941126280, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "0a545a69-2564-92d9-8c25-67a51e319ff7", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:06.280Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:60796", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:06.285Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 3 3 \"-\" \"Go-http-client/1.1\" \"0a545a69-2564-92d9-8c25-67a51e319ff7\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:34890 10.99.45.111:9080 10.244.0.13:56660 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:06.285", + "timestampUnix": 1708941126285, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "3", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "0a545a69-2564-92d9-8c25-67a51e319ff7", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:06.285Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "3", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:34890", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:56660", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:06.274Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 16 15 \"10.244.0.1\" \"Go-http-client/1.1\" \"0a545a69-2564-92d9-8c25-67a51e319ff7\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:45129 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:06.274", + "timestampUnix": 1708941126274, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "16", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "0a545a69-2564-92d9-8c25-67a51e319ff7", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:06.274Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "15", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:45129", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:07.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"4128e939-240a-9bdc-a4cc-428e8fd4fb9c\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:55276 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:07.277", + "timestampUnix": 1708941127277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "4128e939-240a-9bdc-a4cc-428e8fd4fb9c", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:07.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:55276", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:07.282Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 9 8 \"-\" \"Go-http-client/1.1\" \"4128e939-240a-9bdc-a4cc-428e8fd4fb9c\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:32944 10.99.45.111:9080 10.244.0.13:43648 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:07.282", + "timestampUnix": 1708941127282, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "9", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "4128e939-240a-9bdc-a4cc-428e8fd4fb9c", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:07.282Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "8", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:32944", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:43648", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:07.274Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 18 17 \"10.244.0.1\" \"Go-http-client/1.1\" \"4128e939-240a-9bdc-a4cc-428e8fd4fb9c\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:43097 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:07.274", + "timestampUnix": 1708941127274, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "18", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "4128e939-240a-9bdc-a4cc-428e8fd4fb9c", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:07.274Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "17", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:43097", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:08.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"a15e0adf-e52b-9dc2-83a5-55532d336b92\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:55280 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:08.276", + "timestampUnix": 1708941128276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "a15e0adf-e52b-9dc2-83a5-55532d336b92", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:08.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:55280", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:08.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 484 484 \"-\" \"Go-http-client/1.1\" \"a15e0adf-e52b-9dc2-83a5-55532d336b92\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48578 10.99.45.111:9080 10.244.0.13:43650 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:08.281", + "timestampUnix": 1708941128281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "484", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "a15e0adf-e52b-9dc2-83a5-55532d336b92", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:08.281Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "484", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48578", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:43650", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:08.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 494 494 \"10.244.0.1\" \"Go-http-client/1.1\" \"a15e0adf-e52b-9dc2-83a5-55532d336b92\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:53219 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:08.273", + "timestampUnix": 1708941128273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "494", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "a15e0adf-e52b-9dc2-83a5-55532d336b92", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:08.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "494", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:53219", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:09.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 2 2 \"-\" \"Go-http-client/1.1\" \"4e7bfb32-d018-9173-bb9f-9680792c3d61\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:55288 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:09.277", + "timestampUnix": 1708941129277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "4e7bfb32-d018-9173-bb9f-9680792c3d61", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:09.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:55288", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:09.282Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 2 2 \"-\" \"Go-http-client/1.1\" \"4e7bfb32-d018-9173-bb9f-9680792c3d61\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:34890 10.99.45.111:9080 10.244.0.13:43666 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:09.282", + "timestampUnix": 1708941129282, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "4e7bfb32-d018-9173-bb9f-9680792c3d61", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:09.282Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:34890", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:43666", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:09.274Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 12 12 \"10.244.0.1\" \"Go-http-client/1.1\" \"4e7bfb32-d018-9173-bb9f-9680792c3d61\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:51593 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:09.274", + "timestampUnix": 1708941129274, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "12", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "4e7bfb32-d018-9173-bb9f-9680792c3d61", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:09.274Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "12", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:51593", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:10.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"3453d659-e65f-9556-b4e8-84ed7a644169\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:55304 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:10.276", + "timestampUnix": 1708941130276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "3453d659-e65f-9556-b4e8-84ed7a644169", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:10.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:55304", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:10.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 9 9 \"-\" \"Go-http-client/1.1\" \"3453d659-e65f-9556-b4e8-84ed7a644169\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48578 10.99.45.111:9080 10.244.0.13:43678 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:10.281", + "timestampUnix": 1708941130281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "9", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "3453d659-e65f-9556-b4e8-84ed7a644169", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:10.281Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "9", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48578", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:43678", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:10.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 18 18 \"10.244.0.1\" \"Go-http-client/1.1\" \"3453d659-e65f-9556-b4e8-84ed7a644169\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:32827 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:10.273", + "timestampUnix": 1708941130273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "18", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "3453d659-e65f-9556-b4e8-84ed7a644169", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:10.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "18", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:32827", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:11.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"f62a2864-4e0a-93a7-9c55-61071c6ad3b1\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:55320 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:11.276", + "timestampUnix": 1708941131276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "f62a2864-4e0a-93a7-9c55-61071c6ad3b1", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:11.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:55320", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:11.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 2 2 \"-\" \"Go-http-client/1.1\" \"f62a2864-4e0a-93a7-9c55-61071c6ad3b1\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:34890 10.99.45.111:9080 10.244.0.13:43680 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:11.28", + "timestampUnix": 1708941131280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "f62a2864-4e0a-93a7-9c55-61071c6ad3b1", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:11.280Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:34890", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:43680", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:11.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 11 11 \"10.244.0.1\" \"Go-http-client/1.1\" \"f62a2864-4e0a-93a7-9c55-61071c6ad3b1\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:41873 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:11.273", + "timestampUnix": 1708941131273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "11", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "f62a2864-4e0a-93a7-9c55-61071c6ad3b1", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:11.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "11", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:41873", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:12.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"9d85d517-6bae-998c-82cf-fd32ff74e21f\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:55336 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:12.276", + "timestampUnix": 1708941132276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "9d85d517-6bae-998c-82cf-fd32ff74e21f", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:12.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:55336", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:12.279Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 8 7 \"-\" \"Go-http-client/1.1\" \"9d85d517-6bae-998c-82cf-fd32ff74e21f\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:32944 10.99.45.111:9080 10.244.0.13:43690 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:12.279", + "timestampUnix": 1708941132279, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "8", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "9d85d517-6bae-998c-82cf-fd32ff74e21f", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:12.279Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "7", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:32944", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:43690", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:12.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 16 16 \"10.244.0.1\" \"Go-http-client/1.1\" \"9d85d517-6bae-998c-82cf-fd32ff74e21f\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:58679 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:12.273", + "timestampUnix": 1708941132273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "16", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "9d85d517-6bae-998c-82cf-fd32ff74e21f", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:12.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "16", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:58679", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:13.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"df1aa8a0-a443-902c-8d55-119bece1eeee\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:55352 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:13.276", + "timestampUnix": 1708941133276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "df1aa8a0-a443-902c-8d55-119bece1eeee", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:13.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:55352", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:13.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 10 10 \"-\" \"Go-http-client/1.1\" \"df1aa8a0-a443-902c-8d55-119bece1eeee\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48584 10.99.45.111:9080 10.244.0.13:43692 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:13.28", + "timestampUnix": 1708941133280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "10", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "df1aa8a0-a443-902c-8d55-119bece1eeee", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:13.280Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "10", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48584", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:43692", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:13.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 22 21 \"10.244.0.1\" \"Go-http-client/1.1\" \"df1aa8a0-a443-902c-8d55-119bece1eeee\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:57155 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:13.273", + "timestampUnix": 1708941133273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "22", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "df1aa8a0-a443-902c-8d55-119bece1eeee", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:13.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "21", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:57155", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:14.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"7c11f855-cf17-90c8-8e95-535f24feee63\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:55360 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:14.276", + "timestampUnix": 1708941134276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "7c11f855-cf17-90c8-8e95-535f24feee63", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:14.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:55360", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:14.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 9 8 \"-\" \"Go-http-client/1.1\" \"7c11f855-cf17-90c8-8e95-535f24feee63\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48584 10.99.45.111:9080 10.244.0.13:43706 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:14.281", + "timestampUnix": 1708941134281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "9", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "7c11f855-cf17-90c8-8e95-535f24feee63", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:14.281Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "8", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48584", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:43706", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:14.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 18 17 \"10.244.0.1\" \"Go-http-client/1.1\" \"7c11f855-cf17-90c8-8e95-535f24feee63\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:39343 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:14.273", + "timestampUnix": 1708941134273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "18", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "7c11f855-cf17-90c8-8e95-535f24feee63", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:14.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "17", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:39343", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:15.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"5f96656b-6dce-9728-b436-614cf04ebe93\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:55364 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:15.276", + "timestampUnix": 1708941135276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "5f96656b-6dce-9728-b436-614cf04ebe93", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:15.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:55364", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:15.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 8 8 \"-\" \"Go-http-client/1.1\" \"5f96656b-6dce-9728-b436-614cf04ebe93\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48584 10.99.45.111:9080 10.244.0.13:43718 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:15.281", + "timestampUnix": 1708941135281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "8", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "5f96656b-6dce-9728-b436-614cf04ebe93", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:15.281Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "8", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48584", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:43718", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:15.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 17 17 \"10.244.0.1\" \"Go-http-client/1.1\" \"5f96656b-6dce-9728-b436-614cf04ebe93\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:51981 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:15.273", + "timestampUnix": 1708941135273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "17", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "5f96656b-6dce-9728-b436-614cf04ebe93", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:15.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "17", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:51981", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:16.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"448634fa-53db-9dfe-8d69-771c475772f7\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:55368 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:16.276", + "timestampUnix": 1708941136276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "448634fa-53db-9dfe-8d69-771c475772f7", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:16.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:55368", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:16.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 9 8 \"-\" \"Go-http-client/1.1\" \"448634fa-53db-9dfe-8d69-771c475772f7\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48578 10.99.45.111:9080 10.244.0.13:43728 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:16.28", + "timestampUnix": 1708941136280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "9", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "448634fa-53db-9dfe-8d69-771c475772f7", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:16.280Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "8", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48578", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:43728", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:16.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 18 17 \"10.244.0.1\" \"Go-http-client/1.1\" \"448634fa-53db-9dfe-8d69-771c475772f7\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:52723 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:16.273", + "timestampUnix": 1708941136273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "18", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "448634fa-53db-9dfe-8d69-771c475772f7", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:16.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "17", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:52723", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:17.285Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 4 3 \"-\" \"Go-http-client/1.1\" \"d001d62a-7056-9a28-b18e-54f7b47e0338\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:52948 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:17.285", + "timestampUnix": 1708941137285, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "4", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "d001d62a-7056-9a28-b18e-54f7b47e0338", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:17.285Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "3", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:52948", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:17.294Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 4 4 \"-\" \"Go-http-client/1.1\" \"d001d62a-7056-9a28-b18e-54f7b47e0338\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:55880 10.99.45.111:9080 10.244.0.13:51636 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:17.294", + "timestampUnix": 1708941137294, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "4", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "d001d62a-7056-9a28-b18e-54f7b47e0338", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:17.294Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "4", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:55880", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:51636", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:17.274Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 29 29 \"10.244.0.1\" \"Go-http-client/1.1\" \"d001d62a-7056-9a28-b18e-54f7b47e0338\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:42197 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:17.274", + "timestampUnix": 1708941137274, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "29", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "d001d62a-7056-9a28-b18e-54f7b47e0338", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:17.274Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "29", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:42197", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:18.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"43be4751-c7ff-9975-8d90-4edbd5f23d6b\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:52960 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:18.276", + "timestampUnix": 1708941138276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "43be4751-c7ff-9975-8d90-4edbd5f23d6b", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:18.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:52960", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:18.279Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 13 13 \"-\" \"Go-http-client/1.1\" \"43be4751-c7ff-9975-8d90-4edbd5f23d6b\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:50830 10.99.45.111:9080 10.244.0.13:51638 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:18.279", + "timestampUnix": 1708941138279, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "13", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "43be4751-c7ff-9975-8d90-4edbd5f23d6b", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:18.279Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "13", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:50830", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:51638", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:18.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 21 21 \"10.244.0.1\" \"Go-http-client/1.1\" \"43be4751-c7ff-9975-8d90-4edbd5f23d6b\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:46945 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:18.273", + "timestampUnix": 1708941138273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "21", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "43be4751-c7ff-9975-8d90-4edbd5f23d6b", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:18.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "21", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:46945", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:19.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"d8e73b76-5d8b-9c27-a8df-79dff6b2d322\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:52976 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:19.276", + "timestampUnix": 1708941139276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "d8e73b76-5d8b-9c27-a8df-79dff6b2d322", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:19.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:52976", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:19.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 2 2 \"-\" \"Go-http-client/1.1\" \"d8e73b76-5d8b-9c27-a8df-79dff6b2d322\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:34890 10.99.45.111:9080 10.244.0.13:51640 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:19.281", + "timestampUnix": 1708941139281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "d8e73b76-5d8b-9c27-a8df-79dff6b2d322", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:19.281Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:34890", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:51640", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:19.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 11 11 \"10.244.0.1\" \"Go-http-client/1.1\" \"d8e73b76-5d8b-9c27-a8df-79dff6b2d322\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:50619 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:19.273", + "timestampUnix": 1708941139273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "11", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "d8e73b76-5d8b-9c27-a8df-79dff6b2d322", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:19.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "11", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:50619", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:20.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"9e7785ad-2d91-9810-8ae3-b928d105b906\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:52986 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:20.276", + "timestampUnix": 1708941140276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "9e7785ad-2d91-9810-8ae3-b928d105b906", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:20.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:52986", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:20.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 8 8 \"-\" \"Go-http-client/1.1\" \"9e7785ad-2d91-9810-8ae3-b928d105b906\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48584 10.99.45.111:9080 10.244.0.13:51648 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:20.281", + "timestampUnix": 1708941140281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "8", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "9e7785ad-2d91-9810-8ae3-b928d105b906", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:20.281Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "8", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48584", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:51648", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:20.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 17 17 \"10.244.0.1\" \"Go-http-client/1.1\" \"9e7785ad-2d91-9810-8ae3-b928d105b906\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:36947 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:20.273", + "timestampUnix": 1708941140273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "17", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "9e7785ad-2d91-9810-8ae3-b928d105b906", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:20.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "17", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:36947", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:21.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"f0a2fd3a-2a24-9c1a-837e-d256d27283ba\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:53002 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:21.276", + "timestampUnix": 1708941141276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "f0a2fd3a-2a24-9c1a-837e-d256d27283ba", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:21.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:53002", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:21.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 2 2 \"-\" \"Go-http-client/1.1\" \"f0a2fd3a-2a24-9c1a-837e-d256d27283ba\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:55880 10.99.45.111:9080 10.244.0.13:51660 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:21.281", + "timestampUnix": 1708941141281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "f0a2fd3a-2a24-9c1a-837e-d256d27283ba", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:21.281Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:55880", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:51660", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:21.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 11 10 \"10.244.0.1\" \"Go-http-client/1.1\" \"f0a2fd3a-2a24-9c1a-837e-d256d27283ba\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:40829 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:21.273", + "timestampUnix": 1708941141273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "11", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "f0a2fd3a-2a24-9c1a-837e-d256d27283ba", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:21.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "10", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:40829", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:22.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"18075c7a-2d8c-9f78-8d13-5917a302a3e5\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:53018 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:22.277", + "timestampUnix": 1708941142277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "18075c7a-2d8c-9f78-8d13-5917a302a3e5", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:22.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:53018", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:22.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 12 12 \"-\" \"Go-http-client/1.1\" \"18075c7a-2d8c-9f78-8d13-5917a302a3e5\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48578 10.99.45.111:9080 10.244.0.13:51674 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:22.281", + "timestampUnix": 1708941142281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "12", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "18075c7a-2d8c-9f78-8d13-5917a302a3e5", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:22.281Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "12", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48578", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:51674", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:22.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 22 22 \"10.244.0.1\" \"Go-http-client/1.1\" \"18075c7a-2d8c-9f78-8d13-5917a302a3e5\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:56003 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:22.273", + "timestampUnix": 1708941142273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "22", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "18075c7a-2d8c-9f78-8d13-5917a302a3e5", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:22.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "22", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:56003", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:23.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"9550e288-9893-9d98-99a5-4296d6cb7c68\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:53030 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:23.276", + "timestampUnix": 1708941143276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "9550e288-9893-9d98-99a5-4296d6cb7c68", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:23.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:53030", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:23.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 2 2 \"-\" \"Go-http-client/1.1\" \"9550e288-9893-9d98-99a5-4296d6cb7c68\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:34890 10.99.45.111:9080 10.244.0.13:51684 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:23.28", + "timestampUnix": 1708941143280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "9550e288-9893-9d98-99a5-4296d6cb7c68", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:23.280Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:34890", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:51684", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:23.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 11 10 \"10.244.0.1\" \"Go-http-client/1.1\" \"9550e288-9893-9d98-99a5-4296d6cb7c68\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:43005 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:23.273", + "timestampUnix": 1708941143273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "11", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "9550e288-9893-9d98-99a5-4296d6cb7c68", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:23.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "10", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:43005", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:24.280Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"4dcf812e-5f32-98a7-88cc-1f38fb559e7b\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:53034 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:24.28", + "timestampUnix": 1708941144280, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "4dcf812e-5f32-98a7-88cc-1f38fb559e7b", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:24.280Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:53034", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:24.284Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 2 2 \"-\" \"Go-http-client/1.1\" \"4dcf812e-5f32-98a7-88cc-1f38fb559e7b\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:55880 10.99.45.111:9080 10.244.0.13:51692 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:24.284", + "timestampUnix": 1708941144284, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "4dcf812e-5f32-98a7-88cc-1f38fb559e7b", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:24.284Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:55880", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:51692", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:24.274Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 14 13 \"10.244.0.1\" \"Go-http-client/1.1\" \"4dcf812e-5f32-98a7-88cc-1f38fb559e7b\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:49679 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:24.274", + "timestampUnix": 1708941144274, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "14", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "4dcf812e-5f32-98a7-88cc-1f38fb559e7b", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:24.274Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "13", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:49679", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:25.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"392dbf51-ba72-9295-bebc-2b0443d187c3\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:53042 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:25.276", + "timestampUnix": 1708941145276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "392dbf51-ba72-9295-bebc-2b0443d187c3", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:25.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:53042", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:25.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 9 9 \"-\" \"Go-http-client/1.1\" \"392dbf51-ba72-9295-bebc-2b0443d187c3\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48584 10.99.45.111:9080 10.244.0.13:51694 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:25.281", + "timestampUnix": 1708941145281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "9", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "392dbf51-ba72-9295-bebc-2b0443d187c3", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:25.281Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "9", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48584", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:51694", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:25.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 19 19 \"10.244.0.1\" \"Go-http-client/1.1\" \"392dbf51-ba72-9295-bebc-2b0443d187c3\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:35995 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:25.273", + "timestampUnix": 1708941145273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "19", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "392dbf51-ba72-9295-bebc-2b0443d187c3", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:25.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "19", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:35995", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:26.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"a336ecc8-b5e2-9215-be1d-553e7d979d2a\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:53050 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:26.277", + "timestampUnix": 1708941146277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "a336ecc8-b5e2-9215-be1d-553e7d979d2a", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:26.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:53050", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:26.282Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 10 10 \"-\" \"Go-http-client/1.1\" \"a336ecc8-b5e2-9215-be1d-553e7d979d2a\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48584 10.99.45.111:9080 10.244.0.13:51698 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:26.282", + "timestampUnix": 1708941146282, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "10", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "a336ecc8-b5e2-9215-be1d-553e7d979d2a", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:26.282Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "10", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48584", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:51698", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:26.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 20 20 \"10.244.0.1\" \"Go-http-client/1.1\" \"a336ecc8-b5e2-9215-be1d-553e7d979d2a\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:34603 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:26.273", + "timestampUnix": 1708941146273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "20", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "a336ecc8-b5e2-9215-be1d-553e7d979d2a", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:26.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "20", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:34603", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:27.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"68e155fc-7728-9123-8359-b792174ae595\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:52434 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:27.276", + "timestampUnix": 1708941147276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "68e155fc-7728-9123-8359-b792174ae595", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:27.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:52434", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:27.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 2 2 \"-\" \"Go-http-client/1.1\" \"68e155fc-7728-9123-8359-b792174ae595\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:34890 10.99.45.111:9080 10.244.0.13:53872 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:27.28", + "timestampUnix": 1708941147280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "68e155fc-7728-9123-8359-b792174ae595", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:27.280Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:34890", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:53872", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:27.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 11 11 \"10.244.0.1\" \"Go-http-client/1.1\" \"68e155fc-7728-9123-8359-b792174ae595\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:53601 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:27.273", + "timestampUnix": 1708941147273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "11", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "68e155fc-7728-9123-8359-b792174ae595", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:27.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "11", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:53601", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:28.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"9aaddbdf-432e-9887-bba9-64f301d1b12d\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:52438 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:28.276", + "timestampUnix": 1708941148276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "9aaddbdf-432e-9887-bba9-64f301d1b12d", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:28.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:52438", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:28.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 8 8 \"-\" \"Go-http-client/1.1\" \"9aaddbdf-432e-9887-bba9-64f301d1b12d\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48584 10.99.45.111:9080 10.244.0.13:53888 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:28.281", + "timestampUnix": 1708941148281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "8", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "9aaddbdf-432e-9887-bba9-64f301d1b12d", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:28.281Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "8", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48584", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:53888", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:28.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 18 17 \"10.244.0.1\" \"Go-http-client/1.1\" \"9aaddbdf-432e-9887-bba9-64f301d1b12d\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:41643 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:28.273", + "timestampUnix": 1708941148273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "18", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "9aaddbdf-432e-9887-bba9-64f301d1b12d", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:28.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "17", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:41643", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:29.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"2b874344-4a76-968e-996b-0903061aafe0\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:52446 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:29.276", + "timestampUnix": 1708941149276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "2b874344-4a76-968e-996b-0903061aafe0", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:29.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:52446", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:29.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 9 9 \"-\" \"Go-http-client/1.1\" \"2b874344-4a76-968e-996b-0903061aafe0\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:32944 10.99.45.111:9080 10.244.0.13:53900 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:29.28", + "timestampUnix": 1708941149280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "9", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "2b874344-4a76-968e-996b-0903061aafe0", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:29.280Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "9", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:32944", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:53900", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:29.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 18 18 \"10.244.0.1\" \"Go-http-client/1.1\" \"2b874344-4a76-968e-996b-0903061aafe0\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:35087 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:29.273", + "timestampUnix": 1708941149273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "18", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "2b874344-4a76-968e-996b-0903061aafe0", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:29.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "18", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:35087", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:30.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"3f766598-9537-9f25-9078-5692bd99a129\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:52460 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:30.276", + "timestampUnix": 1708941150276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "3f766598-9537-9f25-9078-5692bd99a129", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:30.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:52460", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:30.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 2 2 \"-\" \"Go-http-client/1.1\" \"3f766598-9537-9f25-9078-5692bd99a129\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:55880 10.99.45.111:9080 10.244.0.13:53914 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:30.28", + "timestampUnix": 1708941150280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "3f766598-9537-9f25-9078-5692bd99a129", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:30.280Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:55880", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:53914", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:30.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 10 9 \"10.244.0.1\" \"Go-http-client/1.1\" \"3f766598-9537-9f25-9078-5692bd99a129\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:51073 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:30.273", + "timestampUnix": 1708941150273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "10", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "3f766598-9537-9f25-9078-5692bd99a129", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:30.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "9", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:51073", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:31.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"331762ab-8590-9ada-8a06-4aaabff0fdc7\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:52474 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:31.277", + "timestampUnix": 1708941151277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "331762ab-8590-9ada-8a06-4aaabff0fdc7", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:31.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:52474", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:31.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 7 7 \"-\" \"Go-http-client/1.1\" \"331762ab-8590-9ada-8a06-4aaabff0fdc7\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:50830 10.99.45.111:9080 10.244.0.13:53924 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:31.281", + "timestampUnix": 1708941151281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "7", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "331762ab-8590-9ada-8a06-4aaabff0fdc7", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:31.281Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "7", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:50830", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:53924", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:31.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 16 16 \"10.244.0.1\" \"Go-http-client/1.1\" \"331762ab-8590-9ada-8a06-4aaabff0fdc7\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:44429 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:31.273", + "timestampUnix": 1708941151273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "16", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "331762ab-8590-9ada-8a06-4aaabff0fdc7", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:31.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "16", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:44429", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:32.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"0c2b795e-b336-919f-8d59-06e8c901c884\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:52486 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:32.276", + "timestampUnix": 1708941152276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "0c2b795e-b336-919f-8d59-06e8c901c884", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:32.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:52486", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:32.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 7 7 \"-\" \"Go-http-client/1.1\" \"0c2b795e-b336-919f-8d59-06e8c901c884\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:32944 10.99.45.111:9080 10.244.0.13:53932 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:32.28", + "timestampUnix": 1708941152280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "7", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "0c2b795e-b336-919f-8d59-06e8c901c884", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:32.280Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "7", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:32944", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:53932", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:32.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 15 15 \"10.244.0.1\" \"Go-http-client/1.1\" \"0c2b795e-b336-919f-8d59-06e8c901c884\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:47071 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:32.273", + "timestampUnix": 1708941152273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "15", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "0c2b795e-b336-919f-8d59-06e8c901c884", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:32.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "15", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:47071", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:33.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"5a4d6a2f-9612-9cab-ab08-e7fc011a450f\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:52494 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:33.277", + "timestampUnix": 1708941153277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "5a4d6a2f-9612-9cab-ab08-e7fc011a450f", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:33.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:52494", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:33.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 8 8 \"-\" \"Go-http-client/1.1\" \"5a4d6a2f-9612-9cab-ab08-e7fc011a450f\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48578 10.99.45.111:9080 10.244.0.13:53944 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:33.281", + "timestampUnix": 1708941153281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "8", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "5a4d6a2f-9612-9cab-ab08-e7fc011a450f", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:33.281Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "8", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48578", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:53944", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:33.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 17 16 \"10.244.0.1\" \"Go-http-client/1.1\" \"5a4d6a2f-9612-9cab-ab08-e7fc011a450f\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:34797 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:33.273", + "timestampUnix": 1708941153273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "17", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "5a4d6a2f-9612-9cab-ab08-e7fc011a450f", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:33.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "16", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:34797", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:34.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"6661c1ad-495b-9f52-bfda-664874dacbaf\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:52498 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:34.276", + "timestampUnix": 1708941154276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "6661c1ad-495b-9f52-bfda-664874dacbaf", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:34.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:52498", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:34.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 9 9 \"-\" \"Go-http-client/1.1\" \"6661c1ad-495b-9f52-bfda-664874dacbaf\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:32944 10.99.45.111:9080 10.244.0.13:53948 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:34.281", + "timestampUnix": 1708941154281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "9", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "6661c1ad-495b-9f52-bfda-664874dacbaf", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:34.281Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "9", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:32944", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:53948", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:34.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 19 19 \"10.244.0.1\" \"Go-http-client/1.1\" \"6661c1ad-495b-9f52-bfda-664874dacbaf\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:40827 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:34.273", + "timestampUnix": 1708941154273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "19", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "6661c1ad-495b-9f52-bfda-664874dacbaf", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:34.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "19", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:40827", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:35.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"ed6fa9de-cb72-9aa8-9b82-07fb8c1374cd\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:52506 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:35.277", + "timestampUnix": 1708941155277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "ed6fa9de-cb72-9aa8-9b82-07fb8c1374cd", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:35.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:52506", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:35.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 2 2 \"-\" \"Go-http-client/1.1\" \"ed6fa9de-cb72-9aa8-9b82-07fb8c1374cd\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:55880 10.99.45.111:9080 10.244.0.13:53954 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:35.281", + "timestampUnix": 1708941155281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "ed6fa9de-cb72-9aa8-9b82-07fb8c1374cd", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:35.281Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:55880", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:53954", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:35.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 12 11 \"10.244.0.1\" \"Go-http-client/1.1\" \"ed6fa9de-cb72-9aa8-9b82-07fb8c1374cd\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:56867 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:35.273", + "timestampUnix": 1708941155273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "12", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "ed6fa9de-cb72-9aa8-9b82-07fb8c1374cd", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:35.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "11", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:56867", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:36.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"e6603959-a4db-9996-b8e0-7c42d45c97c4\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:52516 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:36.277", + "timestampUnix": 1708941156277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "e6603959-a4db-9996-b8e0-7c42d45c97c4", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:36.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:52516", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:36.282Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 7 7 \"-\" \"Go-http-client/1.1\" \"e6603959-a4db-9996-b8e0-7c42d45c97c4\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48584 10.99.45.111:9080 10.244.0.13:53962 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:36.282", + "timestampUnix": 1708941156282, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "7", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "e6603959-a4db-9996-b8e0-7c42d45c97c4", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:36.282Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "7", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48584", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:53962", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:36.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 19 18 \"10.244.0.1\" \"Go-http-client/1.1\" \"e6603959-a4db-9996-b8e0-7c42d45c97c4\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:47341 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:36.273", + "timestampUnix": 1708941156273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "19", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "e6603959-a4db-9996-b8e0-7c42d45c97c4", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:36.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "18", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:47341", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:37.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"3327034b-b5d7-939e-bbf0-fd4e12f5c692\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:36258 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:37.276", + "timestampUnix": 1708941157276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "3327034b-b5d7-939e-bbf0-fd4e12f5c692", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:37.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:36258", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:37.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 7 6 \"-\" \"Go-http-client/1.1\" \"3327034b-b5d7-939e-bbf0-fd4e12f5c692\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:32944 10.99.45.111:9080 10.244.0.13:47750 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:37.28", + "timestampUnix": 1708941157280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "7", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "3327034b-b5d7-939e-bbf0-fd4e12f5c692", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:37.280Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "6", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:32944", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:47750", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:37.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 15 15 \"10.244.0.1\" \"Go-http-client/1.1\" \"3327034b-b5d7-939e-bbf0-fd4e12f5c692\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:54975 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:37.273", + "timestampUnix": 1708941157273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "15", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "3327034b-b5d7-939e-bbf0-fd4e12f5c692", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:37.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "15", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:54975", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:38.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"a2739382-fdba-95dc-b267-8ff8ccb2f6e7\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:36260 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:38.276", + "timestampUnix": 1708941158276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "a2739382-fdba-95dc-b267-8ff8ccb2f6e7", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:38.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:36260", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:38.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 7 7 \"-\" \"Go-http-client/1.1\" \"a2739382-fdba-95dc-b267-8ff8ccb2f6e7\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:50830 10.99.45.111:9080 10.244.0.13:47754 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:38.28", + "timestampUnix": 1708941158280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "7", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "a2739382-fdba-95dc-b267-8ff8ccb2f6e7", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:38.280Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "7", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:50830", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:47754", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:38.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 17 16 \"10.244.0.1\" \"Go-http-client/1.1\" \"a2739382-fdba-95dc-b267-8ff8ccb2f6e7\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:33065 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:38.273", + "timestampUnix": 1708941158273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "17", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "a2739382-fdba-95dc-b267-8ff8ccb2f6e7", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:38.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "16", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:33065", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:39.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"4789a5cd-a231-9072-a07b-2c8b0e34c926\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:36262 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:39.277", + "timestampUnix": 1708941159277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "4789a5cd-a231-9072-a07b-2c8b0e34c926", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:39.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:36262", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:39.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 6 6 \"-\" \"Go-http-client/1.1\" \"4789a5cd-a231-9072-a07b-2c8b0e34c926\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:32944 10.99.45.111:9080 10.244.0.13:47762 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:39.281", + "timestampUnix": 1708941159281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "6", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "4789a5cd-a231-9072-a07b-2c8b0e34c926", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:39.281Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "6", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:32944", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:47762", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:39.274Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 15 15 \"10.244.0.1\" \"Go-http-client/1.1\" \"4789a5cd-a231-9072-a07b-2c8b0e34c926\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:45941 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:39.274", + "timestampUnix": 1708941159274, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "15", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "4789a5cd-a231-9072-a07b-2c8b0e34c926", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:39.274Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "15", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:45941", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:40.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"90cde761-8afc-9dd1-8e7d-56bbc56c9b3d\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:36276 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:40.276", + "timestampUnix": 1708941160276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "90cde761-8afc-9dd1-8e7d-56bbc56c9b3d", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:40.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:36276", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:40.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 8 8 \"-\" \"Go-http-client/1.1\" \"90cde761-8afc-9dd1-8e7d-56bbc56c9b3d\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48578 10.99.45.111:9080 10.244.0.13:47766 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:40.281", + "timestampUnix": 1708941160281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "8", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "90cde761-8afc-9dd1-8e7d-56bbc56c9b3d", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:40.281Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "8", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48578", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:47766", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:40.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 17 16 \"10.244.0.1\" \"Go-http-client/1.1\" \"90cde761-8afc-9dd1-8e7d-56bbc56c9b3d\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:60957 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:40.273", + "timestampUnix": 1708941160273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "17", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "90cde761-8afc-9dd1-8e7d-56bbc56c9b3d", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:40.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "16", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:60957", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:41.285Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"e20aba9b-ffcd-9658-835f-3e4855b16cc7\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:36288 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:41.285", + "timestampUnix": 1708941161285, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "e20aba9b-ffcd-9658-835f-3e4855b16cc7", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:41.285Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:36288", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:41.289Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 2 2 \"-\" \"Go-http-client/1.1\" \"e20aba9b-ffcd-9658-835f-3e4855b16cc7\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:34890 10.99.45.111:9080 10.244.0.13:47770 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:41.289", + "timestampUnix": 1708941161289, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "e20aba9b-ffcd-9658-835f-3e4855b16cc7", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:41.289Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:34890", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:47770", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:41.274Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 19 18 \"10.244.0.1\" \"Go-http-client/1.1\" \"e20aba9b-ffcd-9658-835f-3e4855b16cc7\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:44687 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:41.274", + "timestampUnix": 1708941161274, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "19", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "e20aba9b-ffcd-9658-835f-3e4855b16cc7", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:41.274Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "18", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:44687", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:42.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"29493d81-0194-9968-9937-b313fd852931\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:36302 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:42.277", + "timestampUnix": 1708941162277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "29493d81-0194-9968-9937-b313fd852931", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:42.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:36302", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:42.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 8 8 \"-\" \"Go-http-client/1.1\" \"29493d81-0194-9968-9937-b313fd852931\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48578 10.99.45.111:9080 10.244.0.13:47774 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:42.281", + "timestampUnix": 1708941162281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "8", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "29493d81-0194-9968-9937-b313fd852931", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:42.281Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "8", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48578", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:47774", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:42.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 17 17 \"10.244.0.1\" \"Go-http-client/1.1\" \"29493d81-0194-9968-9937-b313fd852931\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:40649 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:42.273", + "timestampUnix": 1708941162273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "17", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "29493d81-0194-9968-9937-b313fd852931", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:42.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "17", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:40649", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:43.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"b1d0530e-1a61-9124-8789-f5d49056b333\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:36306 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:43.277", + "timestampUnix": 1708941163277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "b1d0530e-1a61-9124-8789-f5d49056b333", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:43.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:36306", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:43.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 3 2 \"-\" \"Go-http-client/1.1\" \"b1d0530e-1a61-9124-8789-f5d49056b333\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:34890 10.99.45.111:9080 10.244.0.13:47788 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:43.281", + "timestampUnix": 1708941163281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "3", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "b1d0530e-1a61-9124-8789-f5d49056b333", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:43.281Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:34890", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:47788", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:43.274Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 11 11 \"10.244.0.1\" \"Go-http-client/1.1\" \"b1d0530e-1a61-9124-8789-f5d49056b333\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:47697 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:43.274", + "timestampUnix": 1708941163274, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "11", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "b1d0530e-1a61-9124-8789-f5d49056b333", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:43.274Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "11", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:47697", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:44.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"56928139-daf5-9e28-ab17-21289da439a5\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:36310 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:44.276", + "timestampUnix": 1708941164276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "56928139-daf5-9e28-ab17-21289da439a5", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:44.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:36310", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:44.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 7 7 \"-\" \"Go-http-client/1.1\" \"56928139-daf5-9e28-ab17-21289da439a5\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:32944 10.99.45.111:9080 10.244.0.13:47802 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:44.28", + "timestampUnix": 1708941164280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "7", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "56928139-daf5-9e28-ab17-21289da439a5", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:44.280Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "7", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:32944", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:47802", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:44.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 15 15 \"10.244.0.1\" \"Go-http-client/1.1\" \"56928139-daf5-9e28-ab17-21289da439a5\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:54417 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:44.273", + "timestampUnix": 1708941164273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "15", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "56928139-daf5-9e28-ab17-21289da439a5", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:44.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "15", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:54417", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:45.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"90bcac0a-c040-9da4-a794-a44392b79c61\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:36326 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:45.276", + "timestampUnix": 1708941165276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "90bcac0a-c040-9da4-a794-a44392b79c61", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:45.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:36326", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:45.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 7 7 \"-\" \"Go-http-client/1.1\" \"90bcac0a-c040-9da4-a794-a44392b79c61\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:50830 10.99.45.111:9080 10.244.0.13:47808 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:45.28", + "timestampUnix": 1708941165280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "7", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "90bcac0a-c040-9da4-a794-a44392b79c61", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:45.280Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "7", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:50830", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:47808", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:45.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 15 15 \"10.244.0.1\" \"Go-http-client/1.1\" \"90bcac0a-c040-9da4-a794-a44392b79c61\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:35919 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:45.273", + "timestampUnix": 1708941165273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "15", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "90bcac0a-c040-9da4-a794-a44392b79c61", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:45.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "15", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:35919", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:46.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"a3db867a-0091-942a-9124-799723a97891\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:36332 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:46.276", + "timestampUnix": 1708941166276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "a3db867a-0091-942a-9124-799723a97891", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:46.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:36332", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:46.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 15 15 \"-\" \"Go-http-client/1.1\" \"a3db867a-0091-942a-9124-799723a97891\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:32944 10.99.45.111:9080 10.244.0.13:47812 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:46.28", + "timestampUnix": 1708941166280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "15", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "a3db867a-0091-942a-9124-799723a97891", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:46.280Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "15", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:32944", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:47812", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:46.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 23 23 \"10.244.0.1\" \"Go-http-client/1.1\" \"a3db867a-0091-942a-9124-799723a97891\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:39021 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:46.273", + "timestampUnix": 1708941166273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "23", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "a3db867a-0091-942a-9124-799723a97891", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:46.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "23", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:39021", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:47.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"d45a4efd-c9aa-9474-be2a-aa568bd67cea\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:49358 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:47.276", + "timestampUnix": 1708941167276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "d45a4efd-c9aa-9474-be2a-aa568bd67cea", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:47.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:49358", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:47.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 8 8 \"-\" \"Go-http-client/1.1\" \"d45a4efd-c9aa-9474-be2a-aa568bd67cea\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48578 10.99.45.111:9080 10.244.0.13:50250 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:47.28", + "timestampUnix": 1708941167280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "8", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "d45a4efd-c9aa-9474-be2a-aa568bd67cea", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:47.280Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "8", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48578", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:50250", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:47.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 16 16 \"10.244.0.1\" \"Go-http-client/1.1\" \"d45a4efd-c9aa-9474-be2a-aa568bd67cea\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:34859 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:47.273", + "timestampUnix": 1708941167273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "16", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "d45a4efd-c9aa-9474-be2a-aa568bd67cea", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:47.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "16", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:34859", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:48.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"3f34a5f0-8536-9acc-b209-d14e07ebafc1\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:49362 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:48.276", + "timestampUnix": 1708941168276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "3f34a5f0-8536-9acc-b209-d14e07ebafc1", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:48.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:49362", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:48.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 7 7 \"-\" \"Go-http-client/1.1\" \"3f34a5f0-8536-9acc-b209-d14e07ebafc1\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48578 10.99.45.111:9080 10.244.0.13:50262 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:48.28", + "timestampUnix": 1708941168280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "7", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "3f34a5f0-8536-9acc-b209-d14e07ebafc1", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:48.280Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "7", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48578", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:50262", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:48.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 15 15 \"10.244.0.1\" \"Go-http-client/1.1\" \"3f34a5f0-8536-9acc-b209-d14e07ebafc1\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:59153 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:48.273", + "timestampUnix": 1708941168273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "15", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "3f34a5f0-8536-9acc-b209-d14e07ebafc1", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:48.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "15", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:59153", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:49.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"7b80d515-0d94-985a-b8ad-3171a0a189f3\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:49376 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:49.276", + "timestampUnix": 1708941169276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "7b80d515-0d94-985a-b8ad-3171a0a189f3", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:49.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:49376", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:49.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 8 8 \"-\" \"Go-http-client/1.1\" \"7b80d515-0d94-985a-b8ad-3171a0a189f3\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:32944 10.99.45.111:9080 10.244.0.13:50278 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:49.281", + "timestampUnix": 1708941169281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "8", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "7b80d515-0d94-985a-b8ad-3171a0a189f3", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:49.281Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "8", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:32944", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:50278", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:49.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 17 17 \"10.244.0.1\" \"Go-http-client/1.1\" \"7b80d515-0d94-985a-b8ad-3171a0a189f3\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:49987 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:49.273", + "timestampUnix": 1708941169273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "17", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "7b80d515-0d94-985a-b8ad-3171a0a189f3", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:49.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "17", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:49987", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:50.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"56d48aba-3de1-9709-8769-eddbb500f154\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:49388 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:50.277", + "timestampUnix": 1708941170277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "56d48aba-3de1-9709-8769-eddbb500f154", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:50.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:49388", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:50.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 8 8 \"-\" \"Go-http-client/1.1\" \"56d48aba-3de1-9709-8769-eddbb500f154\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:32944 10.99.45.111:9080 10.244.0.13:50282 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:50.28", + "timestampUnix": 1708941170280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "8", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "56d48aba-3de1-9709-8769-eddbb500f154", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:50.280Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "8", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:32944", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:50282", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:50.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 17 17 \"10.244.0.1\" \"Go-http-client/1.1\" \"56d48aba-3de1-9709-8769-eddbb500f154\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:37267 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:50.273", + "timestampUnix": 1708941170273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "17", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "56d48aba-3de1-9709-8769-eddbb500f154", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:50.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "17", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:37267", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:51.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"c568a82b-8ea2-969d-a300-33ddd86140b8\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:49402 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:51.276", + "timestampUnix": 1708941171276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "c568a82b-8ea2-969d-a300-33ddd86140b8", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:51.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:49402", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:51.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 2 2 \"-\" \"Go-http-client/1.1\" \"c568a82b-8ea2-969d-a300-33ddd86140b8\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:55880 10.99.45.111:9080 10.244.0.13:50286 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:51.28", + "timestampUnix": 1708941171280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "c568a82b-8ea2-969d-a300-33ddd86140b8", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:51.280Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:55880", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:50286", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:51.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 11 11 \"10.244.0.1\" \"Go-http-client/1.1\" \"c568a82b-8ea2-969d-a300-33ddd86140b8\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:47541 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:51.273", + "timestampUnix": 1708941171273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "11", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "c568a82b-8ea2-969d-a300-33ddd86140b8", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:51.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "11", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:47541", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:52.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"4c0af64c-297c-95f2-8f45-200d6c7e7010\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:49418 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:52.276", + "timestampUnix": 1708941172276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "4c0af64c-297c-95f2-8f45-200d6c7e7010", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:52.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:49418", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:52.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 3 3 \"-\" \"Go-http-client/1.1\" \"4c0af64c-297c-95f2-8f45-200d6c7e7010\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:34890 10.99.45.111:9080 10.244.0.13:50294 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:52.28", + "timestampUnix": 1708941172280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "3", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "4c0af64c-297c-95f2-8f45-200d6c7e7010", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:52.280Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "3", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:34890", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:50294", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:52.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 12 11 \"10.244.0.1\" \"Go-http-client/1.1\" \"4c0af64c-297c-95f2-8f45-200d6c7e7010\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:35735 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:52.273", + "timestampUnix": 1708941172273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "12", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "4c0af64c-297c-95f2-8f45-200d6c7e7010", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:52.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "11", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:35735", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:53.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"49111c61-f783-9bec-ae57-35dce93bd8d9\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:49426 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:53.276", + "timestampUnix": 1708941173276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "49111c61-f783-9bec-ae57-35dce93bd8d9", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:53.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:49426", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:53.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 7 6 \"-\" \"Go-http-client/1.1\" \"49111c61-f783-9bec-ae57-35dce93bd8d9\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48584 10.99.45.111:9080 10.244.0.13:50308 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:53.28", + "timestampUnix": 1708941173280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "7", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "49111c61-f783-9bec-ae57-35dce93bd8d9", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:53.280Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "6", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48584", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:50308", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:53.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 15 15 \"10.244.0.1\" \"Go-http-client/1.1\" \"49111c61-f783-9bec-ae57-35dce93bd8d9\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:54011 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:53.273", + "timestampUnix": 1708941173273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "15", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "49111c61-f783-9bec-ae57-35dce93bd8d9", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:53.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "15", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:54011", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:54.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"b2ac1cb7-f24f-9927-bcff-9778252c8093\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:49434 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:54.277", + "timestampUnix": 1708941174277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "b2ac1cb7-f24f-9927-bcff-9778252c8093", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:54.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:49434", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:54.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 3 3 \"-\" \"Go-http-client/1.1\" \"b2ac1cb7-f24f-9927-bcff-9778252c8093\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:55880 10.99.45.111:9080 10.244.0.13:50322 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:54.281", + "timestampUnix": 1708941174281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "3", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "b2ac1cb7-f24f-9927-bcff-9778252c8093", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:54.281Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "3", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:55880", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:50322", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:54.274Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 12 12 \"10.244.0.1\" \"Go-http-client/1.1\" \"b2ac1cb7-f24f-9927-bcff-9778252c8093\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:52947 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:54.274", + "timestampUnix": 1708941174274, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "12", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "b2ac1cb7-f24f-9927-bcff-9778252c8093", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:54.274Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "12", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:52947", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:55.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"8c17821a-364c-9116-8106-179b6500d05d\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:49438 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:55.277", + "timestampUnix": 1708941175277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "8c17821a-364c-9116-8106-179b6500d05d", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:55.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:49438", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:55.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 8 7 \"-\" \"Go-http-client/1.1\" \"8c17821a-364c-9116-8106-179b6500d05d\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:32944 10.99.45.111:9080 10.244.0.13:50336 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:55.281", + "timestampUnix": 1708941175281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "8", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "8c17821a-364c-9116-8106-179b6500d05d", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:55.281Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "7", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:32944", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:50336", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:55.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 17 17 \"10.244.0.1\" \"Go-http-client/1.1\" \"8c17821a-364c-9116-8106-179b6500d05d\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:45711 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:55.273", + "timestampUnix": 1708941175273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "17", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "8c17821a-364c-9116-8106-179b6500d05d", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:55.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "17", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:45711", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:56.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"352bcb01-6788-987b-b04a-5df77a875a7a\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:49450 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:56.276", + "timestampUnix": 1708941176276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "352bcb01-6788-987b-b04a-5df77a875a7a", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:56.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:49450", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:56.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 2 2 \"-\" \"Go-http-client/1.1\" \"352bcb01-6788-987b-b04a-5df77a875a7a\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:34890 10.99.45.111:9080 10.244.0.13:50342 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:56.281", + "timestampUnix": 1708941176281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "352bcb01-6788-987b-b04a-5df77a875a7a", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:56.281Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:34890", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:50342", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:56.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 11 11 \"10.244.0.1\" \"Go-http-client/1.1\" \"352bcb01-6788-987b-b04a-5df77a875a7a\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:38511 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:56.273", + "timestampUnix": 1708941176273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "11", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "352bcb01-6788-987b-b04a-5df77a875a7a", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:56.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "11", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:38511", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:57.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"fae4fb87-541c-952d-99f0-a02f36a2985d\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:55938 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:57.276", + "timestampUnix": 1708941177276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "fae4fb87-541c-952d-99f0-a02f36a2985d", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:57.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:55938", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:57.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 2 2 \"-\" \"Go-http-client/1.1\" \"fae4fb87-541c-952d-99f0-a02f36a2985d\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:34890 10.99.45.111:9080 10.244.0.13:34918 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:57.28", + "timestampUnix": 1708941177280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "fae4fb87-541c-952d-99f0-a02f36a2985d", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:57.280Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:34890", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:34918", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:57.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 10 10 \"10.244.0.1\" \"Go-http-client/1.1\" \"fae4fb87-541c-952d-99f0-a02f36a2985d\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:38637 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:57.273", + "timestampUnix": 1708941177273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "10", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "fae4fb87-541c-952d-99f0-a02f36a2985d", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:57.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "10", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:38637", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:58.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"04e545c6-8a28-9b46-8182-6c6158533c48\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:55946 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:58.276", + "timestampUnix": 1708941178276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "04e545c6-8a28-9b46-8182-6c6158533c48", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:58.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:55946", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:58.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 7 7 \"-\" \"Go-http-client/1.1\" \"04e545c6-8a28-9b46-8182-6c6158533c48\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48578 10.99.45.111:9080 10.244.0.13:34928 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:58.281", + "timestampUnix": 1708941178281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "7", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "04e545c6-8a28-9b46-8182-6c6158533c48", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:58.281Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "7", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48578", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:34928", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:58.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 16 15 \"10.244.0.1\" \"Go-http-client/1.1\" \"04e545c6-8a28-9b46-8182-6c6158533c48\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:38917 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:58.273", + "timestampUnix": 1708941178273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "16", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "04e545c6-8a28-9b46-8182-6c6158533c48", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:58.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "15", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:38917", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:59.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"5bde9f6c-0c4d-99c7-84a4-343c0c0f6193\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:55960 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:59.276", + "timestampUnix": 1708941179276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "5bde9f6c-0c4d-99c7-84a4-343c0c0f6193", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:59.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:55960", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:59.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 2 2 \"-\" \"Go-http-client/1.1\" \"5bde9f6c-0c4d-99c7-84a4-343c0c0f6193\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:55880 10.99.45.111:9080 10.244.0.13:34938 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:59.28", + "timestampUnix": 1708941179280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "5bde9f6c-0c4d-99c7-84a4-343c0c0f6193", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:59.280Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:55880", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:34938", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:52:59.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 10 10 \"10.244.0.1\" \"Go-http-client/1.1\" \"5bde9f6c-0c4d-99c7-84a4-343c0c0f6193\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:50727 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:52:59.273", + "timestampUnix": 1708941179273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "10", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "5bde9f6c-0c4d-99c7-84a4-343c0c0f6193", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:52:59.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "10", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:50727", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:00.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"29e0baaa-cc79-9819-bcc7-26921a95b2cf\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:55966 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:00.277", + "timestampUnix": 1708941180277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "29e0baaa-cc79-9819-bcc7-26921a95b2cf", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:00.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:55966", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:00.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 7 6 \"-\" \"Go-http-client/1.1\" \"29e0baaa-cc79-9819-bcc7-26921a95b2cf\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:50830 10.99.45.111:9080 10.244.0.13:34948 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:00.28", + "timestampUnix": 1708941180280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "7", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "29e0baaa-cc79-9819-bcc7-26921a95b2cf", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:00.280Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "6", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:50830", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:34948", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:00.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 16 15 \"10.244.0.1\" \"Go-http-client/1.1\" \"29e0baaa-cc79-9819-bcc7-26921a95b2cf\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:54287 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:00.273", + "timestampUnix": 1708941180273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "16", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "29e0baaa-cc79-9819-bcc7-26921a95b2cf", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:00.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "15", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:54287", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:01.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"5145e172-84ed-92d0-a61f-f99b2d6210fc\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:55974 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:01.277", + "timestampUnix": 1708941181277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "5145e172-84ed-92d0-a61f-f99b2d6210fc", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:01.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:55974", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:01.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 3 3 \"-\" \"Go-http-client/1.1\" \"5145e172-84ed-92d0-a61f-f99b2d6210fc\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:55880 10.99.45.111:9080 10.244.0.13:34960 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:01.281", + "timestampUnix": 1708941181281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "3", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "5145e172-84ed-92d0-a61f-f99b2d6210fc", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:01.281Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "3", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:55880", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:34960", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:01.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 12 11 \"10.244.0.1\" \"Go-http-client/1.1\" \"5145e172-84ed-92d0-a61f-f99b2d6210fc\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:50283 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:01.273", + "timestampUnix": 1708941181273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "12", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "5145e172-84ed-92d0-a61f-f99b2d6210fc", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:01.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "11", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:50283", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:02.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"6c3d180c-bce7-929c-8fc3-cdb5fcc1d8af\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:55986 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:02.277", + "timestampUnix": 1708941182277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "6c3d180c-bce7-929c-8fc3-cdb5fcc1d8af", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:02.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:55986", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:02.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 2 2 \"-\" \"Go-http-client/1.1\" \"6c3d180c-bce7-929c-8fc3-cdb5fcc1d8af\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:34890 10.99.45.111:9080 10.244.0.13:34974 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:02.281", + "timestampUnix": 1708941182281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "6c3d180c-bce7-929c-8fc3-cdb5fcc1d8af", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:02.281Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:34890", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:34974", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:02.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 11 11 \"10.244.0.1\" \"Go-http-client/1.1\" \"6c3d180c-bce7-929c-8fc3-cdb5fcc1d8af\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:48827 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:02.273", + "timestampUnix": 1708941182273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "11", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "6c3d180c-bce7-929c-8fc3-cdb5fcc1d8af", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:02.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "11", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:48827", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:03.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"124dafab-4b27-9c60-b3de-9cc269b685b6\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:55992 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:03.276", + "timestampUnix": 1708941183276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "124dafab-4b27-9c60-b3de-9cc269b685b6", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:03.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:55992", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:03.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 7 6 \"-\" \"Go-http-client/1.1\" \"124dafab-4b27-9c60-b3de-9cc269b685b6\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48584 10.99.45.111:9080 10.244.0.13:34978 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:03.281", + "timestampUnix": 1708941183281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "7", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "124dafab-4b27-9c60-b3de-9cc269b685b6", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:03.281Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "6", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48584", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:34978", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:03.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 16 15 \"10.244.0.1\" \"Go-http-client/1.1\" \"124dafab-4b27-9c60-b3de-9cc269b685b6\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:35833 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:03.273", + "timestampUnix": 1708941183273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "16", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "124dafab-4b27-9c60-b3de-9cc269b685b6", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:03.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "15", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:35833", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:04.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"8696ae10-9a47-93df-945d-0d4db3cbb8c3\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:55998 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:04.276", + "timestampUnix": 1708941184276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "8696ae10-9a47-93df-945d-0d4db3cbb8c3", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:04.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:55998", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:04.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 7 6 \"-\" \"Go-http-client/1.1\" \"8696ae10-9a47-93df-945d-0d4db3cbb8c3\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:32944 10.99.45.111:9080 10.244.0.13:34982 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:04.28", + "timestampUnix": 1708941184280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "7", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "8696ae10-9a47-93df-945d-0d4db3cbb8c3", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:04.280Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "6", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:32944", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:34982", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:04.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 16 15 \"10.244.0.1\" \"Go-http-client/1.1\" \"8696ae10-9a47-93df-945d-0d4db3cbb8c3\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:43915 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:04.273", + "timestampUnix": 1708941184273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "16", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "8696ae10-9a47-93df-945d-0d4db3cbb8c3", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:04.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "15", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:43915", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:05.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"d37a432c-879d-9909-9993-942d5546ca6b\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:56004 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:05.276", + "timestampUnix": 1708941185276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "d37a432c-879d-9909-9993-942d5546ca6b", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:05.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:56004", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:05.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 2 2 \"-\" \"Go-http-client/1.1\" \"d37a432c-879d-9909-9993-942d5546ca6b\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:55880 10.99.45.111:9080 10.244.0.13:34998 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:05.28", + "timestampUnix": 1708941185280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "d37a432c-879d-9909-9993-942d5546ca6b", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:05.280Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:55880", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:34998", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:05.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 10 10 \"10.244.0.1\" \"Go-http-client/1.1\" \"d37a432c-879d-9909-9993-942d5546ca6b\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:35205 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:05.273", + "timestampUnix": 1708941185273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "10", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "d37a432c-879d-9909-9993-942d5546ca6b", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:05.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "10", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:35205", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:06.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"3fa278f8-9c9d-9122-a77b-c40f991fad95\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:56012 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:06.277", + "timestampUnix": 1708941186277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "3fa278f8-9c9d-9122-a77b-c40f991fad95", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:06.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:56012", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:06.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 2 2 \"-\" \"Go-http-client/1.1\" \"3fa278f8-9c9d-9122-a77b-c40f991fad95\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:34890 10.99.45.111:9080 10.244.0.13:35010 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:06.281", + "timestampUnix": 1708941186281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "3fa278f8-9c9d-9122-a77b-c40f991fad95", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:06.281Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:34890", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:35010", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:06.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 11 10 \"10.244.0.1\" \"Go-http-client/1.1\" \"3fa278f8-9c9d-9122-a77b-c40f991fad95\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:58747 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:06.273", + "timestampUnix": 1708941186273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "11", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "3fa278f8-9c9d-9122-a77b-c40f991fad95", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:06.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "10", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:58747", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:07.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"ce8401cb-d7cd-95e3-b4c3-420093b3b94c\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:38230 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:07.277", + "timestampUnix": 1708941187277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "ce8401cb-d7cd-95e3-b4c3-420093b3b94c", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:07.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:38230", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:07.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 6 6 \"-\" \"Go-http-client/1.1\" \"ce8401cb-d7cd-95e3-b4c3-420093b3b94c\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48584 10.99.45.111:9080 10.244.0.13:39092 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:07.281", + "timestampUnix": 1708941187281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "6", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "ce8401cb-d7cd-95e3-b4c3-420093b3b94c", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:07.281Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "6", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48584", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:39092", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:07.274Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 15 14 \"10.244.0.1\" \"Go-http-client/1.1\" \"ce8401cb-d7cd-95e3-b4c3-420093b3b94c\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:43525 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:07.274", + "timestampUnix": 1708941187274, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "15", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "ce8401cb-d7cd-95e3-b4c3-420093b3b94c", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:07.274Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "14", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:43525", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:08.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"fe0ab3e7-6c20-9be2-b75d-8e7a56553375\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:38238 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:08.277", + "timestampUnix": 1708941188277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "fe0ab3e7-6c20-9be2-b75d-8e7a56553375", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:08.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:38238", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:08.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 7 7 \"-\" \"Go-http-client/1.1\" \"fe0ab3e7-6c20-9be2-b75d-8e7a56553375\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48578 10.99.45.111:9080 10.244.0.13:39104 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:08.28", + "timestampUnix": 1708941188280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "7", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "fe0ab3e7-6c20-9be2-b75d-8e7a56553375", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:08.280Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "7", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48578", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:39104", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:08.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 15 15 \"10.244.0.1\" \"Go-http-client/1.1\" \"fe0ab3e7-6c20-9be2-b75d-8e7a56553375\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:57771 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:08.273", + "timestampUnix": 1708941188273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "15", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "fe0ab3e7-6c20-9be2-b75d-8e7a56553375", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:08.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "15", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:57771", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:09.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"4389635a-7b2c-9048-a000-09c76c140f4c\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:38240 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:09.277", + "timestampUnix": 1708941189277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "4389635a-7b2c-9048-a000-09c76c140f4c", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:09.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:38240", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:09.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 7 7 \"-\" \"Go-http-client/1.1\" \"4389635a-7b2c-9048-a000-09c76c140f4c\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48578 10.99.45.111:9080 10.244.0.13:39118 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:09.281", + "timestampUnix": 1708941189281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "7", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "4389635a-7b2c-9048-a000-09c76c140f4c", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:09.281Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "7", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48578", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:39118", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:09.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 16 16 \"10.244.0.1\" \"Go-http-client/1.1\" \"4389635a-7b2c-9048-a000-09c76c140f4c\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:56273 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:09.273", + "timestampUnix": 1708941189273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "16", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "4389635a-7b2c-9048-a000-09c76c140f4c", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:09.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "16", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:56273", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:10.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"0e5217e6-0788-9bba-b389-2df2c97cb759\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:38250 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:10.277", + "timestampUnix": 1708941190277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "0e5217e6-0788-9bba-b389-2df2c97cb759", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:10.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:38250", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:10.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 7 6 \"-\" \"Go-http-client/1.1\" \"0e5217e6-0788-9bba-b389-2df2c97cb759\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48584 10.99.45.111:9080 10.244.0.13:39128 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:10.281", + "timestampUnix": 1708941190281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "7", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "0e5217e6-0788-9bba-b389-2df2c97cb759", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:10.281Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "6", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48584", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:39128", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:10.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 16 16 \"10.244.0.1\" \"Go-http-client/1.1\" \"0e5217e6-0788-9bba-b389-2df2c97cb759\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:51161 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:10.273", + "timestampUnix": 1708941190273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "16", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "0e5217e6-0788-9bba-b389-2df2c97cb759", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:10.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "16", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:51161", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:11.284Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 4 3 \"-\" \"Go-http-client/1.1\" \"af08c1cb-352d-9e90-8847-5613f73e7830\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:38262 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:11.284", + "timestampUnix": 1708941191284, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "4", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "af08c1cb-352d-9e90-8847-5613f73e7830", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:11.284Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "3", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:38262", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:11.292Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 2 2 \"-\" \"Go-http-client/1.1\" \"af08c1cb-352d-9e90-8847-5613f73e7830\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:34890 10.99.45.111:9080 10.244.0.13:39134 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:11.292", + "timestampUnix": 1708941191292, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "af08c1cb-352d-9e90-8847-5613f73e7830", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:11.292Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:34890", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:39134", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:11.274Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 22 21 \"10.244.0.1\" \"Go-http-client/1.1\" \"af08c1cb-352d-9e90-8847-5613f73e7830\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:37767 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:11.274", + "timestampUnix": 1708941191274, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "22", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "af08c1cb-352d-9e90-8847-5613f73e7830", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:11.274Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "21", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:37767", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:12.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"3e662a27-c890-9a28-958c-0bb5ac8f1063\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:38272 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:12.277", + "timestampUnix": 1708941192277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "3e662a27-c890-9a28-958c-0bb5ac8f1063", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:12.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:38272", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:12.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 2 2 \"-\" \"Go-http-client/1.1\" \"3e662a27-c890-9a28-958c-0bb5ac8f1063\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:34890 10.99.45.111:9080 10.244.0.13:39140 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:12.28", + "timestampUnix": 1708941192280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "3e662a27-c890-9a28-958c-0bb5ac8f1063", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:12.280Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:34890", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:39140", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:12.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 11 11 \"10.244.0.1\" \"Go-http-client/1.1\" \"3e662a27-c890-9a28-958c-0bb5ac8f1063\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:53589 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:12.273", + "timestampUnix": 1708941192273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "11", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "3e662a27-c890-9a28-958c-0bb5ac8f1063", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:12.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "11", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:53589", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:13.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"22ac3905-5281-91d6-bf4a-ef655443a323\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:38284 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:13.277", + "timestampUnix": 1708941193277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "22ac3905-5281-91d6-bf4a-ef655443a323", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:13.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:38284", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:13.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 7 7 \"-\" \"Go-http-client/1.1\" \"22ac3905-5281-91d6-bf4a-ef655443a323\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:32944 10.99.45.111:9080 10.244.0.13:39146 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:13.281", + "timestampUnix": 1708941193281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "7", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "22ac3905-5281-91d6-bf4a-ef655443a323", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:13.281Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "7", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:32944", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:39146", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:13.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 18 18 \"10.244.0.1\" \"Go-http-client/1.1\" \"22ac3905-5281-91d6-bf4a-ef655443a323\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:55713 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:13.273", + "timestampUnix": 1708941193273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "18", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "22ac3905-5281-91d6-bf4a-ef655443a323", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:13.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "18", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:55713", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:14.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"00f2c1d5-c8ee-998b-856d-d65974488f9e\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:38292 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:14.276", + "timestampUnix": 1708941194276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "00f2c1d5-c8ee-998b-856d-d65974488f9e", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:14.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:38292", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:14.279Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 2 2 \"-\" \"Go-http-client/1.1\" \"00f2c1d5-c8ee-998b-856d-d65974488f9e\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:55880 10.99.45.111:9080 10.244.0.13:39156 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:14.279", + "timestampUnix": 1708941194279, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "00f2c1d5-c8ee-998b-856d-d65974488f9e", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:14.279Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:55880", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:39156", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:14.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 10 10 \"10.244.0.1\" \"Go-http-client/1.1\" \"00f2c1d5-c8ee-998b-856d-d65974488f9e\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:38311 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:14.273", + "timestampUnix": 1708941194273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "10", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "00f2c1d5-c8ee-998b-856d-d65974488f9e", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:14.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "10", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:38311", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:15.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"43f95c86-a5f3-924a-af84-513177d8dbc5\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:38298 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:15.277", + "timestampUnix": 1708941195277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "43f95c86-a5f3-924a-af84-513177d8dbc5", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:15.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:38298", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:15.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 6 6 \"-\" \"Go-http-client/1.1\" \"43f95c86-a5f3-924a-af84-513177d8dbc5\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48584 10.99.45.111:9080 10.244.0.13:39158 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:15.28", + "timestampUnix": 1708941195280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "6", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "43f95c86-a5f3-924a-af84-513177d8dbc5", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:15.280Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "6", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48584", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:39158", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:15.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 15 15 \"10.244.0.1\" \"Go-http-client/1.1\" \"43f95c86-a5f3-924a-af84-513177d8dbc5\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:56609 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:15.273", + "timestampUnix": 1708941195273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "15", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "43f95c86-a5f3-924a-af84-513177d8dbc5", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:15.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "15", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:56609", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:16.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"26bb1d35-6237-9267-9f59-64a65a1dbd98\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:38312 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:16.277", + "timestampUnix": 1708941196277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "26bb1d35-6237-9267-9f59-64a65a1dbd98", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:16.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:38312", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:16.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 2 2 \"-\" \"Go-http-client/1.1\" \"26bb1d35-6237-9267-9f59-64a65a1dbd98\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:55880 10.99.45.111:9080 10.244.0.13:39160 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:16.28", + "timestampUnix": 1708941196280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "26bb1d35-6237-9267-9f59-64a65a1dbd98", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:16.280Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:55880", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:39160", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:16.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 11 11 \"10.244.0.1\" \"Go-http-client/1.1\" \"26bb1d35-6237-9267-9f59-64a65a1dbd98\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:33597 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:16.273", + "timestampUnix": 1708941196273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "11", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "26bb1d35-6237-9267-9f59-64a65a1dbd98", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:16.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "11", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:33597", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:17.284Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"11dbdb20-da76-9460-a99b-c7af0376f646\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:60230 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:17.284", + "timestampUnix": 1708941197284, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "11dbdb20-da76-9460-a99b-c7af0376f646", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:17.284Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:60230", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:17.289Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 8 7 \"-\" \"Go-http-client/1.1\" \"11dbdb20-da76-9460-a99b-c7af0376f646\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:50830 10.99.45.111:9080 10.244.0.13:46058 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:17.289", + "timestampUnix": 1708941197289, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "8", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "11dbdb20-da76-9460-a99b-c7af0376f646", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:17.289Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "7", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:50830", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:46058", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:17.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 25 24 \"10.244.0.1\" \"Go-http-client/1.1\" \"11dbdb20-da76-9460-a99b-c7af0376f646\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:48107 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:17.273", + "timestampUnix": 1708941197273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "25", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "11dbdb20-da76-9460-a99b-c7af0376f646", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:17.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "24", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:48107", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:18.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"7723ff2e-eb6f-9c09-828b-0cfbf8b68c66\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:60232 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:18.277", + "timestampUnix": 1708941198277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "7723ff2e-eb6f-9c09-828b-0cfbf8b68c66", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:18.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:60232", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:18.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 2 2 \"-\" \"Go-http-client/1.1\" \"7723ff2e-eb6f-9c09-828b-0cfbf8b68c66\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:34890 10.99.45.111:9080 10.244.0.13:46074 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:18.281", + "timestampUnix": 1708941198281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "7723ff2e-eb6f-9c09-828b-0cfbf8b68c66", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:18.281Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:34890", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:46074", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:18.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 12 11 \"10.244.0.1\" \"Go-http-client/1.1\" \"7723ff2e-eb6f-9c09-828b-0cfbf8b68c66\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:40879 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:18.273", + "timestampUnix": 1708941198273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "12", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "7723ff2e-eb6f-9c09-828b-0cfbf8b68c66", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:18.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "11", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:40879", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:19.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"2a306c58-0a3a-98d0-8319-d4f124cc10e0\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:60234 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:19.277", + "timestampUnix": 1708941199277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "2a306c58-0a3a-98d0-8319-d4f124cc10e0", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:19.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:60234", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:19.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 6 6 \"-\" \"Go-http-client/1.1\" \"2a306c58-0a3a-98d0-8319-d4f124cc10e0\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:50830 10.99.45.111:9080 10.244.0.13:46078 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:19.281", + "timestampUnix": 1708941199281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "6", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "2a306c58-0a3a-98d0-8319-d4f124cc10e0", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:19.281Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "6", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:50830", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:46078", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:19.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 15 15 \"10.244.0.1\" \"Go-http-client/1.1\" \"2a306c58-0a3a-98d0-8319-d4f124cc10e0\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:53127 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:19.273", + "timestampUnix": 1708941199273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "15", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "2a306c58-0a3a-98d0-8319-d4f124cc10e0", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:19.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "15", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:53127", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:20.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"35c20061-ed68-9928-a679-b466cd0aa7e1\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:60242 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:20.276", + "timestampUnix": 1708941200276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "35c20061-ed68-9928-a679-b466cd0aa7e1", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:20.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:60242", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:20.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 6 6 \"-\" \"Go-http-client/1.1\" \"35c20061-ed68-9928-a679-b466cd0aa7e1\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48578 10.99.45.111:9080 10.244.0.13:46094 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:20.28", + "timestampUnix": 1708941200280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "6", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "35c20061-ed68-9928-a679-b466cd0aa7e1", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:20.280Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "6", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48578", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:46094", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:20.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 14 14 \"10.244.0.1\" \"Go-http-client/1.1\" \"35c20061-ed68-9928-a679-b466cd0aa7e1\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:44015 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:20.273", + "timestampUnix": 1708941200273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "14", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "35c20061-ed68-9928-a679-b466cd0aa7e1", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:20.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "14", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:44015", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:21.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 0 \"-\" \"Go-http-client/1.1\" \"40146bc8-c01b-9ca9-b119-7b43f9c96014\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:60248 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:21.276", + "timestampUnix": 1708941201276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "40146bc8-c01b-9ca9-b119-7b43f9c96014", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:21.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "0", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:60248", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:21.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 6 6 \"-\" \"Go-http-client/1.1\" \"40146bc8-c01b-9ca9-b119-7b43f9c96014\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48584 10.99.45.111:9080 10.244.0.13:46104 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:21.28", + "timestampUnix": 1708941201280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "6", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "40146bc8-c01b-9ca9-b119-7b43f9c96014", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:21.280Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "6", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48584", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:46104", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:21.274Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 14 13 \"10.244.0.1\" \"Go-http-client/1.1\" \"40146bc8-c01b-9ca9-b119-7b43f9c96014\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:35153 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:21.274", + "timestampUnix": 1708941201274, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "14", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "40146bc8-c01b-9ca9-b119-7b43f9c96014", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:21.274Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "13", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:35153", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:22.285Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 4 3 \"-\" \"Go-http-client/1.1\" \"287df2f7-1d24-99ff-a775-6754c57c8c6b\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:60250 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:22.285", + "timestampUnix": 1708941202285, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "4", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "287df2f7-1d24-99ff-a775-6754c57c8c6b", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:22.285Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "3", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:60250", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:22.298Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 6 5 \"-\" \"Go-http-client/1.1\" \"287df2f7-1d24-99ff-a775-6754c57c8c6b\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:55880 10.99.45.111:9080 10.244.0.13:46114 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:22.298", + "timestampUnix": 1708941202298, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "6", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "287df2f7-1d24-99ff-a775-6754c57c8c6b", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:22.298Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "5", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:55880", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:46114", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:22.274Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 33 32 \"10.244.0.1\" \"Go-http-client/1.1\" \"287df2f7-1d24-99ff-a775-6754c57c8c6b\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:55911 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:22.274", + "timestampUnix": 1708941202274, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "33", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "287df2f7-1d24-99ff-a775-6754c57c8c6b", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:22.274Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "32", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:55911", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:23.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"b540c058-9519-996e-9536-834e7ccbbd4e\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:60252 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:23.276", + "timestampUnix": 1708941203276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "b540c058-9519-996e-9536-834e7ccbbd4e", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:23.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:60252", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:23.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 2 2 \"-\" \"Go-http-client/1.1\" \"b540c058-9519-996e-9536-834e7ccbbd4e\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:55880 10.99.45.111:9080 10.244.0.13:46116 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:23.28", + "timestampUnix": 1708941203280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "b540c058-9519-996e-9536-834e7ccbbd4e", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:23.280Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:55880", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:46116", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:23.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 10 10 \"10.244.0.1\" \"Go-http-client/1.1\" \"b540c058-9519-996e-9536-834e7ccbbd4e\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:42933 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:23.273", + "timestampUnix": 1708941203273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "10", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "b540c058-9519-996e-9536-834e7ccbbd4e", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:23.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "10", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:42933", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:24.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"d14e30b9-0e28-93c9-86f9-3a9275655b8d\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:60254 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:24.276", + "timestampUnix": 1708941204276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "d14e30b9-0e28-93c9-86f9-3a9275655b8d", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:24.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:60254", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:24.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 6 6 \"-\" \"Go-http-client/1.1\" \"d14e30b9-0e28-93c9-86f9-3a9275655b8d\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:32944 10.99.45.111:9080 10.244.0.13:46122 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:24.28", + "timestampUnix": 1708941204280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "6", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "d14e30b9-0e28-93c9-86f9-3a9275655b8d", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:24.280Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "6", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:32944", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:46122", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:24.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 14 14 \"10.244.0.1\" \"Go-http-client/1.1\" \"d14e30b9-0e28-93c9-86f9-3a9275655b8d\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:49341 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:24.273", + "timestampUnix": 1708941204273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "14", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "d14e30b9-0e28-93c9-86f9-3a9275655b8d", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:24.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "14", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:49341", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:25.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"f9c1158e-40e8-9ad8-99e5-c8dfd5c9541e\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:60256 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:25.276", + "timestampUnix": 1708941205276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "f9c1158e-40e8-9ad8-99e5-c8dfd5c9541e", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:25.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:60256", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:25.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 8 8 \"-\" \"Go-http-client/1.1\" \"f9c1158e-40e8-9ad8-99e5-c8dfd5c9541e\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48584 10.99.45.111:9080 10.244.0.13:46134 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:25.281", + "timestampUnix": 1708941205281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "8", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "f9c1158e-40e8-9ad8-99e5-c8dfd5c9541e", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:25.281Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "8", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48584", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:46134", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:25.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 18 17 \"10.244.0.1\" \"Go-http-client/1.1\" \"f9c1158e-40e8-9ad8-99e5-c8dfd5c9541e\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:53913 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:25.273", + "timestampUnix": 1708941205273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "18", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "f9c1158e-40e8-9ad8-99e5-c8dfd5c9541e", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:25.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "17", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:53913", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:26.285Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 4 3 \"-\" \"Go-http-client/1.1\" \"62479e79-06d0-9fe9-805d-a98787d7108b\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:60268 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:26.285", + "timestampUnix": 1708941206285, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "4", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "62479e79-06d0-9fe9-805d-a98787d7108b", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:26.285Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "3", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:60268", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:26.293Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 3 3 \"-\" \"Go-http-client/1.1\" \"62479e79-06d0-9fe9-805d-a98787d7108b\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:55880 10.99.45.111:9080 10.244.0.13:46146 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:26.293", + "timestampUnix": 1708941206293, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "3", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "62479e79-06d0-9fe9-805d-a98787d7108b", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:26.293Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "3", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:55880", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:46146", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:26.274Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 24 23 \"10.244.0.1\" \"Go-http-client/1.1\" \"62479e79-06d0-9fe9-805d-a98787d7108b\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:56453 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:26.274", + "timestampUnix": 1708941206274, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "24", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "62479e79-06d0-9fe9-805d-a98787d7108b", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:26.274Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "23", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:56453", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:27.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"900def43-544e-983d-af08-a79de3f7a3de\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:50696 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:27.276", + "timestampUnix": 1708941207276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "900def43-544e-983d-af08-a79de3f7a3de", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:27.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:50696", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:27.279Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 2 2 \"-\" \"Go-http-client/1.1\" \"900def43-544e-983d-af08-a79de3f7a3de\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:55880 10.99.45.111:9080 10.244.0.13:50934 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:27.279", + "timestampUnix": 1708941207279, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "900def43-544e-983d-af08-a79de3f7a3de", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:27.279Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:55880", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:50934", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:27.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 10 9 \"10.244.0.1\" \"Go-http-client/1.1\" \"900def43-544e-983d-af08-a79de3f7a3de\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:38797 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:27.273", + "timestampUnix": 1708941207273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "10", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "900def43-544e-983d-af08-a79de3f7a3de", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:27.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "9", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:38797", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:28.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"f5412b74-2e69-9eb1-afc6-fb738a104045\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:50706 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:28.276", + "timestampUnix": 1708941208276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "f5412b74-2e69-9eb1-afc6-fb738a104045", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:28.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:50706", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:28.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 6 5 \"-\" \"Go-http-client/1.1\" \"f5412b74-2e69-9eb1-afc6-fb738a104045\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48578 10.99.45.111:9080 10.244.0.13:50936 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:28.28", + "timestampUnix": 1708941208280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "6", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "f5412b74-2e69-9eb1-afc6-fb738a104045", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:28.280Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "5", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48578", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:50936", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:28.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 14 14 \"10.244.0.1\" \"Go-http-client/1.1\" \"f5412b74-2e69-9eb1-afc6-fb738a104045\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:44211 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:28.273", + "timestampUnix": 1708941208273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "14", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "f5412b74-2e69-9eb1-afc6-fb738a104045", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:28.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "14", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:44211", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:29.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"50b9aa86-0a21-9aab-b404-27de8eb66287\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:50710 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:29.276", + "timestampUnix": 1708941209276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "50b9aa86-0a21-9aab-b404-27de8eb66287", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:29.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:50710", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:29.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 6 6 \"-\" \"Go-http-client/1.1\" \"50b9aa86-0a21-9aab-b404-27de8eb66287\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:50830 10.99.45.111:9080 10.244.0.13:50944 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:29.28", + "timestampUnix": 1708941209280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "6", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "50b9aa86-0a21-9aab-b404-27de8eb66287", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:29.280Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "6", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:50830", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:50944", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:29.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 14 13 \"10.244.0.1\" \"Go-http-client/1.1\" \"50b9aa86-0a21-9aab-b404-27de8eb66287\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:53307 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:29.273", + "timestampUnix": 1708941209273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "14", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "50b9aa86-0a21-9aab-b404-27de8eb66287", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:29.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "13", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:53307", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:30.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"353627b4-a80f-93d1-9f99-7d4bd9fcb20e\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:50724 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:30.276", + "timestampUnix": 1708941210276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "353627b4-a80f-93d1-9f99-7d4bd9fcb20e", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:30.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:50724", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:30.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 2 2 \"-\" \"Go-http-client/1.1\" \"353627b4-a80f-93d1-9f99-7d4bd9fcb20e\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:34890 10.99.45.111:9080 10.244.0.13:50956 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:30.28", + "timestampUnix": 1708941210280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "353627b4-a80f-93d1-9f99-7d4bd9fcb20e", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:30.280Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:34890", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:50956", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:30.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 11 10 \"10.244.0.1\" \"Go-http-client/1.1\" \"353627b4-a80f-93d1-9f99-7d4bd9fcb20e\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:39209 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:30.273", + "timestampUnix": 1708941210273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "11", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "353627b4-a80f-93d1-9f99-7d4bd9fcb20e", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:30.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "10", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:39209", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:31.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"847ee4a0-8e21-91cb-ba14-a23c88f75496\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:50736 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:31.276", + "timestampUnix": 1708941211276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "847ee4a0-8e21-91cb-ba14-a23c88f75496", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:31.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:50736", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:31.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 5 5 \"-\" \"Go-http-client/1.1\" \"847ee4a0-8e21-91cb-ba14-a23c88f75496\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48584 10.99.45.111:9080 10.244.0.13:50958 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:31.28", + "timestampUnix": 1708941211280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "5", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "847ee4a0-8e21-91cb-ba14-a23c88f75496", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:31.280Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "5", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48584", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:50958", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:31.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 13 13 \"10.244.0.1\" \"Go-http-client/1.1\" \"847ee4a0-8e21-91cb-ba14-a23c88f75496\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:37951 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:31.273", + "timestampUnix": 1708941211273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "13", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "847ee4a0-8e21-91cb-ba14-a23c88f75496", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:31.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "13", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:37951", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:32.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"69f04fa5-ce5b-920e-bb89-fa78a69d618e\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:50748 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:32.276", + "timestampUnix": 1708941212276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "69f04fa5-ce5b-920e-bb89-fa78a69d618e", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:32.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:50748", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:32.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 6 6 \"-\" \"Go-http-client/1.1\" \"69f04fa5-ce5b-920e-bb89-fa78a69d618e\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:32944 10.99.45.111:9080 10.244.0.13:50968 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:32.28", + "timestampUnix": 1708941212280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "6", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "69f04fa5-ce5b-920e-bb89-fa78a69d618e", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:32.280Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "6", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:32944", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:50968", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:32.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 15 14 \"10.244.0.1\" \"Go-http-client/1.1\" \"69f04fa5-ce5b-920e-bb89-fa78a69d618e\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:46601 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:32.273", + "timestampUnix": 1708941212273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "15", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "69f04fa5-ce5b-920e-bb89-fa78a69d618e", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:32.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "14", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:46601", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:33.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"4efe4b58-4c0e-94f4-b10e-a93e526c97d7\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:50752 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:33.276", + "timestampUnix": 1708941213276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "4efe4b58-4c0e-94f4-b10e-a93e526c97d7", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:33.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:50752", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:33.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 6 6 \"-\" \"Go-http-client/1.1\" \"4efe4b58-4c0e-94f4-b10e-a93e526c97d7\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:50830 10.99.45.111:9080 10.244.0.13:50982 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:33.281", + "timestampUnix": 1708941213281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "6", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "4efe4b58-4c0e-94f4-b10e-a93e526c97d7", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:33.281Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "6", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:50830", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:50982", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:33.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 15 15 \"10.244.0.1\" \"Go-http-client/1.1\" \"4efe4b58-4c0e-94f4-b10e-a93e526c97d7\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:60037 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:33.273", + "timestampUnix": 1708941213273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "15", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "4efe4b58-4c0e-94f4-b10e-a93e526c97d7", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:33.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "15", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:60037", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:34.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"2f640aea-994a-9aff-b9f3-fb6f96bfcadb\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:50766 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:34.276", + "timestampUnix": 1708941214276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "2f640aea-994a-9aff-b9f3-fb6f96bfcadb", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:34.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:50766", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:34.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 6 6 \"-\" \"Go-http-client/1.1\" \"2f640aea-994a-9aff-b9f3-fb6f96bfcadb\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:32944 10.99.45.111:9080 10.244.0.13:50998 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:34.28", + "timestampUnix": 1708941214280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "6", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "2f640aea-994a-9aff-b9f3-fb6f96bfcadb", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:34.280Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "6", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:32944", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:50998", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:34.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 14 14 \"10.244.0.1\" \"Go-http-client/1.1\" \"2f640aea-994a-9aff-b9f3-fb6f96bfcadb\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:54949 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:34.273", + "timestampUnix": 1708941214273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "14", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "2f640aea-994a-9aff-b9f3-fb6f96bfcadb", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:34.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "14", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:54949", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:35.285Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 3 3 \"-\" \"Go-http-client/1.1\" \"84b35dc0-2ddc-9f0c-bfd5-f3736c665ff3\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:50774 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:35.285", + "timestampUnix": 1708941215285, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "3", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "84b35dc0-2ddc-9f0c-bfd5-f3736c665ff3", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:35.285Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "3", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:50774", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:35.297Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 9 9 \"-\" \"Go-http-client/1.1\" \"84b35dc0-2ddc-9f0c-bfd5-f3736c665ff3\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:55880 10.99.45.111:9080 10.244.0.13:51014 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:35.297", + "timestampUnix": 1708941215297, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "9", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "84b35dc0-2ddc-9f0c-bfd5-f3736c665ff3", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:35.297Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "9", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:55880", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:51014", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:35.274Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 38 37 \"10.244.0.1\" \"Go-http-client/1.1\" \"84b35dc0-2ddc-9f0c-bfd5-f3736c665ff3\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:40149 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:35.274", + "timestampUnix": 1708941215274, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "38", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "84b35dc0-2ddc-9f0c-bfd5-f3736c665ff3", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:35.274Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "37", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:40149", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:36.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"6071e448-79c6-947c-828a-a29900847571\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:50780 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:36.276", + "timestampUnix": 1708941216276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "6071e448-79c6-947c-828a-a29900847571", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:36.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:50780", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:36.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 6 6 \"-\" \"Go-http-client/1.1\" \"6071e448-79c6-947c-828a-a29900847571\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48584 10.99.45.111:9080 10.244.0.13:51022 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:36.28", + "timestampUnix": 1708941216280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "6", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "6071e448-79c6-947c-828a-a29900847571", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:36.280Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "6", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48584", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:51022", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:36.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 14 14 \"10.244.0.1\" \"Go-http-client/1.1\" \"6071e448-79c6-947c-828a-a29900847571\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:52429 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:36.273", + "timestampUnix": 1708941216273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "14", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "6071e448-79c6-947c-828a-a29900847571", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:36.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "14", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:52429", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:37.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"171ec3f1-0c5f-9a23-b4c0-b04bc5cee805\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:49818 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:37.276", + "timestampUnix": 1708941217276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "171ec3f1-0c5f-9a23-b4c0-b04bc5cee805", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:37.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:49818", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:37.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 6 6 \"-\" \"Go-http-client/1.1\" \"171ec3f1-0c5f-9a23-b4c0-b04bc5cee805\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:32944 10.99.45.111:9080 10.244.0.13:49032 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:37.28", + "timestampUnix": 1708941217280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "6", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "171ec3f1-0c5f-9a23-b4c0-b04bc5cee805", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:37.280Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "6", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:32944", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:49032", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:37.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 14 13 \"10.244.0.1\" \"Go-http-client/1.1\" \"171ec3f1-0c5f-9a23-b4c0-b04bc5cee805\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:56911 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:37.273", + "timestampUnix": 1708941217273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "14", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "171ec3f1-0c5f-9a23-b4c0-b04bc5cee805", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:37.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "13", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:56911", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:38.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"08c44da1-24f3-98fc-ab21-49dccbd56457\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:49822 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:38.277", + "timestampUnix": 1708941218277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "08c44da1-24f3-98fc-ab21-49dccbd56457", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:38.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:49822", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:38.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 6 6 \"-\" \"Go-http-client/1.1\" \"08c44da1-24f3-98fc-ab21-49dccbd56457\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:50830 10.99.45.111:9080 10.244.0.13:49034 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:38.28", + "timestampUnix": 1708941218280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "6", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "08c44da1-24f3-98fc-ab21-49dccbd56457", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:38.280Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "6", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:50830", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:49034", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:38.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 15 14 \"10.244.0.1\" \"Go-http-client/1.1\" \"08c44da1-24f3-98fc-ab21-49dccbd56457\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:53383 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:38.273", + "timestampUnix": 1708941218273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "15", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "08c44da1-24f3-98fc-ab21-49dccbd56457", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:38.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "14", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:53383", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:39.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"4eef8285-47da-9251-bbe2-6dae2047b0cc\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:49836 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:39.276", + "timestampUnix": 1708941219276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "4eef8285-47da-9251-bbe2-6dae2047b0cc", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:39.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:49836", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:39.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 2 2 \"-\" \"Go-http-client/1.1\" \"4eef8285-47da-9251-bbe2-6dae2047b0cc\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:34890 10.99.45.111:9080 10.244.0.13:49048 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:39.28", + "timestampUnix": 1708941219280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "4eef8285-47da-9251-bbe2-6dae2047b0cc", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:39.280Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:34890", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:49048", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:39.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 10 9 \"10.244.0.1\" \"Go-http-client/1.1\" \"4eef8285-47da-9251-bbe2-6dae2047b0cc\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:38081 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:39.273", + "timestampUnix": 1708941219273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "10", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "4eef8285-47da-9251-bbe2-6dae2047b0cc", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:39.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "9", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:38081", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:40.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"b7af2316-049e-96b1-81d3-2b4bbae8f885\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:49846 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:40.276", + "timestampUnix": 1708941220276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "b7af2316-049e-96b1-81d3-2b4bbae8f885", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:40.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:49846", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:40.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 2 1 \"-\" \"Go-http-client/1.1\" \"b7af2316-049e-96b1-81d3-2b4bbae8f885\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:34890 10.99.45.111:9080 10.244.0.13:49058 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:40.28", + "timestampUnix": 1708941220280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "b7af2316-049e-96b1-81d3-2b4bbae8f885", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:40.280Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:34890", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:49058", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:40.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 10 10 \"10.244.0.1\" \"Go-http-client/1.1\" \"b7af2316-049e-96b1-81d3-2b4bbae8f885\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:54179 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:40.273", + "timestampUnix": 1708941220273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "10", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "b7af2316-049e-96b1-81d3-2b4bbae8f885", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:40.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "10", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:54179", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:41.282Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"ebdbdf91-8364-9582-8737-52ab7ba3ca4a\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:49858 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:41.282", + "timestampUnix": 1708941221282, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "ebdbdf91-8364-9582-8737-52ab7ba3ca4a", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:41.282Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:49858", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:41.286Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 2 2 \"-\" \"Go-http-client/1.1\" \"ebdbdf91-8364-9582-8737-52ab7ba3ca4a\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:55880 10.99.45.111:9080 10.244.0.13:49072 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:41.286", + "timestampUnix": 1708941221286, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "ebdbdf91-8364-9582-8737-52ab7ba3ca4a", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:41.286Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:55880", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:49072", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:41.274Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 16 16 \"10.244.0.1\" \"Go-http-client/1.1\" \"ebdbdf91-8364-9582-8737-52ab7ba3ca4a\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:56631 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:41.274", + "timestampUnix": 1708941221274, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "16", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "ebdbdf91-8364-9582-8737-52ab7ba3ca4a", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:41.274Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "16", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:56631", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:42.285Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"15c491f8-b840-9f02-8ba5-9b625c9e645c\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:49860 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:42.285", + "timestampUnix": 1708941222285, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "15c491f8-b840-9f02-8ba5-9b625c9e645c", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:42.285Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:49860", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:42.289Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 2 2 \"-\" \"Go-http-client/1.1\" \"15c491f8-b840-9f02-8ba5-9b625c9e645c\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:34890 10.99.45.111:9080 10.244.0.13:49086 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:42.289", + "timestampUnix": 1708941222289, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "15c491f8-b840-9f02-8ba5-9b625c9e645c", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:42.289Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:34890", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:49086", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:42.274Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 19 18 \"10.244.0.1\" \"Go-http-client/1.1\" \"15c491f8-b840-9f02-8ba5-9b625c9e645c\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:35245 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:42.274", + "timestampUnix": 1708941222274, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "19", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "15c491f8-b840-9f02-8ba5-9b625c9e645c", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:42.274Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "18", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:35245", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:43.285Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 2 2 \"-\" \"Go-http-client/1.1\" \"1e6125ec-f9e9-9a10-8dfb-5b9bac62bb01\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:49872 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:43.285", + "timestampUnix": 1708941223285, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "1e6125ec-f9e9-9a10-8dfb-5b9bac62bb01", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:43.285Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:49872", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:43.290Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 8 7 \"-\" \"Go-http-client/1.1\" \"1e6125ec-f9e9-9a10-8dfb-5b9bac62bb01\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48578 10.99.45.111:9080 10.244.0.13:49094 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:43.29", + "timestampUnix": 1708941223290, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "8", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "1e6125ec-f9e9-9a10-8dfb-5b9bac62bb01", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:43.290Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "7", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48578", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:49094", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:43.274Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 25 25 \"10.244.0.1\" \"Go-http-client/1.1\" \"1e6125ec-f9e9-9a10-8dfb-5b9bac62bb01\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:37155 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:43.274", + "timestampUnix": 1708941223274, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "25", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "1e6125ec-f9e9-9a10-8dfb-5b9bac62bb01", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:43.274Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "25", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:37155", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:44.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"aa84e5cb-58c7-96cc-97ed-1650673babdb\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:49888 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:44.276", + "timestampUnix": 1708941224276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "aa84e5cb-58c7-96cc-97ed-1650673babdb", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:44.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:49888", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:44.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 2 2 \"-\" \"Go-http-client/1.1\" \"aa84e5cb-58c7-96cc-97ed-1650673babdb\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:55880 10.99.45.111:9080 10.244.0.13:49104 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:44.28", + "timestampUnix": 1708941224280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "aa84e5cb-58c7-96cc-97ed-1650673babdb", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:44.280Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:55880", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:49104", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:44.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 10 10 \"10.244.0.1\" \"Go-http-client/1.1\" \"aa84e5cb-58c7-96cc-97ed-1650673babdb\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:43337 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:44.273", + "timestampUnix": 1708941224273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "10", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "aa84e5cb-58c7-96cc-97ed-1650673babdb", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:44.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "10", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:43337", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:45.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"6bf241ba-a06c-9cd7-8e56-42eea33bad45\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:49894 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:45.276", + "timestampUnix": 1708941225276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "6bf241ba-a06c-9cd7-8e56-42eea33bad45", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:45.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:49894", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:45.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 1 1 \"-\" \"Go-http-client/1.1\" \"6bf241ba-a06c-9cd7-8e56-42eea33bad45\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:34890 10.99.45.111:9080 10.244.0.13:49108 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:45.28", + "timestampUnix": 1708941225280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "6bf241ba-a06c-9cd7-8e56-42eea33bad45", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:45.280Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:34890", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:49108", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:45.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 9 9 \"10.244.0.1\" \"Go-http-client/1.1\" \"6bf241ba-a06c-9cd7-8e56-42eea33bad45\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:46593 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:45.273", + "timestampUnix": 1708941225273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "9", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "6bf241ba-a06c-9cd7-8e56-42eea33bad45", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:45.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "9", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:46593", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:46.278Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"8c2cf9f1-a71f-9321-a576-39ffb56421b8\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:49898 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:46.278", + "timestampUnix": 1708941226278, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "8c2cf9f1-a71f-9321-a576-39ffb56421b8", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:46.278Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:49898", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:46.282Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 7 7 \"-\" \"Go-http-client/1.1\" \"8c2cf9f1-a71f-9321-a576-39ffb56421b8\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:32944 10.99.45.111:9080 10.244.0.13:49114 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:46.282", + "timestampUnix": 1708941226282, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "7", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "8c2cf9f1-a71f-9321-a576-39ffb56421b8", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:46.282Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "7", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:32944", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:49114", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:46.274Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 17 16 \"10.244.0.1\" \"Go-http-client/1.1\" \"8c2cf9f1-a71f-9321-a576-39ffb56421b8\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:54017 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:46.274", + "timestampUnix": 1708941226274, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "17", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "8c2cf9f1-a71f-9321-a576-39ffb56421b8", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:46.274Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "16", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:54017", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:47.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"c990a7e2-302b-9be2-9827-ca0ac86f3396\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:60292 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:47.276", + "timestampUnix": 1708941227276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "c990a7e2-302b-9be2-9827-ca0ac86f3396", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:47.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:60292", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:47.279Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 5 5 \"-\" \"Go-http-client/1.1\" \"c990a7e2-302b-9be2-9827-ca0ac86f3396\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:50830 10.99.45.111:9080 10.244.0.13:58162 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:47.279", + "timestampUnix": 1708941227279, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "5", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "c990a7e2-302b-9be2-9827-ca0ac86f3396", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:47.279Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "5", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:50830", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:58162", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:47.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 14 13 \"10.244.0.1\" \"Go-http-client/1.1\" \"c990a7e2-302b-9be2-9827-ca0ac86f3396\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:48137 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:47.273", + "timestampUnix": 1708941227273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "14", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "c990a7e2-302b-9be2-9827-ca0ac86f3396", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:47.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "13", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:48137", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:48.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"39af5e4e-a4a6-9d47-a7f0-565b116f4dcc\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:60294 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:48.276", + "timestampUnix": 1708941228276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "39af5e4e-a4a6-9d47-a7f0-565b116f4dcc", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:48.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:60294", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:48.279Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 6 6 \"-\" \"Go-http-client/1.1\" \"39af5e4e-a4a6-9d47-a7f0-565b116f4dcc\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:50830 10.99.45.111:9080 10.244.0.13:58174 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:48.279", + "timestampUnix": 1708941228279, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "6", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "39af5e4e-a4a6-9d47-a7f0-565b116f4dcc", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:48.279Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "6", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:50830", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:58174", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:48.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 14 14 \"10.244.0.1\" \"Go-http-client/1.1\" \"39af5e4e-a4a6-9d47-a7f0-565b116f4dcc\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:38003 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:48.273", + "timestampUnix": 1708941228273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "14", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "39af5e4e-a4a6-9d47-a7f0-565b116f4dcc", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:48.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "14", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:38003", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:49.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"4f77bb20-13b3-9b34-b473-c3f0967a20d2\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:60306 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:49.277", + "timestampUnix": 1708941229277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "4f77bb20-13b3-9b34-b473-c3f0967a20d2", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:49.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:60306", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:49.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 6 6 \"-\" \"Go-http-client/1.1\" \"4f77bb20-13b3-9b34-b473-c3f0967a20d2\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48578 10.99.45.111:9080 10.244.0.13:58190 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:49.28", + "timestampUnix": 1708941229280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "6", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "4f77bb20-13b3-9b34-b473-c3f0967a20d2", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:49.280Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "6", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48578", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:58190", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:49.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 15 15 \"10.244.0.1\" \"Go-http-client/1.1\" \"4f77bb20-13b3-9b34-b473-c3f0967a20d2\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:36093 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:49.273", + "timestampUnix": 1708941229273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "15", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "4f77bb20-13b3-9b34-b473-c3f0967a20d2", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:49.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "15", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:36093", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:50.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"d7b36f5c-24b3-9c33-812d-15cc725003fa\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:60314 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:50.276", + "timestampUnix": 1708941230276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "d7b36f5c-24b3-9c33-812d-15cc725003fa", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:50.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:60314", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:50.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 7 6 \"-\" \"Go-http-client/1.1\" \"d7b36f5c-24b3-9c33-812d-15cc725003fa\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:50830 10.99.45.111:9080 10.244.0.13:58196 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:50.28", + "timestampUnix": 1708941230280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "7", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "d7b36f5c-24b3-9c33-812d-15cc725003fa", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:50.280Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "6", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:50830", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:58196", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:50.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 15 15 \"10.244.0.1\" \"Go-http-client/1.1\" \"d7b36f5c-24b3-9c33-812d-15cc725003fa\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:52815 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:50.273", + "timestampUnix": 1708941230273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "15", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "d7b36f5c-24b3-9c33-812d-15cc725003fa", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:50.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "15", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:52815", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:51.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 0 \"-\" \"Go-http-client/1.1\" \"fb29b533-9eaf-9295-88d7-8ac0507bd0a2\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:60328 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:51.276", + "timestampUnix": 1708941231276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "fb29b533-9eaf-9295-88d7-8ac0507bd0a2", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:51.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "0", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:60328", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:51.279Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 5 5 \"-\" \"Go-http-client/1.1\" \"fb29b533-9eaf-9295-88d7-8ac0507bd0a2\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48584 10.99.45.111:9080 10.244.0.13:58204 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:51.279", + "timestampUnix": 1708941231279, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "5", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "fb29b533-9eaf-9295-88d7-8ac0507bd0a2", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:51.279Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "5", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48584", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:58204", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:51.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 13 13 \"10.244.0.1\" \"Go-http-client/1.1\" \"fb29b533-9eaf-9295-88d7-8ac0507bd0a2\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:39271 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:51.273", + "timestampUnix": 1708941231273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "13", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "fb29b533-9eaf-9295-88d7-8ac0507bd0a2", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:51.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "13", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:39271", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:52.285Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 3 3 \"-\" \"Go-http-client/1.1\" \"b4208e96-911b-99e5-aa55-0393faa1eedb\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:60338 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:52.285", + "timestampUnix": 1708941232285, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "3", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "b4208e96-911b-99e5-aa55-0393faa1eedb", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:52.285Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "3", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:60338", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:52.298Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 3 2 \"-\" \"Go-http-client/1.1\" \"b4208e96-911b-99e5-aa55-0393faa1eedb\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:34890 10.99.45.111:9080 10.244.0.13:58218 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:52.298", + "timestampUnix": 1708941232298, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "3", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "b4208e96-911b-99e5-aa55-0393faa1eedb", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:52.298Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:34890", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:58218", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:52.274Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 27 27 \"10.244.0.1\" \"Go-http-client/1.1\" \"b4208e96-911b-99e5-aa55-0393faa1eedb\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:37523 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:52.274", + "timestampUnix": 1708941232274, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "27", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "b4208e96-911b-99e5-aa55-0393faa1eedb", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:52.274Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "27", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:37523", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:53.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"2ff92b70-42ee-9d0e-a032-562903fd3352\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:60346 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:53.276", + "timestampUnix": 1708941233276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "2ff92b70-42ee-9d0e-a032-562903fd3352", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:53.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:60346", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:53.279Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 6 6 \"-\" \"Go-http-client/1.1\" \"2ff92b70-42ee-9d0e-a032-562903fd3352\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:50830 10.99.45.111:9080 10.244.0.13:58220 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:53.279", + "timestampUnix": 1708941233279, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "6", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "2ff92b70-42ee-9d0e-a032-562903fd3352", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:53.279Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "6", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:50830", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:58220", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:53.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 13 13 \"10.244.0.1\" \"Go-http-client/1.1\" \"2ff92b70-42ee-9d0e-a032-562903fd3352\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:40733 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:53.273", + "timestampUnix": 1708941233273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "13", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "2ff92b70-42ee-9d0e-a032-562903fd3352", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:53.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "13", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:40733", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:54.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 0 \"-\" \"Go-http-client/1.1\" \"57090eef-746b-95e2-9c51-deedee81a674\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:60358 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:54.276", + "timestampUnix": 1708941234276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "57090eef-746b-95e2-9c51-deedee81a674", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:54.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "0", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:60358", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:54.279Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 1 1 \"-\" \"Go-http-client/1.1\" \"57090eef-746b-95e2-9c51-deedee81a674\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:55880 10.99.45.111:9080 10.244.0.13:58234 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:54.279", + "timestampUnix": 1708941234279, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "57090eef-746b-95e2-9c51-deedee81a674", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:54.279Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:55880", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:58234", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:54.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 9 9 \"10.244.0.1\" \"Go-http-client/1.1\" \"57090eef-746b-95e2-9c51-deedee81a674\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:36413 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:54.273", + "timestampUnix": 1708941234273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "9", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "57090eef-746b-95e2-9c51-deedee81a674", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:54.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "9", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:36413", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:55.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"3d817c77-de4c-9758-8bb6-f0236aee20f3\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:60372 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:55.276", + "timestampUnix": 1708941235276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "3d817c77-de4c-9758-8bb6-f0236aee20f3", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:55.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:60372", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:55.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 6 6 \"-\" \"Go-http-client/1.1\" \"3d817c77-de4c-9758-8bb6-f0236aee20f3\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48578 10.99.45.111:9080 10.244.0.13:58240 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:55.281", + "timestampUnix": 1708941235281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "6", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "3d817c77-de4c-9758-8bb6-f0236aee20f3", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:55.281Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "6", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48578", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:58240", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:55.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 16 15 \"10.244.0.1\" \"Go-http-client/1.1\" \"3d817c77-de4c-9758-8bb6-f0236aee20f3\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:54349 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:55.273", + "timestampUnix": 1708941235273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "16", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "3d817c77-de4c-9758-8bb6-f0236aee20f3", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:55.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "15", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:54349", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:56.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"e5b5ef76-cad3-96bc-87b0-e2fbf300ab72\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:60376 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:56.277", + "timestampUnix": 1708941236277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "e5b5ef76-cad3-96bc-87b0-e2fbf300ab72", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:56.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:60376", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:56.282Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 2 2 \"-\" \"Go-http-client/1.1\" \"e5b5ef76-cad3-96bc-87b0-e2fbf300ab72\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:55880 10.99.45.111:9080 10.244.0.13:58244 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:56.282", + "timestampUnix": 1708941236282, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "e5b5ef76-cad3-96bc-87b0-e2fbf300ab72", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:56.282Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:55880", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:58244", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:56.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 12 11 \"10.244.0.1\" \"Go-http-client/1.1\" \"e5b5ef76-cad3-96bc-87b0-e2fbf300ab72\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:33399 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:56.273", + "timestampUnix": 1708941236273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "12", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "e5b5ef76-cad3-96bc-87b0-e2fbf300ab72", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:56.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "11", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:33399", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:57.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"513d5f2c-c902-9ee2-8cf9-f2635c53e62b\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:45950 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:57.276", + "timestampUnix": 1708941237276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "513d5f2c-c902-9ee2-8cf9-f2635c53e62b", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:57.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:45950", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:57.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 6 5 \"-\" \"Go-http-client/1.1\" \"513d5f2c-c902-9ee2-8cf9-f2635c53e62b\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:50830 10.99.45.111:9080 10.244.0.13:42916 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:57.28", + "timestampUnix": 1708941237280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "6", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "513d5f2c-c902-9ee2-8cf9-f2635c53e62b", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:57.280Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "5", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:50830", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:42916", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:57.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 13 13 \"10.244.0.1\" \"Go-http-client/1.1\" \"513d5f2c-c902-9ee2-8cf9-f2635c53e62b\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:57505 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:57.273", + "timestampUnix": 1708941237273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "13", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "513d5f2c-c902-9ee2-8cf9-f2635c53e62b", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:57.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "13", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:57505", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:58.279Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"d7531ca4-cb43-9cc4-9e9c-d177af3988b6\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:45960 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:58.279", + "timestampUnix": 1708941238279, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "d7531ca4-cb43-9cc4-9e9c-d177af3988b6", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:58.279Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:45960", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:58.283Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 2 2 \"-\" \"Go-http-client/1.1\" \"d7531ca4-cb43-9cc4-9e9c-d177af3988b6\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:55880 10.99.45.111:9080 10.244.0.13:42924 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:58.283", + "timestampUnix": 1708941238283, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "d7531ca4-cb43-9cc4-9e9c-d177af3988b6", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:58.283Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:55880", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:42924", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:58.274Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 13 12 \"10.244.0.1\" \"Go-http-client/1.1\" \"d7531ca4-cb43-9cc4-9e9c-d177af3988b6\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:35337 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:58.274", + "timestampUnix": 1708941238274, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "13", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "d7531ca4-cb43-9cc4-9e9c-d177af3988b6", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:58.274Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "12", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:35337", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:59.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"9e1e32d1-7fb4-9eea-a9b2-32764b5a3519\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:45966 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:59.276", + "timestampUnix": 1708941239276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "9e1e32d1-7fb4-9eea-a9b2-32764b5a3519", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:59.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:45966", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:59.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 5 5 \"-\" \"Go-http-client/1.1\" \"9e1e32d1-7fb4-9eea-a9b2-32764b5a3519\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48578 10.99.45.111:9080 10.244.0.13:42926 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:59.28", + "timestampUnix": 1708941239280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "5", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "9e1e32d1-7fb4-9eea-a9b2-32764b5a3519", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:59.280Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "5", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48578", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:42926", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:53:59.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 14 13 \"10.244.0.1\" \"Go-http-client/1.1\" \"9e1e32d1-7fb4-9eea-a9b2-32764b5a3519\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:40853 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:53:59.273", + "timestampUnix": 1708941239273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "14", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "9e1e32d1-7fb4-9eea-a9b2-32764b5a3519", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:53:59.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "13", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:40853", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:00.284Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 2 2 \"-\" \"Go-http-client/1.1\" \"405adb5d-3028-973a-bb7f-802b6f2deafd\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:45970 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:00.284", + "timestampUnix": 1708941240284, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "405adb5d-3028-973a-bb7f-802b6f2deafd", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:00.284Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:45970", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:00.290Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 7 6 \"-\" \"Go-http-client/1.1\" \"405adb5d-3028-973a-bb7f-802b6f2deafd\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:32944 10.99.45.111:9080 10.244.0.13:42940 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:00.29", + "timestampUnix": 1708941240290, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "7", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "405adb5d-3028-973a-bb7f-802b6f2deafd", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:00.290Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "6", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:32944", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:42940", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:00.274Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 24 23 \"10.244.0.1\" \"Go-http-client/1.1\" \"405adb5d-3028-973a-bb7f-802b6f2deafd\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:39693 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:00.274", + "timestampUnix": 1708941240274, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "24", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "405adb5d-3028-973a-bb7f-802b6f2deafd", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:00.274Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "23", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:39693", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:01.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"37e6c235-fb19-9ad2-95a8-0b1ca28f61d2\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:45978 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:01.276", + "timestampUnix": 1708941241276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "37e6c235-fb19-9ad2-95a8-0b1ca28f61d2", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:01.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:45978", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:01.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 5 5 \"-\" \"Go-http-client/1.1\" \"37e6c235-fb19-9ad2-95a8-0b1ca28f61d2\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48584 10.99.45.111:9080 10.244.0.13:42950 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:01.28", + "timestampUnix": 1708941241280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "5", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "37e6c235-fb19-9ad2-95a8-0b1ca28f61d2", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:01.280Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "5", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48584", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:42950", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:01.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 13 13 \"10.244.0.1\" \"Go-http-client/1.1\" \"37e6c235-fb19-9ad2-95a8-0b1ca28f61d2\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:55295 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:01.273", + "timestampUnix": 1708941241273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "13", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "37e6c235-fb19-9ad2-95a8-0b1ca28f61d2", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:01.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "13", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:55295", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:02.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"72c857dd-476a-919c-868c-dbb10a2a52dd\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:45986 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:02.277", + "timestampUnix": 1708941242277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "72c857dd-476a-919c-868c-dbb10a2a52dd", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:02.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:45986", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:02.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 6 6 \"-\" \"Go-http-client/1.1\" \"72c857dd-476a-919c-868c-dbb10a2a52dd\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:32944 10.99.45.111:9080 10.244.0.13:42952 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:02.281", + "timestampUnix": 1708941242281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "6", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "72c857dd-476a-919c-868c-dbb10a2a52dd", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:02.281Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "6", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:32944", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:42952", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:02.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 15 15 \"10.244.0.1\" \"Go-http-client/1.1\" \"72c857dd-476a-919c-868c-dbb10a2a52dd\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:57129 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:02.273", + "timestampUnix": 1708941242273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "15", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "72c857dd-476a-919c-868c-dbb10a2a52dd", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:02.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "15", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:57129", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:03.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"b7127060-66b8-9b68-b8c1-77e0834a99ab\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:46000 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:03.276", + "timestampUnix": 1708941243276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "b7127060-66b8-9b68-b8c1-77e0834a99ab", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:03.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:46000", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:03.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 6 6 \"-\" \"Go-http-client/1.1\" \"b7127060-66b8-9b68-b8c1-77e0834a99ab\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:32944 10.99.45.111:9080 10.244.0.13:42956 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:03.281", + "timestampUnix": 1708941243281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "6", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "b7127060-66b8-9b68-b8c1-77e0834a99ab", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:03.281Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "6", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:32944", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:42956", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:03.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 16 16 \"10.244.0.1\" \"Go-http-client/1.1\" \"b7127060-66b8-9b68-b8c1-77e0834a99ab\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:43729 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:03.273", + "timestampUnix": 1708941243273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "16", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "b7127060-66b8-9b68-b8c1-77e0834a99ab", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:03.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "16", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:43729", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:04.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"36022395-872e-91c6-bb48-5c1edf9061bb\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:46004 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:04.277", + "timestampUnix": 1708941244277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "36022395-872e-91c6-bb48-5c1edf9061bb", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:04.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:46004", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:04.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 6 6 \"-\" \"Go-http-client/1.1\" \"36022395-872e-91c6-bb48-5c1edf9061bb\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48584 10.99.45.111:9080 10.244.0.13:42958 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:04.28", + "timestampUnix": 1708941244280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "6", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "36022395-872e-91c6-bb48-5c1edf9061bb", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:04.280Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "6", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48584", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:42958", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:04.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 14 14 \"10.244.0.1\" \"Go-http-client/1.1\" \"36022395-872e-91c6-bb48-5c1edf9061bb\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:38113 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:04.273", + "timestampUnix": 1708941244273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "14", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "36022395-872e-91c6-bb48-5c1edf9061bb", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:04.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "14", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:38113", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:05.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"7f24337f-85cf-9167-bea9-1f7afdc6f117\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:46018 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:05.276", + "timestampUnix": 1708941245276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "7f24337f-85cf-9167-bea9-1f7afdc6f117", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:05.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:46018", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:05.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 6 6 \"-\" \"Go-http-client/1.1\" \"7f24337f-85cf-9167-bea9-1f7afdc6f117\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:32944 10.99.45.111:9080 10.244.0.13:42968 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:05.28", + "timestampUnix": 1708941245280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "6", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "7f24337f-85cf-9167-bea9-1f7afdc6f117", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:05.280Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "6", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:32944", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:42968", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:05.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 15 14 \"10.244.0.1\" \"Go-http-client/1.1\" \"7f24337f-85cf-9167-bea9-1f7afdc6f117\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:52717 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:05.273", + "timestampUnix": 1708941245273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "15", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "7f24337f-85cf-9167-bea9-1f7afdc6f117", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:05.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "14", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:52717", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:06.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"878fa4a7-7f87-9b21-97ff-35b94849996e\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:46024 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:06.276", + "timestampUnix": 1708941246276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "878fa4a7-7f87-9b21-97ff-35b94849996e", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:06.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:46024", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:06.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 5 5 \"-\" \"Go-http-client/1.1\" \"878fa4a7-7f87-9b21-97ff-35b94849996e\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48584 10.99.45.111:9080 10.244.0.13:42972 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:06.28", + "timestampUnix": 1708941246280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "5", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "878fa4a7-7f87-9b21-97ff-35b94849996e", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:06.280Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "5", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48584", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:42972", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:06.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 13 13 \"10.244.0.1\" \"Go-http-client/1.1\" \"878fa4a7-7f87-9b21-97ff-35b94849996e\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:52227 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:06.273", + "timestampUnix": 1708941246273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "13", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "878fa4a7-7f87-9b21-97ff-35b94849996e", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:06.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "13", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:52227", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:07.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"29cb007d-688b-9c6f-91ad-28c4f3aceec0\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:38892 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:07.276", + "timestampUnix": 1708941247276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "29cb007d-688b-9c6f-91ad-28c4f3aceec0", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:07.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:38892", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:07.279Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 7 6 \"-\" \"Go-http-client/1.1\" \"29cb007d-688b-9c6f-91ad-28c4f3aceec0\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48584 10.99.45.111:9080 10.244.0.13:48382 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:07.279", + "timestampUnix": 1708941247279, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "7", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "29cb007d-688b-9c6f-91ad-28c4f3aceec0", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:07.279Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "6", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48584", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:48382", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:07.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 14 14 \"10.244.0.1\" \"Go-http-client/1.1\" \"29cb007d-688b-9c6f-91ad-28c4f3aceec0\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:47307 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:07.273", + "timestampUnix": 1708941247273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "14", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "29cb007d-688b-9c6f-91ad-28c4f3aceec0", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:07.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "14", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:47307", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:08.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"0ab4bb30-c83c-9fca-8aea-5377d4716ccd\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:38898 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:08.276", + "timestampUnix": 1708941248276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "0ab4bb30-c83c-9fca-8aea-5377d4716ccd", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:08.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:38898", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:08.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 7 6 \"-\" \"Go-http-client/1.1\" \"0ab4bb30-c83c-9fca-8aea-5377d4716ccd\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:32944 10.99.45.111:9080 10.244.0.13:48388 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:08.281", + "timestampUnix": 1708941248281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "7", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "0ab4bb30-c83c-9fca-8aea-5377d4716ccd", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:08.281Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "6", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:32944", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:48388", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:08.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 16 16 \"10.244.0.1\" \"Go-http-client/1.1\" \"0ab4bb30-c83c-9fca-8aea-5377d4716ccd\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:55565 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:08.273", + "timestampUnix": 1708941248273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "16", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "0ab4bb30-c83c-9fca-8aea-5377d4716ccd", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:08.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "16", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:55565", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:09.284Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 4 3 \"-\" \"Go-http-client/1.1\" \"3638d680-e668-91dc-a991-f03fc634b730\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:38904 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:09.284", + "timestampUnix": 1708941249284, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "4", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "3638d680-e668-91dc-a991-f03fc634b730", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:09.284Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "3", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:38904", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:09.297Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 8 7 \"-\" \"Go-http-client/1.1\" \"3638d680-e668-91dc-a991-f03fc634b730\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48584 10.99.45.111:9080 10.244.0.13:48392 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:09.297", + "timestampUnix": 1708941249297, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "8", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "3638d680-e668-91dc-a991-f03fc634b730", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:09.297Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "7", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48584", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:48392", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:09.274Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 33 32 \"10.244.0.1\" \"Go-http-client/1.1\" \"3638d680-e668-91dc-a991-f03fc634b730\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:59393 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:09.274", + "timestampUnix": 1708941249274, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "33", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "3638d680-e668-91dc-a991-f03fc634b730", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:09.274Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "32", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:59393", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:10.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"6de70e73-2ffc-992d-9ac1-1e885ab6a574\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:38914 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:10.276", + "timestampUnix": 1708941250276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "6de70e73-2ffc-992d-9ac1-1e885ab6a574", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:10.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:38914", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:10.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 6 5 \"-\" \"Go-http-client/1.1\" \"6de70e73-2ffc-992d-9ac1-1e885ab6a574\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:32944 10.99.45.111:9080 10.244.0.13:48394 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:10.28", + "timestampUnix": 1708941250280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "6", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "6de70e73-2ffc-992d-9ac1-1e885ab6a574", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:10.280Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "5", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:32944", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:48394", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:10.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 15 14 \"10.244.0.1\" \"Go-http-client/1.1\" \"6de70e73-2ffc-992d-9ac1-1e885ab6a574\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:45463 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:10.273", + "timestampUnix": 1708941250273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "15", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "6de70e73-2ffc-992d-9ac1-1e885ab6a574", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:10.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "14", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:45463", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:11.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"3990b111-40eb-90cc-9669-d6a534fabcbd\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:38916 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:11.276", + "timestampUnix": 1708941251276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "3990b111-40eb-90cc-9669-d6a534fabcbd", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:11.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:38916", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:11.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 6 5 \"-\" \"Go-http-client/1.1\" \"3990b111-40eb-90cc-9669-d6a534fabcbd\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:50830 10.99.45.111:9080 10.244.0.13:48410 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:11.28", + "timestampUnix": 1708941251280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "6", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "3990b111-40eb-90cc-9669-d6a534fabcbd", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:11.280Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "5", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:50830", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:48410", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:11.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 14 14 \"10.244.0.1\" \"Go-http-client/1.1\" \"3990b111-40eb-90cc-9669-d6a534fabcbd\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:57635 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:11.273", + "timestampUnix": 1708941251273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "14", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "3990b111-40eb-90cc-9669-d6a534fabcbd", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:11.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "14", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:57635", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:12.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"04439ef0-4687-9bcb-9049-107c8d212136\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:38926 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:12.277", + "timestampUnix": 1708941252277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "04439ef0-4687-9bcb-9049-107c8d212136", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:12.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:38926", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:12.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 7 7 \"-\" \"Go-http-client/1.1\" \"04439ef0-4687-9bcb-9049-107c8d212136\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48584 10.99.45.111:9080 10.244.0.13:48412 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:12.281", + "timestampUnix": 1708941252281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "7", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "04439ef0-4687-9bcb-9049-107c8d212136", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:12.281Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "7", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48584", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:48412", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:12.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 17 16 \"10.244.0.1\" \"Go-http-client/1.1\" \"04439ef0-4687-9bcb-9049-107c8d212136\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:54141 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:12.273", + "timestampUnix": 1708941252273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "17", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "04439ef0-4687-9bcb-9049-107c8d212136", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:12.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "16", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:54141", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:13.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"6e8825df-1a68-9cb7-8403-ea618307288e\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:38936 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:13.276", + "timestampUnix": 1708941253276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "6e8825df-1a68-9cb7-8403-ea618307288e", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:13.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:38936", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:13.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 2 2 \"-\" \"Go-http-client/1.1\" \"6e8825df-1a68-9cb7-8403-ea618307288e\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:55880 10.99.45.111:9080 10.244.0.13:48422 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:13.28", + "timestampUnix": 1708941253280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "6e8825df-1a68-9cb7-8403-ea618307288e", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:13.280Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:55880", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:48422", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:13.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 10 10 \"10.244.0.1\" \"Go-http-client/1.1\" \"6e8825df-1a68-9cb7-8403-ea618307288e\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:34053 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:13.273", + "timestampUnix": 1708941253273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "10", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "6e8825df-1a68-9cb7-8403-ea618307288e", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:13.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "10", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:34053", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:14.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"f26b1157-a947-9842-b4f2-b90c06300011\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:38946 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:14.276", + "timestampUnix": 1708941254276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "f26b1157-a947-9842-b4f2-b90c06300011", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:14.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:38946", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:14.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 5 5 \"-\" \"Go-http-client/1.1\" \"f26b1157-a947-9842-b4f2-b90c06300011\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48584 10.99.45.111:9080 10.244.0.13:48438 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:14.28", + "timestampUnix": 1708941254280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "5", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "f26b1157-a947-9842-b4f2-b90c06300011", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:14.280Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "5", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48584", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:48438", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:14.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 15 14 \"10.244.0.1\" \"Go-http-client/1.1\" \"f26b1157-a947-9842-b4f2-b90c06300011\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:38529 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:14.273", + "timestampUnix": 1708941254273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "15", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "f26b1157-a947-9842-b4f2-b90c06300011", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:14.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "14", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:38529", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:15.275Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"e3914026-1737-9c41-8626-20d7c6334853\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:38962 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:15.275", + "timestampUnix": 1708941255275, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "e3914026-1737-9c41-8626-20d7c6334853", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:15.275Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:38962", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:15.279Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 5 5 \"-\" \"Go-http-client/1.1\" \"e3914026-1737-9c41-8626-20d7c6334853\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:50830 10.99.45.111:9080 10.244.0.13:48446 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:15.279", + "timestampUnix": 1708941255279, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "5", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "e3914026-1737-9c41-8626-20d7c6334853", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:15.279Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "5", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:50830", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:48446", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:15.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 13 13 \"10.244.0.1\" \"Go-http-client/1.1\" \"e3914026-1737-9c41-8626-20d7c6334853\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:53571 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:15.273", + "timestampUnix": 1708941255273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "13", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "e3914026-1737-9c41-8626-20d7c6334853", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:15.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "13", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:53571", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:16.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"2c7863e9-184d-924a-83e8-fd11c26e4cd8\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:38978 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:16.277", + "timestampUnix": 1708941256277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "2c7863e9-184d-924a-83e8-fd11c26e4cd8", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:16.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:38978", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:16.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 6 5 \"-\" \"Go-http-client/1.1\" \"2c7863e9-184d-924a-83e8-fd11c26e4cd8\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:50830 10.99.45.111:9080 10.244.0.13:48452 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:16.281", + "timestampUnix": 1708941256281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "6", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "2c7863e9-184d-924a-83e8-fd11c26e4cd8", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:16.281Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "5", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:50830", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:48452", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:16.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 15 15 \"10.244.0.1\" \"Go-http-client/1.1\" \"2c7863e9-184d-924a-83e8-fd11c26e4cd8\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:32825 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:16.273", + "timestampUnix": 1708941256273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "15", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "2c7863e9-184d-924a-83e8-fd11c26e4cd8", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:16.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "15", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:32825", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:17.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"166c2feb-3d8d-9ac4-b837-e7a7775364dc\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:45918 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:17.276", + "timestampUnix": 1708941257276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "166c2feb-3d8d-9ac4-b837-e7a7775364dc", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:17.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:45918", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:17.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 6 5 \"-\" \"Go-http-client/1.1\" \"166c2feb-3d8d-9ac4-b837-e7a7775364dc\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48578 10.99.45.111:9080 10.244.0.13:34690 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:17.28", + "timestampUnix": 1708941257280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "6", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "166c2feb-3d8d-9ac4-b837-e7a7775364dc", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:17.280Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "5", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48578", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:34690", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:17.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 14 13 \"10.244.0.1\" \"Go-http-client/1.1\" \"166c2feb-3d8d-9ac4-b837-e7a7775364dc\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:43473 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:17.273", + "timestampUnix": 1708941257273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "14", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "166c2feb-3d8d-9ac4-b837-e7a7775364dc", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:17.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "13", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:43473", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:18.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"7c3cff33-2ced-9f7b-97df-71c4995f906f\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:45932 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:18.276", + "timestampUnix": 1708941258276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "7c3cff33-2ced-9f7b-97df-71c4995f906f", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:18.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:45932", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:18.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 6 5 \"-\" \"Go-http-client/1.1\" \"7c3cff33-2ced-9f7b-97df-71c4995f906f\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48584 10.99.45.111:9080 10.244.0.13:34702 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:18.281", + "timestampUnix": 1708941258281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "6", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "7c3cff33-2ced-9f7b-97df-71c4995f906f", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:18.281Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "5", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48584", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:34702", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:18.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 15 14 \"10.244.0.1\" \"Go-http-client/1.1\" \"7c3cff33-2ced-9f7b-97df-71c4995f906f\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:50065 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:18.273", + "timestampUnix": 1708941258273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "15", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "7c3cff33-2ced-9f7b-97df-71c4995f906f", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:18.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "14", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:50065", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:19.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"c73a28ab-6317-90fc-b747-7e076710d842\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:45946 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:19.276", + "timestampUnix": 1708941259276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "c73a28ab-6317-90fc-b747-7e076710d842", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:19.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:45946", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:19.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 6 6 \"-\" \"Go-http-client/1.1\" \"c73a28ab-6317-90fc-b747-7e076710d842\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:32944 10.99.45.111:9080 10.244.0.13:34706 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:19.28", + "timestampUnix": 1708941259280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "6", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "c73a28ab-6317-90fc-b747-7e076710d842", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:19.280Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "6", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:32944", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:34706", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:19.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 14 14 \"10.244.0.1\" \"Go-http-client/1.1\" \"c73a28ab-6317-90fc-b747-7e076710d842\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:56709 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:19.273", + "timestampUnix": 1708941259273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "14", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "c73a28ab-6317-90fc-b747-7e076710d842", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:19.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "14", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:56709", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:20.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"825b5973-aa69-94b2-af87-c469c65a14fd\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:45962 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:20.277", + "timestampUnix": 1708941260277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "825b5973-aa69-94b2-af87-c469c65a14fd", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:20.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:45962", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:20.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 2 2 \"-\" \"Go-http-client/1.1\" \"825b5973-aa69-94b2-af87-c469c65a14fd\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:55880 10.99.45.111:9080 10.244.0.13:34708 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:20.281", + "timestampUnix": 1708941260281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "825b5973-aa69-94b2-af87-c469c65a14fd", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:20.281Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:55880", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:34708", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:20.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 10 10 \"10.244.0.1\" \"Go-http-client/1.1\" \"825b5973-aa69-94b2-af87-c469c65a14fd\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:43509 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:20.273", + "timestampUnix": 1708941260273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "10", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "825b5973-aa69-94b2-af87-c469c65a14fd", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:20.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "10", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:43509", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:21.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"c4c7eb68-824e-9ce1-bbd8-45dcdbb04b20\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:45976 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:21.276", + "timestampUnix": 1708941261276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "c4c7eb68-824e-9ce1-bbd8-45dcdbb04b20", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:21.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:45976", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:21.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 358 2 2 \"-\" \"Go-http-client/1.1\" \"c4c7eb68-824e-9ce1-bbd8-45dcdbb04b20\" \"reviews:9080\" \"10.244.0.14:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:55880 10.99.45.111:9080 10.244.0.13:34718 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:21.28", + "timestampUnix": 1708941261280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "358", + "duration": "2", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "c4c7eb68-824e-9ce1-bbd8-45dcdbb04b20", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:21.280Z", + "upstream_service": "10.244.0.14:9080", + "upstream_service_time": "2", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:55880", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:34718", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:21.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 4294 10 10 \"10.244.0.1\" \"Go-http-client/1.1\" \"c4c7eb68-824e-9ce1-bbd8-45dcdbb04b20\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:52477 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:21.273", + "timestampUnix": 1708941261273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "4294", + "duration": "10", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "c4c7eb68-824e-9ce1-bbd8-45dcdbb04b20", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:21.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "10", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:52477", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:22.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"b5c2ff04-7bbb-94d2-95fc-8e85d74fef0e\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:45982 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:22.276", + "timestampUnix": 1708941262276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "b5c2ff04-7bbb-94d2-95fc-8e85d74fef0e", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:22.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:45982", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:22.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 6 6 \"-\" \"Go-http-client/1.1\" \"b5c2ff04-7bbb-94d2-95fc-8e85d74fef0e\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48578 10.99.45.111:9080 10.244.0.13:34730 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:22.28", + "timestampUnix": 1708941262280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "6", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "b5c2ff04-7bbb-94d2-95fc-8e85d74fef0e", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:22.280Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "6", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48578", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:34730", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:22.273Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 14 14 \"10.244.0.1\" \"Go-http-client/1.1\" \"b5c2ff04-7bbb-94d2-95fc-8e85d74fef0e\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:41637 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:22.273", + "timestampUnix": 1708941262273, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "14", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "b5c2ff04-7bbb-94d2-95fc-8e85d74fef0e", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:22.273Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "14", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:41637", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:23.285Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 6 5 \"-\" \"Go-http-client/1.1\" \"7d13494a-3d0b-94c1-8817-22358f3ce520\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:45988 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:23.285", + "timestampUnix": 1708941263285, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "6", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "7d13494a-3d0b-94c1-8817-22358f3ce520", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:23.285Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "5", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:45988", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:23.301Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 10 9 \"-\" \"Go-http-client/1.1\" \"7d13494a-3d0b-94c1-8817-22358f3ce520\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:32944 10.99.45.111:9080 10.244.0.13:34742 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:23.301", + "timestampUnix": 1708941263301, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "10", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "7d13494a-3d0b-94c1-8817-22358f3ce520", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:23.301Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "9", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:32944", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:34742", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:23.274Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 38 37 \"10.244.0.1\" \"Go-http-client/1.1\" \"7d13494a-3d0b-94c1-8817-22358f3ce520\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:56723 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:23.274", + "timestampUnix": 1708941263274, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "38", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "7d13494a-3d0b-94c1-8817-22358f3ce520", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:23.274Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "37", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:56723", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:24.278Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"5ec03791-b423-98a0-9b72-7eb845c25c54\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:60722 10.109.148.19:9080 10.244.0.13:45998 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:24.278", + "timestampUnix": 1708941264278, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "5ec03791-b423-98a0-9b72-7eb845c25c54", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:24.278Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:60722", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:45998", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:24.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 6 5 \"-\" \"Go-http-client/1.1\" \"5ec03791-b423-98a0-9b72-7eb845c25c54\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:32944 10.99.45.111:9080 10.244.0.13:34752 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:24.281", + "timestampUnix": 1708941264281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "6", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "5ec03791-b423-98a0-9b72-7eb845c25c54", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:24.281Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "5", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:32944", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:34752", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:24.274Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5294 15 15 \"10.244.0.1\" \"Go-http-client/1.1\" \"5ec03791-b423-98a0-9b72-7eb845c25c54\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:35649 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:24.274", + "timestampUnix": 1708941264274, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5294", + "duration": "15", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "5ec03791-b423-98a0-9b72-7eb845c25c54", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:24.274Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "15", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:35649", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:25.277Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"c588bb09-dd7d-9d54-ad88-f8ffc813f8a1\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:46014 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:25.277", + "timestampUnix": 1708941265277, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "c588bb09-dd7d-9d54-ad88-f8ffc813f8a1", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:25.277Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:46014", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:25.281Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 437 6 6 \"-\" \"Go-http-client/1.1\" \"c588bb09-dd7d-9d54-ad88-f8ffc813f8a1\" \"reviews:9080\" \"10.244.0.12:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:48584 10.99.45.111:9080 10.244.0.13:34766 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:25.281", + "timestampUnix": 1708941265281, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "437", + "duration": "6", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "c588bb09-dd7d-9d54-ad88-f8ffc813f8a1", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:25.281Z", + "upstream_service": "10.244.0.12:9080", + "upstream_service_time": "6", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:48584", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:34766", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:25.274Z] \"GET /productpage HTTP/1.1\" 200 - via_upstream - \"-\" 0 5289 16 16 \"10.244.0.1\" \"Go-http-client/1.1\" \"c588bb09-dd7d-9d54-ad88-f8ffc813f8a1\" \"192.168.49.2:30876\" \"10.244.0.13:9080\" inbound|9080|| 127.0.0.6:38341 10.244.0.13:9080 10.244.0.1:0 outbound_.9080_._.productpage.bookinfo.svc.cluster.local default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:25.274", + "timestampUnix": 1708941265274, + "accessLog": { + "authority": "192.168.49.2:30876", + "bytes_received": "0", + "bytes_sent": "5289", + "duration": "16", + "forwarded_for": "10.244.0.1", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "c588bb09-dd7d-9d54-ad88-f8ffc813f8a1", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:25.274Z", + "upstream_service": "10.244.0.13:9080", + "upstream_service_time": "16", + "upstream_cluster": "inbound|9080||", + "upstream_local": "127.0.0.6:38341", + "downstream_local": "10.244.0.13:9080", + "downstream_remote": "10.244.0.1:0", + "requested_server": "outbound_.9080_._.productpage.bookinfo.svc.cluster.local", + "route_name": "default", + "uri_path": "/productpage", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:26.276Z] \"GET /details/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 178 1 1 \"-\" \"Go-http-client/1.1\" \"ed66ccc1-bdd1-9677-acad-753e18a62198\" \"details:9080\" \"10.244.0.10:9080\" outbound|9080||details.bookinfo.svc.cluster.local 10.244.0.13:58492 10.109.148.19:9080 10.244.0.13:46028 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:26.276", + "timestampUnix": 1708941266276, + "accessLog": { + "authority": "details:9080", + "bytes_received": "0", + "bytes_sent": "178", + "duration": "1", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "ed66ccc1-bdd1-9677-acad-753e18a62198", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:26.276Z", + "upstream_service": "10.244.0.10:9080", + "upstream_service_time": "1", + "upstream_cluster": "outbound|9080||details.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:58492", + "downstream_local": "10.109.148.19:9080", + "downstream_remote": "10.244.0.13:46028", + "requested_server": "-", + "route_name": "default", + "uri_path": "/details/0", + "user_agent": "Go-http-client/1.1" + } + }, + { + "message": "[2024-02-26T09:54:26.280Z] \"GET /reviews/0 HTTP/1.1\" 200 - via_upstream - \"-\" 0 442 5 5 \"-\" \"Go-http-client/1.1\" \"ed66ccc1-bdd1-9677-acad-753e18a62198\" \"reviews:9080\" \"10.244.0.15:9080\" outbound|9080||reviews.bookinfo.svc.cluster.local 10.244.0.13:32944 10.99.45.111:9080 10.244.0.13:34774 - default", + "severity": "INFO", + "timestamp": "2024-02-26 09:54:26.28", + "timestampUnix": 1708941266280, + "accessLog": { + "authority": "reviews:9080", + "bytes_received": "0", + "bytes_sent": "442", + "duration": "5", + "forwarded_for": "-", + "method": "GET", + "protocol": "HTTP/1.1", + "request_id": "ed66ccc1-bdd1-9677-acad-753e18a62198", + "response_flags": "- via_upstream -", + "status_code": "200", + "timestamp": "2024-02-26T09:54:26.280Z", + "upstream_service": "10.244.0.15:9080", + "upstream_service_time": "5", + "upstream_cluster": "outbound|9080||reviews.bookinfo.svc.cluster.local", + "upstream_local": "10.244.0.13:32944", + "downstream_local": "10.99.45.111:9080", + "downstream_remote": "10.244.0.13:34774", + "requested_server": "-", + "route_name": "default", + "uri_path": "/reviews/0", + "user_agent": "Go-http-client/1.1" + } + } + ], + "linesTruncated": true +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/istioStatus.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/istioStatus.json new file mode 100644 index 0000000000..accf21fb5c --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/istioStatus.json @@ -0,0 +1,7 @@ +[ + { "name": "istiod-7548d4ff85-fj8tb", "status": "Healthy", "is_core": true }, + { "name": "istiod-2", "status": "NotFound", "is_core": true }, + { "name": "istiod-3", "status": "Unhealthy", "is_core": true }, + { "name": "istiod-4", "status": "Unreachable", "is_core": true }, + { "name": "istiod-5", "status": "NotReady", "is_core": true } +] diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/istioValidations.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/istioValidations.json new file mode 100644 index 0000000000..612b8f42d7 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/istioValidations.json @@ -0,0 +1,44 @@ +{ + "Kubernetes": { + "bookinfo": { + "errors": 1, + "objectCount": 2, + "warnings": 1 + }, + "default": { + "errors": 0, + "objectCount": 0, + "warnings": 0 + }, + "hostpath-provisioner": { + "errors": 0, + "objectCount": 0, + "warnings": 0 + }, + "istio-system": { + "errors": 0, + "objectCount": 0, + "warnings": 0 + }, + "kiali": { + "errors": 0, + "objectCount": 0, + "warnings": 0 + }, + "travel-agency": { + "errors": 0, + "objectCount": 2, + "warnings": 0 + }, + "travel-control": { + "errors": 0, + "objectCount": 1, + "warnings": 1 + }, + "travel-portal": { + "errors": 0, + "objectCount": 0, + "warnings": 0 + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/logSpan.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/logSpan.json new file mode 100644 index 0000000000..92d2c76d0a --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/logSpan.json @@ -0,0 +1,64122 @@ +[ + { + "traceID": "e90f7b2f7e67702a2a302ee34c7652a8", + "spanID": "a3b5978b12e538c6", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "e90f7b2f7e67702a2a302ee34c7652a8", + "spanID": "2a302ee34c7652a8" + } + ], + "startTime": 1708939371377105, + "duration": 11506, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "b1b8802d-0d3e-9be0-a475-38335ec577a0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "e90f7b2f7e67702a2a302ee34c7652a8", + "spanID": "7efeef7fdd05a1fd", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "e90f7b2f7e67702a2a302ee34c7652a8", + "spanID": "a3b5978b12e538c6" + } + ], + "startTime": 1708939371379840, + "duration": 1535, + "tags": [ + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "b1b8802d-0d3e-9be0-a475-38335ec577a0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "e90f7b2f7e67702a2a302ee34c7652a8", + "spanID": "b73f2fe4550b78b2", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "e90f7b2f7e67702a2a302ee34c7652a8", + "spanID": "a3b5978b12e538c6" + } + ], + "startTime": 1708939371383684, + "duration": 3215, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "b1b8802d-0d3e-9be0-a475-38335ec577a0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "a08d526b9094f68a302c56b5aa72ecee", + "spanID": "a8c590e81cc47a74", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a08d526b9094f68a302c56b5aa72ecee", + "spanID": "302c56b5aa72ecee" + } + ], + "startTime": 1708939402376573, + "duration": 11472, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8fe7b154-bded-947d-b6c6-c2055ed27334" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "a08d526b9094f68a302c56b5aa72ecee", + "spanID": "3186d8fdd6c687b2", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a08d526b9094f68a302c56b5aa72ecee", + "spanID": "a8c590e81cc47a74" + } + ], + "startTime": 1708939402379693, + "duration": 1462, + "tags": [ + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8fe7b154-bded-947d-b6c6-c2055ed27334" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "a08d526b9094f68a302c56b5aa72ecee", + "spanID": "0f5f8909ca4eb4c1", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a08d526b9094f68a302c56b5aa72ecee", + "spanID": "a8c590e81cc47a74" + } + ], + "startTime": 1708939402383686, + "duration": 2686, + "tags": [ + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8fe7b154-bded-947d-b6c6-c2055ed27334" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "da52c4d5c8446db7caff81dadec07901", + "spanID": "780c43d676d3bbe4", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "da52c4d5c8446db7caff81dadec07901", + "spanID": "caff81dadec07901" + } + ], + "startTime": 1708939401376769, + "duration": 21296, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "866037b8-40a7-9a4e-a860-91032967de6b" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "da52c4d5c8446db7caff81dadec07901", + "spanID": "51c095ac70c77e8d", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "da52c4d5c8446db7caff81dadec07901", + "spanID": "780c43d676d3bbe4" + } + ], + "startTime": 1708939401382079, + "duration": 2968, + "tags": [ + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "866037b8-40a7-9a4e-a860-91032967de6b" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "da52c4d5c8446db7caff81dadec07901", + "spanID": "0a21f5ca337397e7", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "da52c4d5c8446db7caff81dadec07901", + "spanID": "780c43d676d3bbe4" + } + ], + "startTime": 1708939401389773, + "duration": 4823, + "tags": [ + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "866037b8-40a7-9a4e-a860-91032967de6b" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "229d603a181718e8c9d214b4efcec203", + "spanID": "ab96c9698d7c272a", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "229d603a181718e8c9d214b4efcec203", + "spanID": "c9d214b4efcec203" + } + ], + "startTime": 1708939386376564, + "duration": 12909, + "tags": [ + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8d351194-4096-931a-9013-bce501df49ae" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "229d603a181718e8c9d214b4efcec203", + "spanID": "5a03466000acfa94", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "229d603a181718e8c9d214b4efcec203", + "spanID": "ab96c9698d7c272a" + } + ], + "startTime": 1708939386379973, + "duration": 1700, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8d351194-4096-931a-9013-bce501df49ae" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "229d603a181718e8c9d214b4efcec203", + "spanID": "ded0c64c5eed6962", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "229d603a181718e8c9d214b4efcec203", + "spanID": "ab96c9698d7c272a" + } + ], + "startTime": 1708939386385035, + "duration": 2787, + "tags": [ + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8d351194-4096-931a-9013-bce501df49ae" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "b63c051d470eb8027c912e05425193ea", + "spanID": "35d6964cdfcb6424", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "b63c051d470eb8027c912e05425193ea", + "spanID": "7c912e05425193ea" + } + ], + "startTime": 1708939364376561, + "duration": 14481, + "tags": [ + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8b767d5c-665d-90d7-b81e-7c6cdf7f7440" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "b63c051d470eb8027c912e05425193ea", + "spanID": "54aa7d734b86d0e2", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "b63c051d470eb8027c912e05425193ea", + "spanID": "35d6964cdfcb6424" + } + ], + "startTime": 1708939364380460, + "duration": 1332, + "tags": [ + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8b767d5c-665d-90d7-b81e-7c6cdf7f7440" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "b63c051d470eb8027c912e05425193ea", + "spanID": "fd646295b95b0542", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "b63c051d470eb8027c912e05425193ea", + "spanID": "35d6964cdfcb6424" + } + ], + "startTime": 1708939364385543, + "duration": 3296, + "tags": [ + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8b767d5c-665d-90d7-b81e-7c6cdf7f7440" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "d4ccdfc00d63ed779e2bccef18cb294e", + "spanID": "8e06fcb708431dbb", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "d4ccdfc00d63ed779e2bccef18cb294e", + "spanID": "9e2bccef18cb294e" + } + ], + "startTime": 1708939360377231, + "duration": 11522, + "tags": [ + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "e8b47c8f-ec2d-9fb9-8827-93103fcf51c0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "d4ccdfc00d63ed779e2bccef18cb294e", + "spanID": "e35c78569b3b5017", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "d4ccdfc00d63ed779e2bccef18cb294e", + "spanID": "8e06fcb708431dbb" + } + ], + "startTime": 1708939360380135, + "duration": 1337, + "tags": [ + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "e8b47c8f-ec2d-9fb9-8827-93103fcf51c0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "d4ccdfc00d63ed779e2bccef18cb294e", + "spanID": "1af69989a527c7a2", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "d4ccdfc00d63ed779e2bccef18cb294e", + "spanID": "8e06fcb708431dbb" + } + ], + "startTime": 1708939360383841, + "duration": 2871, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "e8b47c8f-ec2d-9fb9-8827-93103fcf51c0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "a22b4c9771b27f32caf9f55be22b6022", + "spanID": "7eb6ff4846bd7156", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a22b4c9771b27f32caf9f55be22b6022", + "spanID": "caf9f55be22b6022" + } + ], + "startTime": 1708939387377596, + "duration": 21830, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "77b503bb-ba8d-97f6-86cb-e90d4ef40357" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "a22b4c9771b27f32caf9f55be22b6022", + "spanID": "e0083e8c09590a89", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a22b4c9771b27f32caf9f55be22b6022", + "spanID": "7eb6ff4846bd7156" + } + ], + "startTime": 1708939387388258, + "duration": 4297, + "tags": [ + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "77b503bb-ba8d-97f6-86cb-e90d4ef40357" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "a22b4c9771b27f32caf9f55be22b6022", + "spanID": "6b506be5c81eb717", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a22b4c9771b27f32caf9f55be22b6022", + "spanID": "7eb6ff4846bd7156" + } + ], + "startTime": 1708939387396915, + "duration": 1186, + "tags": [ + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "77b503bb-ba8d-97f6-86cb-e90d4ef40357" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "7ff196474b28ecc6483c70ef15a0a9ec", + "spanID": "19b77b6a8ac76719", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "7ff196474b28ecc6483c70ef15a0a9ec", + "spanID": "483c70ef15a0a9ec" + } + ], + "startTime": 1708939367376660, + "duration": 13728, + "tags": [ + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "34b1190c-ed22-91cc-ae52-8374f2c7f1a0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "7ff196474b28ecc6483c70ef15a0a9ec", + "spanID": "2eeaf6ec1ee9d4e1", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "7ff196474b28ecc6483c70ef15a0a9ec", + "spanID": "19b77b6a8ac76719" + } + ], + "startTime": 1708939367380246, + "duration": 1855, + "tags": [ + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "34b1190c-ed22-91cc-ae52-8374f2c7f1a0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "7ff196474b28ecc6483c70ef15a0a9ec", + "spanID": "0b21ed825e9b281b", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "7ff196474b28ecc6483c70ef15a0a9ec", + "spanID": "19b77b6a8ac76719" + } + ], + "startTime": 1708939367385203, + "duration": 3262, + "tags": [ + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "34b1190c-ed22-91cc-ae52-8374f2c7f1a0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "b199d73d2de11d3c020971279bd88b76", + "spanID": "38146f6c42090804", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "b199d73d2de11d3c020971279bd88b76", + "spanID": "020971279bd88b76" + } + ], + "startTime": 1708939365376597, + "duration": 13277, + "tags": [ + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "7991a821-a6dc-989c-b38a-e40b2d9d2177" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "b199d73d2de11d3c020971279bd88b76", + "spanID": "09f094ae8c052d85", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "b199d73d2de11d3c020971279bd88b76", + "spanID": "38146f6c42090804" + } + ], + "startTime": 1708939365380656, + "duration": 1645, + "tags": [ + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "7991a821-a6dc-989c-b38a-e40b2d9d2177" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "b199d73d2de11d3c020971279bd88b76", + "spanID": "366c926950a416f8", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "b199d73d2de11d3c020971279bd88b76", + "spanID": "38146f6c42090804" + } + ], + "startTime": 1708939365385119, + "duration": 3100, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "7991a821-a6dc-989c-b38a-e40b2d9d2177" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "79d65f821ad2b8a61ef9d98218cb7f42", + "spanID": "dc67abdfccf200b4", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "79d65f821ad2b8a61ef9d98218cb7f42", + "spanID": "1ef9d98218cb7f42" + } + ], + "startTime": 1708939409376681, + "duration": 14562, + "tags": [ + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "a2fff0f4-6ed7-966e-9d5f-ceefbdcf489a" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "79d65f821ad2b8a61ef9d98218cb7f42", + "spanID": "32733cd6362753f8", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "79d65f821ad2b8a61ef9d98218cb7f42", + "spanID": "dc67abdfccf200b4" + } + ], + "startTime": 1708939409380318, + "duration": 1727, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "a2fff0f4-6ed7-966e-9d5f-ceefbdcf489a" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "79d65f821ad2b8a61ef9d98218cb7f42", + "spanID": "a569028fbf6b6967", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "79d65f821ad2b8a61ef9d98218cb7f42", + "spanID": "dc67abdfccf200b4" + } + ], + "startTime": 1708939409384964, + "duration": 3675, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "a2fff0f4-6ed7-966e-9d5f-ceefbdcf489a" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "552b803ec64e391457187c9af78121de", + "spanID": "65295eadbb979dd9", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "552b803ec64e391457187c9af78121de", + "spanID": "57187c9af78121de" + } + ], + "startTime": 1708939395376630, + "duration": 13761, + "tags": [ + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "1e3c7327-5e7a-9966-b61e-036a2cbdcb53" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "552b803ec64e391457187c9af78121de", + "spanID": "f0803a75fe99ecab", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "552b803ec64e391457187c9af78121de", + "spanID": "65295eadbb979dd9" + } + ], + "startTime": 1708939395379981, + "duration": 1858, + "tags": [ + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "1e3c7327-5e7a-9966-b61e-036a2cbdcb53" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "552b803ec64e391457187c9af78121de", + "spanID": "9a592335a04b9acd", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "552b803ec64e391457187c9af78121de", + "spanID": "65295eadbb979dd9" + } + ], + "startTime": 1708939395384674, + "duration": 3800, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "1e3c7327-5e7a-9966-b61e-036a2cbdcb53" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "8da83bec91fd2dd093fa1adf56b8744e", + "spanID": "befd8872da74c1b1", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "8da83bec91fd2dd093fa1adf56b8744e", + "spanID": "93fa1adf56b8744e" + } + ], + "startTime": 1708939384377523, + "duration": 19059, + "tags": [ + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "46001b5e-ad7f-9d65-ae9a-473e1d300dab" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "8da83bec91fd2dd093fa1adf56b8744e", + "spanID": "97b6e661f3a287e9", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "8da83bec91fd2dd093fa1adf56b8744e", + "spanID": "befd8872da74c1b1" + } + ], + "startTime": 1708939384387864, + "duration": 2308, + "tags": [ + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "46001b5e-ad7f-9d65-ae9a-473e1d300dab" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "8da83bec91fd2dd093fa1adf56b8744e", + "spanID": "e7561c96dbafcc8c", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "8da83bec91fd2dd093fa1adf56b8744e", + "spanID": "befd8872da74c1b1" + } + ], + "startTime": 1708939384393446, + "duration": 1082, + "tags": [ + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "46001b5e-ad7f-9d65-ae9a-473e1d300dab" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "46d5aee1a6a9d4ffb42a8b4833ef7146", + "spanID": "5b07c4df7f5ae135", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "46d5aee1a6a9d4ffb42a8b4833ef7146", + "spanID": "b42a8b4833ef7146" + } + ], + "startTime": 1708939356376514, + "duration": 13957, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "5f6b3abc-5677-9902-b70d-3d71fbf00ec6" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "46d5aee1a6a9d4ffb42a8b4833ef7146", + "spanID": "ad005038f87769f9", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "46d5aee1a6a9d4ffb42a8b4833ef7146", + "spanID": "5b07c4df7f5ae135" + } + ], + "startTime": 1708939356379643, + "duration": 1957, + "tags": [ + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "5f6b3abc-5677-9902-b70d-3d71fbf00ec6" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "46d5aee1a6a9d4ffb42a8b4833ef7146", + "spanID": "b5d7b45d81503728", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "46d5aee1a6a9d4ffb42a8b4833ef7146", + "spanID": "5b07c4df7f5ae135" + } + ], + "startTime": 1708939356384408, + "duration": 3549, + "tags": [ + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "5f6b3abc-5677-9902-b70d-3d71fbf00ec6" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "e5cf3e96bbc9d3dadfec3265bf4957a6", + "spanID": "c84a05a4cfc268f5", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "e5cf3e96bbc9d3dadfec3265bf4957a6", + "spanID": "dfec3265bf4957a6" + } + ], + "startTime": 1708939354376542, + "duration": 11093, + "tags": [ + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "43548773-4a7b-9243-811a-275578ef08a5" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "e5cf3e96bbc9d3dadfec3265bf4957a6", + "spanID": "bd5db4257f8d6270", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "e5cf3e96bbc9d3dadfec3265bf4957a6", + "spanID": "c84a05a4cfc268f5" + } + ], + "startTime": 1708939354379466, + "duration": 1301, + "tags": [ + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "43548773-4a7b-9243-811a-275578ef08a5" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "e5cf3e96bbc9d3dadfec3265bf4957a6", + "spanID": "85afa3b9de5968f9", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "e5cf3e96bbc9d3dadfec3265bf4957a6", + "spanID": "c84a05a4cfc268f5" + } + ], + "startTime": 1708939354383231, + "duration": 2852, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "43548773-4a7b-9243-811a-275578ef08a5" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "a2a0e1121c94facf63106c0edf03b4b4", + "spanID": "4a4847d36153b75d", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a2a0e1121c94facf63106c0edf03b4b4", + "spanID": "63106c0edf03b4b4" + } + ], + "startTime": 1708939423376763, + "duration": 15339, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "b53481cd-8fca-99b2-906a-0f68a712915d" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "a2a0e1121c94facf63106c0edf03b4b4", + "spanID": "3e332c6ed27361bf", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a2a0e1121c94facf63106c0edf03b4b4", + "spanID": "4a4847d36153b75d" + } + ], + "startTime": 1708939423380183, + "duration": 1965, + "tags": [ + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "b53481cd-8fca-99b2-906a-0f68a712915d" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "a2a0e1121c94facf63106c0edf03b4b4", + "spanID": "b72c860db4d0e6c8", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a2a0e1121c94facf63106c0edf03b4b4", + "spanID": "4a4847d36153b75d" + } + ], + "startTime": 1708939423385514, + "duration": 3847, + "tags": [ + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "b53481cd-8fca-99b2-906a-0f68a712915d" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "1fa474fbc50b6bc8299d02a2e7deb327", + "spanID": "d1ae99e4291e9eeb", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "1fa474fbc50b6bc8299d02a2e7deb327", + "spanID": "299d02a2e7deb327" + } + ], + "startTime": 1708939420376567, + "duration": 12121, + "tags": [ + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "0af13113-d91d-9077-8756-f98beeffd579" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "1fa474fbc50b6bc8299d02a2e7deb327", + "spanID": "36099a8a8fce3703", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "1fa474fbc50b6bc8299d02a2e7deb327", + "spanID": "d1ae99e4291e9eeb" + } + ], + "startTime": 1708939420379622, + "duration": 1371, + "tags": [ + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "0af13113-d91d-9077-8756-f98beeffd579" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "1fa474fbc50b6bc8299d02a2e7deb327", + "spanID": "74b7139e2e76da4f", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "1fa474fbc50b6bc8299d02a2e7deb327", + "spanID": "d1ae99e4291e9eeb" + } + ], + "startTime": 1708939420383826, + "duration": 3256, + "tags": [ + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "0af13113-d91d-9077-8756-f98beeffd579" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "de47c7e9653b269579b01ab69d1d1369", + "spanID": "75ad337494388a47", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "de47c7e9653b269579b01ab69d1d1369", + "spanID": "79b01ab69d1d1369" + } + ], + "startTime": 1708939417377102, + "duration": 13505, + "tags": [ + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "dfb97aac-1f3f-9cf9-9fd7-9504c6ce35d6" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "de47c7e9653b269579b01ab69d1d1369", + "spanID": "20a7e9aafa63c542", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "de47c7e9653b269579b01ab69d1d1369", + "spanID": "75ad337494388a47" + } + ], + "startTime": 1708939417381129, + "duration": 1429, + "tags": [ + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "dfb97aac-1f3f-9cf9-9fd7-9504c6ce35d6" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "de47c7e9653b269579b01ab69d1d1369", + "spanID": "99c60bf8c65a75eb", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "de47c7e9653b269579b01ab69d1d1369", + "spanID": "75ad337494388a47" + } + ], + "startTime": 1708939417385906, + "duration": 3026, + "tags": [ + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "dfb97aac-1f3f-9cf9-9fd7-9504c6ce35d6" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "f8d909a143daf750f2796f8f6f2bb563", + "spanID": "0778d2b29b643225", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "f8d909a143daf750f2796f8f6f2bb563", + "spanID": "f2796f8f6f2bb563" + } + ], + "startTime": 1708939349376481, + "duration": 8781, + "tags": [ + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "d1447bd7-8c19-9754-a168-67d4400b8466" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "f8d909a143daf750f2796f8f6f2bb563", + "spanID": "b31fc849fd7b58af", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "f8d909a143daf750f2796f8f6f2bb563", + "spanID": "0778d2b29b643225" + } + ], + "startTime": 1708939349379388, + "duration": 1200, + "tags": [ + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "d1447bd7-8c19-9754-a168-67d4400b8466" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "f8d909a143daf750f2796f8f6f2bb563", + "spanID": "b71c75f3f4e28db9", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "f8d909a143daf750f2796f8f6f2bb563", + "spanID": "0778d2b29b643225" + } + ], + "startTime": 1708939349382906, + "duration": 914, + "tags": [ + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "d1447bd7-8c19-9754-a168-67d4400b8466" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "91619d25ce479f1f4b03e1054299497d", + "spanID": "037432dc76fffde0", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "91619d25ce479f1f4b03e1054299497d", + "spanID": "4b03e1054299497d" + } + ], + "startTime": 1708939336376721, + "duration": 30447, + "tags": [ + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "4f6cf07c-7e42-90de-a822-54ced0730dbf" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "91619d25ce479f1f4b03e1054299497d", + "spanID": "7bc088ec03c142b2", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "91619d25ce479f1f4b03e1054299497d", + "spanID": "037432dc76fffde0" + } + ], + "startTime": 1708939336382508, + "duration": 9888, + "tags": [ + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "4f6cf07c-7e42-90de-a822-54ced0730dbf" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "91619d25ce479f1f4b03e1054299497d", + "spanID": "35d1a0c75aa33fd3", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "91619d25ce479f1f4b03e1054299497d", + "spanID": "037432dc76fffde0" + } + ], + "startTime": 1708939336398504, + "duration": 1735, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "4f6cf07c-7e42-90de-a822-54ced0730dbf" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "573d0b74b1daa5e604eb7aed24fbb535", + "spanID": "eebcdf11032bad18", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "573d0b74b1daa5e604eb7aed24fbb535", + "spanID": "04eb7aed24fbb535" + } + ], + "startTime": 1708939411376848, + "duration": 19570, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "72efed78-9568-98d3-98db-7caf26b63570" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "573d0b74b1daa5e604eb7aed24fbb535", + "spanID": "92e4cd9514c8b5c4", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "573d0b74b1daa5e604eb7aed24fbb535", + "spanID": "eebcdf11032bad18" + } + ], + "startTime": 1708939411382843, + "duration": 2135, + "tags": [ + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "72efed78-9568-98d3-98db-7caf26b63570" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "573d0b74b1daa5e604eb7aed24fbb535", + "spanID": "d97bcee860cf8926", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "573d0b74b1daa5e604eb7aed24fbb535", + "spanID": "eebcdf11032bad18" + } + ], + "startTime": 1708939411389518, + "duration": 4267, + "tags": [ + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "72efed78-9568-98d3-98db-7caf26b63570" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "32493ca86f7cccf67c107aa120c83d96", + "spanID": "bc88dbf7508c76a7", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "32493ca86f7cccf67c107aa120c83d96", + "spanID": "7c107aa120c83d96" + } + ], + "startTime": 1708939363376581, + "duration": 17086, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "c8ee1a23-09a2-9893-8712-315693160601" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "32493ca86f7cccf67c107aa120c83d96", + "spanID": "aa7b9a5341432e7e", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "32493ca86f7cccf67c107aa120c83d96", + "spanID": "bc88dbf7508c76a7" + } + ], + "startTime": 1708939363381356, + "duration": 1851, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "c8ee1a23-09a2-9893-8712-315693160601" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "32493ca86f7cccf67c107aa120c83d96", + "spanID": "9b1f1382c72ae227", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "32493ca86f7cccf67c107aa120c83d96", + "spanID": "bc88dbf7508c76a7" + } + ], + "startTime": 1708939363387385, + "duration": 3821, + "tags": [ + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "c8ee1a23-09a2-9893-8712-315693160601" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "63f691447987972ee4ba6d85e2733b55", + "spanID": "2c06811db753414b", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "63f691447987972ee4ba6d85e2733b55", + "spanID": "e4ba6d85e2733b55" + } + ], + "startTime": 1708939359376644, + "duration": 14454, + "tags": [ + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "e634fbbe-5aa3-94c6-8959-bba009508515" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "63f691447987972ee4ba6d85e2733b55", + "spanID": "43d5a3177794a221", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "63f691447987972ee4ba6d85e2733b55", + "spanID": "2c06811db753414b" + } + ], + "startTime": 1708939359380087, + "duration": 1554, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "e634fbbe-5aa3-94c6-8959-bba009508515" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "63f691447987972ee4ba6d85e2733b55", + "spanID": "271c23b4fd3bd966", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "63f691447987972ee4ba6d85e2733b55", + "spanID": "2c06811db753414b" + } + ], + "startTime": 1708939359384594, + "duration": 3832, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "e634fbbe-5aa3-94c6-8959-bba009508515" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "27c2e3735de76ff474c26ee05f642214", + "spanID": "f20c01cbb8231890", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "27c2e3735de76ff474c26ee05f642214", + "spanID": "74c26ee05f642214" + } + ], + "startTime": 1708939428376583, + "duration": 11401, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "235ed647-99c2-9a21-b412-7303c570b3e9" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "27c2e3735de76ff474c26ee05f642214", + "spanID": "1347d8d975cb5cfb", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "27c2e3735de76ff474c26ee05f642214", + "spanID": "f20c01cbb8231890" + } + ], + "startTime": 1708939428379644, + "duration": 1325, + "tags": [ + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "235ed647-99c2-9a21-b412-7303c570b3e9" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "27c2e3735de76ff474c26ee05f642214", + "spanID": "478dd1e54b013a44", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "27c2e3735de76ff474c26ee05f642214", + "spanID": "f20c01cbb8231890" + } + ], + "startTime": 1708939428383295, + "duration": 3096, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "235ed647-99c2-9a21-b412-7303c570b3e9" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "cd06424c24fb8a24e2eac6203b2c2ea7", + "spanID": "19f31787fe36d009", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "cd06424c24fb8a24e2eac6203b2c2ea7", + "spanID": "e2eac6203b2c2ea7" + } + ], + "startTime": 1708939414376561, + "duration": 14624, + "tags": [ + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "26598813-b25a-9ea8-a1e7-8296d91ddf53" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "cd06424c24fb8a24e2eac6203b2c2ea7", + "spanID": "d4fbca54a9c792de", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "cd06424c24fb8a24e2eac6203b2c2ea7", + "spanID": "19f31787fe36d009" + } + ], + "startTime": 1708939414380264, + "duration": 1538, + "tags": [ + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "26598813-b25a-9ea8-a1e7-8296d91ddf53" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "cd06424c24fb8a24e2eac6203b2c2ea7", + "spanID": "55c80bfebf9417b5", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "cd06424c24fb8a24e2eac6203b2c2ea7", + "spanID": "19f31787fe36d009" + } + ], + "startTime": 1708939414385827, + "duration": 3190, + "tags": [ + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "26598813-b25a-9ea8-a1e7-8296d91ddf53" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "4f390cde1dda0627109592f88220fb22", + "spanID": "a5fa9f6e831d0e7f", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4f390cde1dda0627109592f88220fb22", + "spanID": "109592f88220fb22" + } + ], + "startTime": 1708939413376577, + "duration": 13909, + "tags": [ + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "e7ada8e0-8f4c-9f06-95ed-243b62a170fb" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "4f390cde1dda0627109592f88220fb22", + "spanID": "06d2de2a28a55af5", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4f390cde1dda0627109592f88220fb22", + "spanID": "a5fa9f6e831d0e7f" + } + ], + "startTime": 1708939413379474, + "duration": 1281, + "tags": [ + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "e7ada8e0-8f4c-9f06-95ed-243b62a170fb" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "4f390cde1dda0627109592f88220fb22", + "spanID": "6594c0a5f8150ffc", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4f390cde1dda0627109592f88220fb22", + "spanID": "a5fa9f6e831d0e7f" + } + ], + "startTime": 1708939413383093, + "duration": 3459, + "tags": [ + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "e7ada8e0-8f4c-9f06-95ed-243b62a170fb" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "c59e5795ceb350d9c372706eb6b4f4c0", + "spanID": "c00cb777bcb68616", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "c59e5795ceb350d9c372706eb6b4f4c0", + "spanID": "c372706eb6b4f4c0" + } + ], + "startTime": 1708939366376733, + "duration": 19658, + "tags": [ + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "46b9eb75-a21e-97cc-b44c-b21df438a024" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "c59e5795ceb350d9c372706eb6b4f4c0", + "spanID": "cab763e31c769e8b", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "c59e5795ceb350d9c372706eb6b4f4c0", + "spanID": "c00cb777bcb68616" + } + ], + "startTime": 1708939366382661, + "duration": 3977, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "46b9eb75-a21e-97cc-b44c-b21df438a024" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "c59e5795ceb350d9c372706eb6b4f4c0", + "spanID": "2989858e695b34a8", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "c59e5795ceb350d9c372706eb6b4f4c0", + "spanID": "c00cb777bcb68616" + } + ], + "startTime": 1708939366391632, + "duration": 1463, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "46b9eb75-a21e-97cc-b44c-b21df438a024" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "f1ecb5283b5b57cabe044218d8193318", + "spanID": "c0c5c657a261b254", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "f1ecb5283b5b57cabe044218d8193318", + "spanID": "be044218d8193318" + } + ], + "startTime": 1708939344376532, + "duration": 10442, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "26de06a2-2243-97dc-a157-c5b8a67a5d19" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "f1ecb5283b5b57cabe044218d8193318", + "spanID": "ca358f7d92160343", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "f1ecb5283b5b57cabe044218d8193318", + "spanID": "c0c5c657a261b254" + } + ], + "startTime": 1708939344379888, + "duration": 1455, + "tags": [ + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "26de06a2-2243-97dc-a157-c5b8a67a5d19" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "f1ecb5283b5b57cabe044218d8193318", + "spanID": "9763dd32d7910e21", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "f1ecb5283b5b57cabe044218d8193318", + "spanID": "c0c5c657a261b254" + } + ], + "startTime": 1708939344384183, + "duration": 1139, + "tags": [ + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "26de06a2-2243-97dc-a157-c5b8a67a5d19" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "9354a2dfaa830456eb4523e37ca98c57", + "spanID": "4b48f191dd049d90", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "9354a2dfaa830456eb4523e37ca98c57", + "spanID": "eb4523e37ca98c57" + } + ], + "startTime": 1708939338379876, + "duration": 30562, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "0f2f708c-35a9-902f-aced-b178c7cd7f44" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "9354a2dfaa830456eb4523e37ca98c57", + "spanID": "bb6fff4271400feb", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "9354a2dfaa830456eb4523e37ca98c57", + "spanID": "4b48f191dd049d90" + } + ], + "startTime": 1708939338393439, + "duration": 4228, + "tags": [ + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "0f2f708c-35a9-902f-aced-b178c7cd7f44" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "9354a2dfaa830456eb4523e37ca98c57", + "spanID": "9fee170dfe993585", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "9354a2dfaa830456eb4523e37ca98c57", + "spanID": "4b48f191dd049d90" + } + ], + "startTime": 1708939338403980, + "duration": 3541, + "tags": [ + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "0f2f708c-35a9-902f-aced-b178c7cd7f44" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "a6c8b654bd28d8e15ce447845b830ca9", + "spanID": "67ffea69dc96015d", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a6c8b654bd28d8e15ce447845b830ca9", + "spanID": "5ce447845b830ca9" + } + ], + "startTime": 1708939425376574, + "duration": 12394, + "tags": [ + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "1276aacd-5c61-91df-89ef-cc446e61563d" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "a6c8b654bd28d8e15ce447845b830ca9", + "spanID": "854b74fe3e2fcf1a", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a6c8b654bd28d8e15ce447845b830ca9", + "spanID": "67ffea69dc96015d" + } + ], + "startTime": 1708939425380073, + "duration": 1276, + "tags": [ + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "1276aacd-5c61-91df-89ef-cc446e61563d" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "a6c8b654bd28d8e15ce447845b830ca9", + "spanID": "b6d0675baac5746c", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a6c8b654bd28d8e15ce447845b830ca9", + "spanID": "67ffea69dc96015d" + } + ], + "startTime": 1708939425383919, + "duration": 3131, + "tags": [ + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "1276aacd-5c61-91df-89ef-cc446e61563d" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "d9b7878ea6dd517fcb78cb011c518131", + "spanID": "e178e94051d4452f", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "d9b7878ea6dd517fcb78cb011c518131", + "spanID": "cb78cb011c518131" + } + ], + "startTime": 1708939388376598, + "duration": 8952, + "tags": [ + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "016bb45a-0fbf-9112-9a38-52d016771505" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "d9b7878ea6dd517fcb78cb011c518131", + "spanID": "9e4fa97235d5e1fc", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "d9b7878ea6dd517fcb78cb011c518131", + "spanID": "e178e94051d4452f" + } + ], + "startTime": 1708939388379716, + "duration": 1229, + "tags": [ + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "016bb45a-0fbf-9112-9a38-52d016771505" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "d9b7878ea6dd517fcb78cb011c518131", + "spanID": "9ebb4ceea8fa0df6", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "d9b7878ea6dd517fcb78cb011c518131", + "spanID": "e178e94051d4452f" + } + ], + "startTime": 1708939388383318, + "duration": 926, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "016bb45a-0fbf-9112-9a38-52d016771505" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "c8a264a3584b209597b1f62934ae58e3", + "spanID": "5d5f216e8327e795", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "c8a264a3584b209597b1f62934ae58e3", + "spanID": "97b1f62934ae58e3" + } + ], + "startTime": 1708939379376501, + "duration": 8993, + "tags": [ + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "c2cb9089-0d03-9e1f-a35d-8c50c64401a3" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "c8a264a3584b209597b1f62934ae58e3", + "spanID": "d9bc37c64417ebb5", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "c8a264a3584b209597b1f62934ae58e3", + "spanID": "5d5f216e8327e795" + } + ], + "startTime": 1708939379379645, + "duration": 1300, + "tags": [ + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "c2cb9089-0d03-9e1f-a35d-8c50c64401a3" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "c8a264a3584b209597b1f62934ae58e3", + "spanID": "ffe2880966049d42", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "c8a264a3584b209597b1f62934ae58e3", + "spanID": "5d5f216e8327e795" + } + ], + "startTime": 1708939379383241, + "duration": 980, + "tags": [ + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "c2cb9089-0d03-9e1f-a35d-8c50c64401a3" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "f48fc902df4bafcf5927c9e37fe8b632", + "spanID": "db54bd4feb3538e1", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "f48fc902df4bafcf5927c9e37fe8b632", + "spanID": "5927c9e37fe8b632" + } + ], + "startTime": 1708939380377354, + "duration": 16518, + "tags": [ + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "e20d538e-0928-9179-8546-b7419536b553" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "f48fc902df4bafcf5927c9e37fe8b632", + "spanID": "83f3fcc59464c390", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "f48fc902df4bafcf5927c9e37fe8b632", + "spanID": "db54bd4feb3538e1" + } + ], + "startTime": 1708939380383753, + "duration": 2277, + "tags": [ + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "e20d538e-0928-9179-8546-b7419536b553" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "f48fc902df4bafcf5927c9e37fe8b632", + "spanID": "2208f7112d2778f2", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "f48fc902df4bafcf5927c9e37fe8b632", + "spanID": "db54bd4feb3538e1" + } + ], + "startTime": 1708939380388804, + "duration": 2883, + "tags": [ + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "e20d538e-0928-9179-8546-b7419536b553" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "e8307e78c4ee4263ab437aed408f3df4", + "spanID": "af4af8cd6d15bc92", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "e8307e78c4ee4263ab437aed408f3df4", + "spanID": "ab437aed408f3df4" + } + ], + "startTime": 1708939378376592, + "duration": 11848, + "tags": [ + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "eb7fc848-8f58-9079-95f2-fc5551c532a9" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "e8307e78c4ee4263ab437aed408f3df4", + "spanID": "ebacb547ad524443", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "e8307e78c4ee4263ab437aed408f3df4", + "spanID": "af4af8cd6d15bc92" + } + ], + "startTime": 1708939378379784, + "duration": 1506, + "tags": [ + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "eb7fc848-8f58-9079-95f2-fc5551c532a9" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "e8307e78c4ee4263ab437aed408f3df4", + "spanID": "e6473f73bc4a78bd", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "e8307e78c4ee4263ab437aed408f3df4", + "spanID": "af4af8cd6d15bc92" + } + ], + "startTime": 1708939378383756, + "duration": 3095, + "tags": [ + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "eb7fc848-8f58-9079-95f2-fc5551c532a9" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "4b78fa4c5c38264d7f386d0d1f9214e4", + "spanID": "1509b1fc165d6f59", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4b78fa4c5c38264d7f386d0d1f9214e4", + "spanID": "7f386d0d1f9214e4" + } + ], + "startTime": 1708939373376566, + "duration": 11708, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "289abf1a-195b-98d0-afd1-3b76e8b5b0fe" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "4b78fa4c5c38264d7f386d0d1f9214e4", + "spanID": "ec4c12edd158ba45", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4b78fa4c5c38264d7f386d0d1f9214e4", + "spanID": "1509b1fc165d6f59" + } + ], + "startTime": 1708939373379637, + "duration": 1267, + "tags": [ + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "289abf1a-195b-98d0-afd1-3b76e8b5b0fe" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "4b78fa4c5c38264d7f386d0d1f9214e4", + "spanID": "31894fe57f043996", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4b78fa4c5c38264d7f386d0d1f9214e4", + "spanID": "1509b1fc165d6f59" + } + ], + "startTime": 1708939373383284, + "duration": 3111, + "tags": [ + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "289abf1a-195b-98d0-afd1-3b76e8b5b0fe" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "19df6c1d62906a401c0293b848653cdd", + "spanID": "b73940e352925bdd", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "19df6c1d62906a401c0293b848653cdd", + "spanID": "1c0293b848653cdd" + } + ], + "startTime": 1708939370376577, + "duration": 14353, + "tags": [ + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "2b109521-16a3-9acf-a86f-53df427aca39" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "19df6c1d62906a401c0293b848653cdd", + "spanID": "faf24819946a8d7a", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "19df6c1d62906a401c0293b848653cdd", + "spanID": "b73940e352925bdd" + } + ], + "startTime": 1708939370380241, + "duration": 1363, + "tags": [ + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "2b109521-16a3-9acf-a86f-53df427aca39" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "19df6c1d62906a401c0293b848653cdd", + "spanID": "3229477feba4a46c", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "19df6c1d62906a401c0293b848653cdd", + "spanID": "b73940e352925bdd" + } + ], + "startTime": 1708939370384392, + "duration": 3301, + "tags": [ + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "2b109521-16a3-9acf-a86f-53df427aca39" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "c0917d63c64c832366a7bf30c68b7cf9", + "spanID": "30c928d84cc4884a", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "c0917d63c64c832366a7bf30c68b7cf9", + "spanID": "66a7bf30c68b7cf9" + } + ], + "startTime": 1708939342376532, + "duration": 11175, + "tags": [ + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "ba810d5c-34de-9ad5-a441-eb2df3336071" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "c0917d63c64c832366a7bf30c68b7cf9", + "spanID": "0d7471ac857af449", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "c0917d63c64c832366a7bf30c68b7cf9", + "spanID": "30c928d84cc4884a" + } + ], + "startTime": 1708939342379747, + "duration": 1906, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "ba810d5c-34de-9ad5-a441-eb2df3336071" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "c0917d63c64c832366a7bf30c68b7cf9", + "spanID": "0d29bb27bcc33e8d", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "c0917d63c64c832366a7bf30c68b7cf9", + "spanID": "30c928d84cc4884a" + } + ], + "startTime": 1708939342384839, + "duration": 1221, + "tags": [ + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "ba810d5c-34de-9ad5-a441-eb2df3336071" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "24a1aa1bad4e6d3d17ff51f60ab97f2e", + "spanID": "a785055f3547106d", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "24a1aa1bad4e6d3d17ff51f60ab97f2e", + "spanID": "17ff51f60ab97f2e" + } + ], + "startTime": 1708939404376617, + "duration": 13397, + "tags": [ + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "7c9967e0-b483-9eb9-bcc2-8ece739420a3" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "24a1aa1bad4e6d3d17ff51f60ab97f2e", + "spanID": "49ca982a18ad0f44", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "24a1aa1bad4e6d3d17ff51f60ab97f2e", + "spanID": "a785055f3547106d" + } + ], + "startTime": 1708939404380188, + "duration": 1523, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "7c9967e0-b483-9eb9-bcc2-8ece739420a3" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "24a1aa1bad4e6d3d17ff51f60ab97f2e", + "spanID": "02539d19d1636832", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "24a1aa1bad4e6d3d17ff51f60ab97f2e", + "spanID": "a785055f3547106d" + } + ], + "startTime": 1708939404384555, + "duration": 2951, + "tags": [ + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "7c9967e0-b483-9eb9-bcc2-8ece739420a3" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "fccf0c3d89b4b884cd4237c9d85b79f5", + "spanID": "1ae69aa0d5df2418", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "fccf0c3d89b4b884cd4237c9d85b79f5", + "spanID": "cd4237c9d85b79f5" + } + ], + "startTime": 1708939391376679, + "duration": 15686, + "tags": [ + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "46227d12-7ab8-939c-a117-01e0bbfcfc8e" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "fccf0c3d89b4b884cd4237c9d85b79f5", + "spanID": "592341ed1d268963", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "fccf0c3d89b4b884cd4237c9d85b79f5", + "spanID": "1ae69aa0d5df2418" + } + ], + "startTime": 1708939391380885, + "duration": 2469, + "tags": [ + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "46227d12-7ab8-939c-a117-01e0bbfcfc8e" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "fccf0c3d89b4b884cd4237c9d85b79f5", + "spanID": "d3d74c964cf9d1c8", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "fccf0c3d89b4b884cd4237c9d85b79f5", + "spanID": "1ae69aa0d5df2418" + } + ], + "startTime": 1708939391388627, + "duration": 1552, + "tags": [ + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "46227d12-7ab8-939c-a117-01e0bbfcfc8e" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "7f7417e0093f226fc084660f8604a0b1", + "spanID": "897d8dab9f85acf3", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "7f7417e0093f226fc084660f8604a0b1", + "spanID": "c084660f8604a0b1" + } + ], + "startTime": 1708939389377290, + "duration": 21047, + "tags": [ + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "397f56d5-3fb9-9988-b97a-ac30f61983d6" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "7f7417e0093f226fc084660f8604a0b1", + "spanID": "a0b8d1c082880be0", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "7f7417e0093f226fc084660f8604a0b1", + "spanID": "897d8dab9f85acf3" + } + ], + "startTime": 1708939389386177, + "duration": 2766, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "397f56d5-3fb9-9988-b97a-ac30f61983d6" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "7f7417e0093f226fc084660f8604a0b1", + "spanID": "c943d3553a6d92a3", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "7f7417e0093f226fc084660f8604a0b1", + "spanID": "897d8dab9f85acf3" + } + ], + "startTime": 1708939389393971, + "duration": 1622, + "tags": [ + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "397f56d5-3fb9-9988-b97a-ac30f61983d6" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "59d4b0d526c01e1d01dc19de5e8ccdc3", + "spanID": "9a7b15f6b4a095bc", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "59d4b0d526c01e1d01dc19de5e8ccdc3", + "spanID": "01dc19de5e8ccdc3" + } + ], + "startTime": 1708939376376554, + "duration": 12120, + "tags": [ + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "def779b7-ca65-9666-a7ee-cdb11be383b4" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "59d4b0d526c01e1d01dc19de5e8ccdc3", + "spanID": "543977b7f199022c", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "59d4b0d526c01e1d01dc19de5e8ccdc3", + "spanID": "9a7b15f6b4a095bc" + } + ], + "startTime": 1708939376379740, + "duration": 1786, + "tags": [ + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "def779b7-ca65-9666-a7ee-cdb11be383b4" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "59d4b0d526c01e1d01dc19de5e8ccdc3", + "spanID": "cadbe6b5bb709204", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "59d4b0d526c01e1d01dc19de5e8ccdc3", + "spanID": "9a7b15f6b4a095bc" + } + ], + "startTime": 1708939376384030, + "duration": 2876, + "tags": [ + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "def779b7-ca65-9666-a7ee-cdb11be383b4" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "4f946e24263fb7184f655f09133e1f9a", + "spanID": "71eb5ba7b3f3ad4c", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4f946e24263fb7184f655f09133e1f9a", + "spanID": "4f655f09133e1f9a" + } + ], + "startTime": 1708939368376632, + "duration": 16646, + "tags": [ + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "630f40f2-9584-9f4f-9c01-f0910515b498" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "4f946e24263fb7184f655f09133e1f9a", + "spanID": "7a02dd01a450eaad", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4f946e24263fb7184f655f09133e1f9a", + "spanID": "71eb5ba7b3f3ad4c" + } + ], + "startTime": 1708939368380942, + "duration": 1774, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "630f40f2-9584-9f4f-9c01-f0910515b498" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "4f946e24263fb7184f655f09133e1f9a", + "spanID": "12c490e8334e6bee", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4f946e24263fb7184f655f09133e1f9a", + "spanID": "71eb5ba7b3f3ad4c" + } + ], + "startTime": 1708939368386672, + "duration": 4492, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "630f40f2-9584-9f4f-9c01-f0910515b498" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "9bc1e5e16405bfd39800885928b75201", + "spanID": "e94247df6814e698", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "9bc1e5e16405bfd39800885928b75201", + "spanID": "9800885928b75201" + } + ], + "startTime": 1708939362377035, + "duration": 13295, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "d2c9b88d-b8b7-9865-bf9a-be71e460d2a5" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "9bc1e5e16405bfd39800885928b75201", + "spanID": "55fb4cb6394f1d17", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "9bc1e5e16405bfd39800885928b75201", + "spanID": "e94247df6814e698" + } + ], + "startTime": 1708939362381850, + "duration": 1473, + "tags": [ + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "d2c9b88d-b8b7-9865-bf9a-be71e460d2a5" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "9bc1e5e16405bfd39800885928b75201", + "spanID": "54e2fb6453ffbc6e", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "9bc1e5e16405bfd39800885928b75201", + "spanID": "e94247df6814e698" + } + ], + "startTime": 1708939362385867, + "duration": 2789, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "d2c9b88d-b8b7-9865-bf9a-be71e460d2a5" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "8c1e1bccd0a3880c73cf5e7a62dff60e", + "spanID": "d1060c97ad1a4fe5", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "8c1e1bccd0a3880c73cf5e7a62dff60e", + "spanID": "73cf5e7a62dff60e" + } + ], + "startTime": 1708939343376517, + "duration": 11675, + "tags": [ + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "5eb9e3c2-8fe0-9487-8527-e854b0d2181c" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "8c1e1bccd0a3880c73cf5e7a62dff60e", + "spanID": "e43947d762be0725", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "8c1e1bccd0a3880c73cf5e7a62dff60e", + "spanID": "d1060c97ad1a4fe5" + } + ], + "startTime": 1708939343379483, + "duration": 1658, + "tags": [ + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "5eb9e3c2-8fe0-9487-8527-e854b0d2181c" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "8c1e1bccd0a3880c73cf5e7a62dff60e", + "spanID": "cba775e2513a765e", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "8c1e1bccd0a3880c73cf5e7a62dff60e", + "spanID": "d1060c97ad1a4fe5" + } + ], + "startTime": 1708939343384291, + "duration": 1443, + "tags": [ + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "5eb9e3c2-8fe0-9487-8527-e854b0d2181c" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "27f925251ece15804223cca0220f1b89", + "spanID": "02078e1219ef885a", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "27f925251ece15804223cca0220f1b89", + "spanID": "4223cca0220f1b89" + } + ], + "startTime": 1708939335377652, + "duration": 15982, + "tags": [ + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "f59ec7b8-a4d1-9c9e-898e-7649cf1b58e8" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "27f925251ece15804223cca0220f1b89", + "spanID": "767542b7eb02289d", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "27f925251ece15804223cca0220f1b89", + "spanID": "02078e1219ef885a" + } + ], + "startTime": 1708939335382404, + "duration": 1469, + "tags": [ + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "f59ec7b8-a4d1-9c9e-898e-7649cf1b58e8" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "27f925251ece15804223cca0220f1b89", + "spanID": "7175c884465c7978", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "27f925251ece15804223cca0220f1b89", + "spanID": "02078e1219ef885a" + } + ], + "startTime": 1708939335387255, + "duration": 3797, + "tags": [ + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "f59ec7b8-a4d1-9c9e-898e-7649cf1b58e8" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "9828e70b19480018bcabdb8d14f89420", + "spanID": "f9e803f199b6dd58", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "9828e70b19480018bcabdb8d14f89420", + "spanID": "bcabdb8d14f89420" + } + ], + "startTime": 1708939434376526, + "duration": 16484, + "tags": [ + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "d4ed7388-2188-902c-be79-57d63481fb93" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p1", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 2 + }, + { + "traceID": "9828e70b19480018bcabdb8d14f89420", + "spanID": "70b280aeb1329734", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "9828e70b19480018bcabdb8d14f89420", + "spanID": "f9e803f199b6dd58" + } + ], + "startTime": 1708939434380144, + "duration": 1755, + "tags": [ + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "d4ed7388-2188-902c-be79-57d63481fb93" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 2 + }, + { + "traceID": "5291419d276a76d2b5d516e79e85697c", + "spanID": "a5e6afaa4b4203b7", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "5291419d276a76d2b5d516e79e85697c", + "spanID": "b5d516e79e85697c" + } + ], + "startTime": 1708939418376521, + "duration": 10087, + "tags": [ + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "bc549029-1e06-9e33-ac3a-e3565652bff1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "5291419d276a76d2b5d516e79e85697c", + "spanID": "9fe12c9bc4aecece", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "5291419d276a76d2b5d516e79e85697c", + "spanID": "a5e6afaa4b4203b7" + } + ], + "startTime": 1708939418379949, + "duration": 1318, + "tags": [ + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "bc549029-1e06-9e33-ac3a-e3565652bff1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "5291419d276a76d2b5d516e79e85697c", + "spanID": "4e3c4d6f06f8c004", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "5291419d276a76d2b5d516e79e85697c", + "spanID": "a5e6afaa4b4203b7" + } + ], + "startTime": 1708939418384031, + "duration": 1060, + "tags": [ + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "bc549029-1e06-9e33-ac3a-e3565652bff1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "415a4bc97c47fa15a468448c7df5b1d9", + "spanID": "636b6a6d45cff9c5", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "415a4bc97c47fa15a468448c7df5b1d9", + "spanID": "a468448c7df5b1d9" + } + ], + "startTime": 1708939412380134, + "duration": 36026, + "tags": [ + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "3804560d-afb2-9446-b126-4bd070b6114c" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "415a4bc97c47fa15a468448c7df5b1d9", + "spanID": "c6c9d7676afa2f06", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "415a4bc97c47fa15a468448c7df5b1d9", + "spanID": "636b6a6d45cff9c5" + } + ], + "startTime": 1708939412388620, + "duration": 9480, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "3804560d-afb2-9446-b126-4bd070b6114c" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "415a4bc97c47fa15a468448c7df5b1d9", + "spanID": "41b666965ec58a3c", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "415a4bc97c47fa15a468448c7df5b1d9", + "spanID": "636b6a6d45cff9c5" + } + ], + "startTime": 1708939412405918, + "duration": 3961, + "tags": [ + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "3804560d-afb2-9446-b126-4bd070b6114c" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "939f5fd73f9105ef65197a37db62daf1", + "spanID": "0392c37b0b6a8614", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "939f5fd73f9105ef65197a37db62daf1", + "spanID": "65197a37db62daf1" + } + ], + "startTime": 1708939415376497, + "duration": 12762, + "tags": [ + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "3c0f2c8e-7c7f-98ba-a809-3704429eb3e8" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "939f5fd73f9105ef65197a37db62daf1", + "spanID": "08ed7acbec223a77", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "939f5fd73f9105ef65197a37db62daf1", + "spanID": "0392c37b0b6a8614" + } + ], + "startTime": 1708939415380573, + "duration": 1372, + "tags": [ + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "3c0f2c8e-7c7f-98ba-a809-3704429eb3e8" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "939f5fd73f9105ef65197a37db62daf1", + "spanID": "7783eb0bed4e86db", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "939f5fd73f9105ef65197a37db62daf1", + "spanID": "0392c37b0b6a8614" + } + ], + "startTime": 1708939415384553, + "duration": 2694, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "3c0f2c8e-7c7f-98ba-a809-3704429eb3e8" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "ea21a4cc947ed62d635a4d72b0ed8d73", + "spanID": "7e6f5236f1183439", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "ea21a4cc947ed62d635a4d72b0ed8d73", + "spanID": "635a4d72b0ed8d73" + } + ], + "startTime": 1708939393376662, + "duration": 13998, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "25845381-7910-9c2e-9e00-0ec6e27c34b1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "ea21a4cc947ed62d635a4d72b0ed8d73", + "spanID": "abef7aa3d2655229", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "ea21a4cc947ed62d635a4d72b0ed8d73", + "spanID": "7e6f5236f1183439" + } + ], + "startTime": 1708939393380193, + "duration": 1649, + "tags": [ + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "25845381-7910-9c2e-9e00-0ec6e27c34b1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "ea21a4cc947ed62d635a4d72b0ed8d73", + "spanID": "79966a7a668ba249", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "ea21a4cc947ed62d635a4d72b0ed8d73", + "spanID": "7e6f5236f1183439" + } + ], + "startTime": 1708939393384966, + "duration": 3810, + "tags": [ + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "25845381-7910-9c2e-9e00-0ec6e27c34b1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "9f3023c8002b4e07885e7907b290a676", + "spanID": "772ff5b0474f4b78", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "9f3023c8002b4e07885e7907b290a676", + "spanID": "885e7907b290a676" + } + ], + "startTime": 1708939341376887, + "duration": 21626, + "tags": [ + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "080659b5-57bb-9348-a204-abcc9a77ec56" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "9f3023c8002b4e07885e7907b290a676", + "spanID": "722670020556ba70", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "9f3023c8002b4e07885e7907b290a676", + "spanID": "772ff5b0474f4b78" + } + ], + "startTime": 1708939341383117, + "duration": 2994, + "tags": [ + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "080659b5-57bb-9348-a204-abcc9a77ec56" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "9f3023c8002b4e07885e7907b290a676", + "spanID": "27ab9a98e7535907", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "9f3023c8002b4e07885e7907b290a676", + "spanID": "772ff5b0474f4b78" + } + ], + "startTime": 1708939341391729, + "duration": 3693, + "tags": [ + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "080659b5-57bb-9348-a204-abcc9a77ec56" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "a1c6543de7c9cc3ad01b598d1f0e74d2", + "spanID": "1a2ecddf0c01d4d1", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a1c6543de7c9cc3ad01b598d1f0e74d2", + "spanID": "d01b598d1f0e74d2" + } + ], + "startTime": 1708939400376796, + "duration": 20046, + "tags": [ + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "37a38011-13ae-9fda-aead-e4edb16febf7" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "a1c6543de7c9cc3ad01b598d1f0e74d2", + "spanID": "e26ab626bc587d4a", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a1c6543de7c9cc3ad01b598d1f0e74d2", + "spanID": "1a2ecddf0c01d4d1" + } + ], + "startTime": 1708939400382308, + "duration": 2568, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "37a38011-13ae-9fda-aead-e4edb16febf7" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "a1c6543de7c9cc3ad01b598d1f0e74d2", + "spanID": "fc575ddb4080330f", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a1c6543de7c9cc3ad01b598d1f0e74d2", + "spanID": "1a2ecddf0c01d4d1" + } + ], + "startTime": 1708939400389544, + "duration": 4554, + "tags": [ + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "37a38011-13ae-9fda-aead-e4edb16febf7" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "159d9418e7e8f3f141caa905708c384a", + "spanID": "7c3c60e49f34ea63", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "159d9418e7e8f3f141caa905708c384a", + "spanID": "41caa905708c384a" + } + ], + "startTime": 1708939372376447, + "duration": 11180, + "tags": [ + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8ea302a0-3204-99a2-8547-c93e41d69419" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "159d9418e7e8f3f141caa905708c384a", + "spanID": "f1a2d6726e91f8e6", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "159d9418e7e8f3f141caa905708c384a", + "spanID": "7c3c60e49f34ea63" + } + ], + "startTime": 1708939372379324, + "duration": 1377, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8ea302a0-3204-99a2-8547-c93e41d69419" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "159d9418e7e8f3f141caa905708c384a", + "spanID": "ca33ef32273d29f5", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "159d9418e7e8f3f141caa905708c384a", + "spanID": "7c3c60e49f34ea63" + } + ], + "startTime": 1708939372383218, + "duration": 2784, + "tags": [ + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8ea302a0-3204-99a2-8547-c93e41d69419" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "424afb3d0e7f8dfb561ede8a9c00351d", + "spanID": "599e29410857fd71", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "424afb3d0e7f8dfb561ede8a9c00351d", + "spanID": "561ede8a9c00351d" + } + ], + "startTime": 1708939433377274, + "duration": 17718, + "tags": [ + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "2c1346d1-7d74-9b3f-818b-e33e6b60fd46" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p1", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 1 + }, + { + "traceID": "a821cfc9ff2dad19bdf7c1ce42765035", + "spanID": "25333f595deaf126", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a821cfc9ff2dad19bdf7c1ce42765035", + "spanID": "bdf7c1ce42765035" + } + ], + "startTime": 1708939431376554, + "duration": 11633, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "770c8af8-0af9-9fc4-87b7-6a50c3c61007" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "a821cfc9ff2dad19bdf7c1ce42765035", + "spanID": "cb8affa615ccb4fe", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a821cfc9ff2dad19bdf7c1ce42765035", + "spanID": "25333f595deaf126" + } + ], + "startTime": 1708939431379471, + "duration": 1671, + "tags": [ + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "770c8af8-0af9-9fc4-87b7-6a50c3c61007" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "a821cfc9ff2dad19bdf7c1ce42765035", + "spanID": "e968d55c141841c1", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a821cfc9ff2dad19bdf7c1ce42765035", + "spanID": "25333f595deaf126" + } + ], + "startTime": 1708939431383618, + "duration": 2652, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "770c8af8-0af9-9fc4-87b7-6a50c3c61007" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "b0c33c7452f0cb2bd2da6404e3838ccd", + "spanID": "ba9277713a387240", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "b0c33c7452f0cb2bd2da6404e3838ccd", + "spanID": "d2da6404e3838ccd" + } + ], + "startTime": 1708939383377461, + "duration": 12232, + "tags": [ + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "78602d4e-a6c1-9728-a931-ee9b8e121634" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 9 + }, + { + "traceID": "b0c33c7452f0cb2bd2da6404e3838ccd", + "spanID": "4455e71d4c1146c8", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "b0c33c7452f0cb2bd2da6404e3838ccd", + "spanID": "ba9277713a387240" + } + ], + "startTime": 1708939383380441, + "duration": 1175, + "tags": [ + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "78602d4e-a6c1-9728-a931-ee9b8e121634" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 9 + }, + { + "traceID": "b0c33c7452f0cb2bd2da6404e3838ccd", + "spanID": "725c30c66a55eceb", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "b0c33c7452f0cb2bd2da6404e3838ccd", + "spanID": "ba9277713a387240" + } + ], + "startTime": 1708939383383917, + "duration": 4142, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "78602d4e-a6c1-9728-a931-ee9b8e121634" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 9 + }, + { + "traceID": "4c322fa710e613d6e61b133c3e818b50", + "spanID": "bf412189f1729765", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4c322fa710e613d6e61b133c3e818b50", + "spanID": "e61b133c3e818b50" + } + ], + "startTime": 1708939377376863, + "duration": 10921, + "tags": [ + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "fb2405f0-ba96-9975-b54f-04918cd50e95" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "4c322fa710e613d6e61b133c3e818b50", + "spanID": "fdc047fcf31fa5bb", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4c322fa710e613d6e61b133c3e818b50", + "spanID": "bf412189f1729765" + } + ], + "startTime": 1708939377379820, + "duration": 1240, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "fb2405f0-ba96-9975-b54f-04918cd50e95" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "4c322fa710e613d6e61b133c3e818b50", + "spanID": "9a7b063c37bc8fc0", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4c322fa710e613d6e61b133c3e818b50", + "spanID": "bf412189f1729765" + } + ], + "startTime": 1708939377383449, + "duration": 2741, + "tags": [ + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "fb2405f0-ba96-9975-b54f-04918cd50e95" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "7f26b73d8c975f62be6847f65db252dd", + "spanID": "77528dbc073a1ae0", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "7f26b73d8c975f62be6847f65db252dd", + "spanID": "be6847f65db252dd" + } + ], + "startTime": 1708939361376823, + "duration": 15404, + "tags": [ + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "c8ab30f1-2747-92d3-83f8-e6413ae1e20d" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "7f26b73d8c975f62be6847f65db252dd", + "spanID": "31b7f56de6bf5d76", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "7f26b73d8c975f62be6847f65db252dd", + "spanID": "77528dbc073a1ae0" + } + ], + "startTime": 1708939361380693, + "duration": 2671, + "tags": [ + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "c8ab30f1-2747-92d3-83f8-e6413ae1e20d" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "7f26b73d8c975f62be6847f65db252dd", + "spanID": "8225df1e97b2067a", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "7f26b73d8c975f62be6847f65db252dd", + "spanID": "77528dbc073a1ae0" + } + ], + "startTime": 1708939361387105, + "duration": 3266, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "c8ab30f1-2747-92d3-83f8-e6413ae1e20d" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "33cfbfcc430c74627b6a72de902dce64", + "spanID": "48730279f431c87b", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "33cfbfcc430c74627b6a72de902dce64", + "spanID": "7b6a72de902dce64" + } + ], + "startTime": 1708939352376548, + "duration": 12672, + "tags": [ + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "ad092ec6-0936-99fb-bf18-9fec1286db57" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "33cfbfcc430c74627b6a72de902dce64", + "spanID": "b149210e4b498ee0", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "33cfbfcc430c74627b6a72de902dce64", + "spanID": "48730279f431c87b" + } + ], + "startTime": 1708939352379792, + "duration": 1748, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "ad092ec6-0936-99fb-bf18-9fec1286db57" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "33cfbfcc430c74627b6a72de902dce64", + "spanID": "bc8659e93bb30b78", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "33cfbfcc430c74627b6a72de902dce64", + "spanID": "48730279f431c87b" + } + ], + "startTime": 1708939352384369, + "duration": 3170, + "tags": [ + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "ad092ec6-0936-99fb-bf18-9fec1286db57" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "1e8e779b03d977a543045b0b3f9179e7", + "spanID": "fce791e06668f11f", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "1e8e779b03d977a543045b0b3f9179e7", + "spanID": "43045b0b3f9179e7" + } + ], + "startTime": 1708939347376785, + "duration": 17804, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "bd34e5ee-7f4b-9fa7-8a4b-9495119ebe76" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "1e8e779b03d977a543045b0b3f9179e7", + "spanID": "860bdad28f9c8ecc", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "1e8e779b03d977a543045b0b3f9179e7", + "spanID": "fce791e06668f11f" + } + ], + "startTime": 1708939347381955, + "duration": 1695, + "tags": [ + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "bd34e5ee-7f4b-9fa7-8a4b-9495119ebe76" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "1e8e779b03d977a543045b0b3f9179e7", + "spanID": "b4c8a514e335c6c9", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "1e8e779b03d977a543045b0b3f9179e7", + "spanID": "fce791e06668f11f" + } + ], + "startTime": 1708939347387950, + "duration": 3876, + "tags": [ + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "bd34e5ee-7f4b-9fa7-8a4b-9495119ebe76" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "9b695d7c9bf284b05efd630008f0eef0", + "spanID": "907a0a0b1a8946d0", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "9b695d7c9bf284b05efd630008f0eef0", + "spanID": "5efd630008f0eef0" + } + ], + "startTime": 1708939427376512, + "duration": 14871, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "aa61cc62-24f5-94e1-8978-92c2be1bd01a" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "9b695d7c9bf284b05efd630008f0eef0", + "spanID": "a9a91de5dd1c1224", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "9b695d7c9bf284b05efd630008f0eef0", + "spanID": "907a0a0b1a8946d0" + } + ], + "startTime": 1708939427380317, + "duration": 1637, + "tags": [ + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "aa61cc62-24f5-94e1-8978-92c2be1bd01a" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "9b695d7c9bf284b05efd630008f0eef0", + "spanID": "b19b276c9a08955a", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "9b695d7c9bf284b05efd630008f0eef0", + "spanID": "907a0a0b1a8946d0" + } + ], + "startTime": 1708939427385898, + "duration": 3175, + "tags": [ + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "aa61cc62-24f5-94e1-8978-92c2be1bd01a" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "1543f67ab953a0264acd4fc037874f21", + "spanID": "354391ee7ca75a84", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "1543f67ab953a0264acd4fc037874f21", + "spanID": "4acd4fc037874f21" + } + ], + "startTime": 1708939407376727, + "duration": 15219, + "tags": [ + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "2e085a24-8180-9709-990d-84a5ab69c364" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "1543f67ab953a0264acd4fc037874f21", + "spanID": "05f569a205b5c5c0", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "1543f67ab953a0264acd4fc037874f21", + "spanID": "354391ee7ca75a84" + } + ], + "startTime": 1708939407380722, + "duration": 1778, + "tags": [ + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "2e085a24-8180-9709-990d-84a5ab69c364" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "1543f67ab953a0264acd4fc037874f21", + "spanID": "f6ee1ac643cd925c", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "1543f67ab953a0264acd4fc037874f21", + "spanID": "354391ee7ca75a84" + } + ], + "startTime": 1708939407385637, + "duration": 3718, + "tags": [ + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "2e085a24-8180-9709-990d-84a5ab69c364" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "c2ba032c4e892ea6016624575d9cddda", + "spanID": "1c537a184e0e608d", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "c2ba032c4e892ea6016624575d9cddda", + "spanID": "016624575d9cddda" + } + ], + "startTime": 1708939394376705, + "duration": 13853, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "9f187fc9-4b36-9680-a857-a25f487b466c" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "c2ba032c4e892ea6016624575d9cddda", + "spanID": "56def89779bcab91", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "c2ba032c4e892ea6016624575d9cddda", + "spanID": "1c537a184e0e608d" + } + ], + "startTime": 1708939394380709, + "duration": 1903, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "9f187fc9-4b36-9680-a857-a25f487b466c" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "c2ba032c4e892ea6016624575d9cddda", + "spanID": "41eebb2fdce85ab4", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "c2ba032c4e892ea6016624575d9cddda", + "spanID": "1c537a184e0e608d" + } + ], + "startTime": 1708939394387224, + "duration": 1360, + "tags": [ + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "9f187fc9-4b36-9680-a857-a25f487b466c" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "8ae13d6af5ae744085356dea3709ef79", + "spanID": "105a7337e0e27532", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "8ae13d6af5ae744085356dea3709ef79", + "spanID": "85356dea3709ef79" + } + ], + "startTime": 1708939340376816, + "duration": 19142, + "tags": [ + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "6383cf8f-6af6-95c2-8919-20a99bb50e40" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "8ae13d6af5ae744085356dea3709ef79", + "spanID": "6c02500855a5ebf2", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "8ae13d6af5ae744085356dea3709ef79", + "spanID": "105a7337e0e27532" + } + ], + "startTime": 1708939340382203, + "duration": 2110, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "6383cf8f-6af6-95c2-8919-20a99bb50e40" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "8ae13d6af5ae744085356dea3709ef79", + "spanID": "2454599d1da86f37", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "8ae13d6af5ae744085356dea3709ef79", + "spanID": "105a7337e0e27532" + } + ], + "startTime": 1708939340388389, + "duration": 4550, + "tags": [ + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "6383cf8f-6af6-95c2-8919-20a99bb50e40" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "6a7bd9bf45a889f1b881da05eaea7a50", + "spanID": "fbdfdcca5d59f2cf", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "6a7bd9bf45a889f1b881da05eaea7a50", + "spanID": "b881da05eaea7a50" + } + ], + "startTime": 1708939397377352, + "duration": 10384, + "tags": [ + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "91dbbb77-144f-9924-9486-ebdba135be12" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "6a7bd9bf45a889f1b881da05eaea7a50", + "spanID": "fa3011bda4f65043", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "6a7bd9bf45a889f1b881da05eaea7a50", + "spanID": "fbdfdcca5d59f2cf" + } + ], + "startTime": 1708939397380580, + "duration": 1412, + "tags": [ + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "91dbbb77-144f-9924-9486-ebdba135be12" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "6a7bd9bf45a889f1b881da05eaea7a50", + "spanID": "726dca338218d907", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "6a7bd9bf45a889f1b881da05eaea7a50", + "spanID": "fbdfdcca5d59f2cf" + } + ], + "startTime": 1708939397384853, + "duration": 1173, + "tags": [ + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "91dbbb77-144f-9924-9486-ebdba135be12" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "76e5d2de3f23ce0add7d9828a43ad08c", + "spanID": "e1c9c3f98875451d", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "76e5d2de3f23ce0add7d9828a43ad08c", + "spanID": "dd7d9828a43ad08c" + } + ], + "startTime": 1708939390376667, + "duration": 15595, + "tags": [ + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "30af6a37-fe52-97cf-8e55-a858638c9bed" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "76e5d2de3f23ce0add7d9828a43ad08c", + "spanID": "c60107034f1a7aae", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "76e5d2de3f23ce0add7d9828a43ad08c", + "spanID": "e1c9c3f98875451d" + } + ], + "startTime": 1708939390380894, + "duration": 1651, + "tags": [ + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "30af6a37-fe52-97cf-8e55-a858638c9bed" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "76e5d2de3f23ce0add7d9828a43ad08c", + "spanID": "4f3835004936b67e", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "76e5d2de3f23ce0add7d9828a43ad08c", + "spanID": "e1c9c3f98875451d" + } + ], + "startTime": 1708939390385945, + "duration": 3678, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "30af6a37-fe52-97cf-8e55-a858638c9bed" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "e0601ce312c0b4e6273c10610b846ab1", + "spanID": "21f82f33f952896a", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "e0601ce312c0b4e6273c10610b846ab1", + "spanID": "273c10610b846ab1" + } + ], + "startTime": 1708939385377555, + "duration": 13110, + "tags": [ + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "7005a816-adbe-93d6-bd34-0dcf8f28b08b" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "e0601ce312c0b4e6273c10610b846ab1", + "spanID": "e10385f6e531f467", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "e0601ce312c0b4e6273c10610b846ab1", + "spanID": "21f82f33f952896a" + } + ], + "startTime": 1708939385381183, + "duration": 1440, + "tags": [ + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "7005a816-adbe-93d6-bd34-0dcf8f28b08b" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "e0601ce312c0b4e6273c10610b846ab1", + "spanID": "c4458004d6fe75d2", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "e0601ce312c0b4e6273c10610b846ab1", + "spanID": "21f82f33f952896a" + } + ], + "startTime": 1708939385385479, + "duration": 3322, + "tags": [ + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "7005a816-adbe-93d6-bd34-0dcf8f28b08b" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "90a201d5d4fa8a3c8565358038d4f60f", + "spanID": "ad930dfbe654c740", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "90a201d5d4fa8a3c8565358038d4f60f", + "spanID": "8565358038d4f60f" + } + ], + "startTime": 1708939381377534, + "duration": 20131, + "tags": [ + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "84df58e5-e9d8-93b3-8b78-9004586407a8" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "90a201d5d4fa8a3c8565358038d4f60f", + "spanID": "6a499c3004e94948", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "90a201d5d4fa8a3c8565358038d4f60f", + "spanID": "ad930dfbe654c740" + } + ], + "startTime": 1708939381387266, + "duration": 2022, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "84df58e5-e9d8-93b3-8b78-9004586407a8" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "90a201d5d4fa8a3c8565358038d4f60f", + "spanID": "f99c14134db62f73", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "90a201d5d4fa8a3c8565358038d4f60f", + "spanID": "ad930dfbe654c740" + } + ], + "startTime": 1708939381392326, + "duration": 3511, + "tags": [ + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "84df58e5-e9d8-93b3-8b78-9004586407a8" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "e3a2d426ab59d9e5ed481fc5e3e85d7d", + "spanID": "64fe92623130cf1c", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "e3a2d426ab59d9e5ed481fc5e3e85d7d", + "spanID": "ed481fc5e3e85d7d" + } + ], + "startTime": 1708939339376801, + "duration": 9753, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "9c5a9634-adbd-9d9d-8de6-607688910c6e" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "e3a2d426ab59d9e5ed481fc5e3e85d7d", + "spanID": "079ff52a335312ee", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "e3a2d426ab59d9e5ed481fc5e3e85d7d", + "spanID": "64fe92623130cf1c" + } + ], + "startTime": 1708939339379876, + "duration": 1323, + "tags": [ + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "9c5a9634-adbd-9d9d-8de6-607688910c6e" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "e3a2d426ab59d9e5ed481fc5e3e85d7d", + "spanID": "8a65e1cd0213dba1", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "e3a2d426ab59d9e5ed481fc5e3e85d7d", + "spanID": "64fe92623130cf1c" + } + ], + "startTime": 1708939339383887, + "duration": 1013, + "tags": [ + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "9c5a9634-adbd-9d9d-8de6-607688910c6e" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "202587b106303d025d97620cb5fd02ca", + "spanID": "43c2b2ca727e4ba0", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "202587b106303d025d97620cb5fd02ca", + "spanID": "5d97620cb5fd02ca" + } + ], + "startTime": 1708939424376622, + "duration": 9777, + "tags": [ + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "06f30e4a-747f-9471-8eea-15b2f253a536" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "202587b106303d025d97620cb5fd02ca", + "spanID": "3ca6dbcc98a69b59", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "202587b106303d025d97620cb5fd02ca", + "spanID": "43c2b2ca727e4ba0" + } + ], + "startTime": 1708939424379704, + "duration": 1308, + "tags": [ + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "06f30e4a-747f-9471-8eea-15b2f253a536" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "202587b106303d025d97620cb5fd02ca", + "spanID": "7c5c60debb77afcc", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "202587b106303d025d97620cb5fd02ca", + "spanID": "43c2b2ca727e4ba0" + } + ], + "startTime": 1708939424383484, + "duration": 1079, + "tags": [ + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "06f30e4a-747f-9471-8eea-15b2f253a536" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "a9cecf286609c29f02cbede8185f8a95", + "spanID": "9b12212293940b51", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a9cecf286609c29f02cbede8185f8a95", + "spanID": "02cbede8185f8a95" + } + ], + "startTime": 1708939408376801, + "duration": 10429, + "tags": [ + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "d948546b-eba5-93b4-a309-6252eb385060" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "a9cecf286609c29f02cbede8185f8a95", + "spanID": "31795cf07c7ea67e", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a9cecf286609c29f02cbede8185f8a95", + "spanID": "9b12212293940b51" + } + ], + "startTime": 1708939408380122, + "duration": 1481, + "tags": [ + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "d948546b-eba5-93b4-a309-6252eb385060" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "a9cecf286609c29f02cbede8185f8a95", + "spanID": "93231c449ed575fe", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a9cecf286609c29f02cbede8185f8a95", + "spanID": "9b12212293940b51" + } + ], + "startTime": 1708939408384435, + "duration": 1104, + "tags": [ + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "d948546b-eba5-93b4-a309-6252eb385060" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "84692823d681569b82f6db9d96ec2bd4", + "spanID": "0f6c94d61ee9e5ab", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "84692823d681569b82f6db9d96ec2bd4", + "spanID": "82f6db9d96ec2bd4" + } + ], + "startTime": 1708939406376522, + "duration": 9609, + "tags": [ + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "5ff704a8-d6f9-9e1f-906a-b766d8f7bb2f" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "84692823d681569b82f6db9d96ec2bd4", + "spanID": "79d938681ddfa37a", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "84692823d681569b82f6db9d96ec2bd4", + "spanID": "0f6c94d61ee9e5ab" + } + ], + "startTime": 1708939406379635, + "duration": 1719, + "tags": [ + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "5ff704a8-d6f9-9e1f-906a-b766d8f7bb2f" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "84692823d681569b82f6db9d96ec2bd4", + "spanID": "057ee4f26d3769b6", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "84692823d681569b82f6db9d96ec2bd4", + "spanID": "0f6c94d61ee9e5ab" + } + ], + "startTime": 1708939406383829, + "duration": 964, + "tags": [ + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "5ff704a8-d6f9-9e1f-906a-b766d8f7bb2f" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "b02b8e32ee23c653fcb2db88a43a37d9", + "spanID": "63728c8ba61e2e79", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "b02b8e32ee23c653fcb2db88a43a37d9", + "spanID": "fcb2db88a43a37d9" + } + ], + "startTime": 1708939419376619, + "duration": 11631, + "tags": [ + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "7f5fa988-82b2-92e5-abac-a0b7949afd73" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "b02b8e32ee23c653fcb2db88a43a37d9", + "spanID": "ed7aed0f3b78114b", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "b02b8e32ee23c653fcb2db88a43a37d9", + "spanID": "63728c8ba61e2e79" + } + ], + "startTime": 1708939419380185, + "duration": 2171, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "7f5fa988-82b2-92e5-abac-a0b7949afd73" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "b02b8e32ee23c653fcb2db88a43a37d9", + "spanID": "be22dbfcfe734a6e", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "b02b8e32ee23c653fcb2db88a43a37d9", + "spanID": "63728c8ba61e2e79" + } + ], + "startTime": 1708939419385528, + "duration": 1041, + "tags": [ + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "7f5fa988-82b2-92e5-abac-a0b7949afd73" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "095ba676a2eed7d8296282ac2bb3e73d", + "spanID": "0b9504e20071eeaa", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "095ba676a2eed7d8296282ac2bb3e73d", + "spanID": "296282ac2bb3e73d" + } + ], + "startTime": 1708939416376661, + "duration": 13699, + "tags": [ + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "dde90a96-077e-931f-84f3-ecd08fa47222" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 2 + }, + { + "traceID": "3a75a7b58bda8168f9a5e7b85543c194", + "spanID": "4d7d85914a914b8f", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "3a75a7b58bda8168f9a5e7b85543c194", + "spanID": "f9a5e7b85543c194" + } + ], + "startTime": 1708939403376949, + "duration": 12773, + "tags": [ + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "07b2a4a9-2a46-9d96-973f-4b5f5836ecbe" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "3a75a7b58bda8168f9a5e7b85543c194", + "spanID": "113afba5d70a140e", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "3a75a7b58bda8168f9a5e7b85543c194", + "spanID": "4d7d85914a914b8f" + } + ], + "startTime": 1708939403381298, + "duration": 1628, + "tags": [ + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "07b2a4a9-2a46-9d96-973f-4b5f5836ecbe" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "3a75a7b58bda8168f9a5e7b85543c194", + "spanID": "f77b75504cfc7c56", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "3a75a7b58bda8168f9a5e7b85543c194", + "spanID": "4d7d85914a914b8f" + } + ], + "startTime": 1708939403386434, + "duration": 1356, + "tags": [ + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "07b2a4a9-2a46-9d96-973f-4b5f5836ecbe" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "88cf9e62a0124dd446d3d8b55794db5d", + "spanID": "b1d1fd1b8bd1dbda", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "88cf9e62a0124dd446d3d8b55794db5d", + "spanID": "46d3d8b55794db5d" + } + ], + "startTime": 1708939398377453, + "duration": 26879, + "tags": [ + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "b0812bb2-364c-9136-ad6e-f1356630897e" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "88cf9e62a0124dd446d3d8b55794db5d", + "spanID": "c50f3029f254c466", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "88cf9e62a0124dd446d3d8b55794db5d", + "spanID": "b1d1fd1b8bd1dbda" + } + ], + "startTime": 1708939398383817, + "duration": 2765, + "tags": [ + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "b0812bb2-364c-9136-ad6e-f1356630897e" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "88cf9e62a0124dd446d3d8b55794db5d", + "spanID": "283cb12bd1588f58", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "88cf9e62a0124dd446d3d8b55794db5d", + "spanID": "b1d1fd1b8bd1dbda" + } + ], + "startTime": 1708939398394143, + "duration": 6466, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "b0812bb2-364c-9136-ad6e-f1356630897e" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "e13bf4628f7372d3e7e0a5e10f036b95", + "spanID": "59f73930a3dba616", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "e13bf4628f7372d3e7e0a5e10f036b95", + "spanID": "e7e0a5e10f036b95" + } + ], + "startTime": 1708939374377425, + "duration": 10726, + "tags": [ + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8faf569b-ebb4-96c3-a05b-184857a8c1f4" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "e13bf4628f7372d3e7e0a5e10f036b95", + "spanID": "52a35d25432740e9", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "e13bf4628f7372d3e7e0a5e10f036b95", + "spanID": "59f73930a3dba616" + } + ], + "startTime": 1708939374381945, + "duration": 1359, + "tags": [ + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8faf569b-ebb4-96c3-a05b-184857a8c1f4" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "e13bf4628f7372d3e7e0a5e10f036b95", + "spanID": "29edf7cdb1edc91a", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "e13bf4628f7372d3e7e0a5e10f036b95", + "spanID": "59f73930a3dba616" + } + ], + "startTime": 1708939374385846, + "duration": 1013, + "tags": [ + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8faf569b-ebb4-96c3-a05b-184857a8c1f4" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "1d5ebe8e5392bb6c27b0d28198e19fde", + "spanID": "fd5299cab671f8a8", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "1d5ebe8e5392bb6c27b0d28198e19fde", + "spanID": "27b0d28198e19fde" + } + ], + "startTime": 1708939429376526, + "duration": 12698, + "tags": [ + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "14fc3dc5-7c1d-9cf7-b0a4-44fea234cffc" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "1d5ebe8e5392bb6c27b0d28198e19fde", + "spanID": "f8f7b525aa5b7c41", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "1d5ebe8e5392bb6c27b0d28198e19fde", + "spanID": "fd5299cab671f8a8" + } + ], + "startTime": 1708939429379917, + "duration": 1793, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "14fc3dc5-7c1d-9cf7-b0a4-44fea234cffc" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "1d5ebe8e5392bb6c27b0d28198e19fde", + "spanID": "fa6c518cb75017e9", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "1d5ebe8e5392bb6c27b0d28198e19fde", + "spanID": "fd5299cab671f8a8" + } + ], + "startTime": 1708939429385366, + "duration": 1508, + "tags": [ + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "14fc3dc5-7c1d-9cf7-b0a4-44fea234cffc" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "9f7fcbbc5b40e53359ce4e5fb9787447", + "spanID": "97a7b9882576f046", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "9f7fcbbc5b40e53359ce4e5fb9787447", + "spanID": "59ce4e5fb9787447" + } + ], + "startTime": 1708939426377083, + "duration": 13085, + "tags": [ + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "332540e7-2dc3-9f46-8cb9-104519f3eb4d" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "9f7fcbbc5b40e53359ce4e5fb9787447", + "spanID": "6d0180f1517b18e1", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "9f7fcbbc5b40e53359ce4e5fb9787447", + "spanID": "97a7b9882576f046" + } + ], + "startTime": 1708939426380270, + "duration": 1752, + "tags": [ + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "332540e7-2dc3-9f46-8cb9-104519f3eb4d" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "9f7fcbbc5b40e53359ce4e5fb9787447", + "spanID": "ba2df5fce4118209", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "9f7fcbbc5b40e53359ce4e5fb9787447", + "spanID": "97a7b9882576f046" + } + ], + "startTime": 1708939426385321, + "duration": 3129, + "tags": [ + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "332540e7-2dc3-9f46-8cb9-104519f3eb4d" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "060a37f2126c2957ed961c384cc22399", + "spanID": "c696ad381cecb34b", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "060a37f2126c2957ed961c384cc22399", + "spanID": "ed961c384cc22399" + } + ], + "startTime": 1708939421376686, + "duration": 16246, + "tags": [ + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "f771d85b-a569-9d36-96ab-d1c596b56a11" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 2 + }, + { + "traceID": "61f707b2186ac5ca97026c2826364983", + "spanID": "14e6667ec7cac4c8", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "61f707b2186ac5ca97026c2826364983", + "spanID": "97026c2826364983" + } + ], + "startTime": 1708939350376636, + "duration": 13458, + "tags": [ + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "48d32f4e-e5f8-9fde-967c-848b9f0b10fa" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "61f707b2186ac5ca97026c2826364983", + "spanID": "722b2548e0cf3c8c", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "61f707b2186ac5ca97026c2826364983", + "spanID": "14e6667ec7cac4c8" + } + ], + "startTime": 1708939350380113, + "duration": 1412, + "tags": [ + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "48d32f4e-e5f8-9fde-967c-848b9f0b10fa" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "61f707b2186ac5ca97026c2826364983", + "spanID": "4cce833239a52c7e", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "61f707b2186ac5ca97026c2826364983", + "spanID": "14e6667ec7cac4c8" + } + ], + "startTime": 1708939350384466, + "duration": 3193, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "48d32f4e-e5f8-9fde-967c-848b9f0b10fa" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "b5551f6bc909d6170f369be3da92e967", + "spanID": "5926d502676f0a93", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "b5551f6bc909d6170f369be3da92e967", + "spanID": "0f369be3da92e967" + } + ], + "startTime": 1708939358376486, + "duration": 9139, + "tags": [ + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8069a023-5172-93a2-a1ba-b3439dab9a01" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "b5551f6bc909d6170f369be3da92e967", + "spanID": "c256b5f50a71d791", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "b5551f6bc909d6170f369be3da92e967", + "spanID": "5926d502676f0a93" + } + ], + "startTime": 1708939358379448, + "duration": 1400, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8069a023-5172-93a2-a1ba-b3439dab9a01" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "b5551f6bc909d6170f369be3da92e967", + "spanID": "4b11c06f486e5e29", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "b5551f6bc909d6170f369be3da92e967", + "spanID": "5926d502676f0a93" + } + ], + "startTime": 1708939358383204, + "duration": 1051, + "tags": [ + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8069a023-5172-93a2-a1ba-b3439dab9a01" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "a83d4eadd86106c8b470c08961394284", + "spanID": "feefc55ee0f36431", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a83d4eadd86106c8b470c08961394284", + "spanID": "b470c08961394284" + } + ], + "startTime": 1708939357376889, + "duration": 18915, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "b1aa7eed-f52a-9e0d-8a13-463e9bb9ace7" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "a83d4eadd86106c8b470c08961394284", + "spanID": "6612e7e0a2b7bd8a", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a83d4eadd86106c8b470c08961394284", + "spanID": "feefc55ee0f36431" + } + ], + "startTime": 1708939357383050, + "duration": 2459, + "tags": [ + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "b1aa7eed-f52a-9e0d-8a13-463e9bb9ace7" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "a83d4eadd86106c8b470c08961394284", + "spanID": "d5587315d26899c1", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a83d4eadd86106c8b470c08961394284", + "spanID": "feefc55ee0f36431" + } + ], + "startTime": 1708939357389321, + "duration": 3736, + "tags": [ + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "b1aa7eed-f52a-9e0d-8a13-463e9bb9ace7" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "4626a29a13b4af2e95cbb58b24b20db0", + "spanID": "7e5605b598c264de", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4626a29a13b4af2e95cbb58b24b20db0", + "spanID": "95cbb58b24b20db0" + } + ], + "startTime": 1708939353376398, + "duration": 10369, + "tags": [ + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "9e74e63b-803e-9375-9f3f-08e74bfcf0ba" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "4626a29a13b4af2e95cbb58b24b20db0", + "spanID": "0dfbb2fc5395dca8", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4626a29a13b4af2e95cbb58b24b20db0", + "spanID": "7e5605b598c264de" + } + ], + "startTime": 1708939353379212, + "duration": 1227, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "9e74e63b-803e-9375-9f3f-08e74bfcf0ba" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "4626a29a13b4af2e95cbb58b24b20db0", + "spanID": "726443d72c17a469", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4626a29a13b4af2e95cbb58b24b20db0", + "spanID": "7e5605b598c264de" + } + ], + "startTime": 1708939353382637, + "duration": 2716, + "tags": [ + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "9e74e63b-803e-9375-9f3f-08e74bfcf0ba" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "400990b7c1715a8a05341aa3dc87476a", + "spanID": "49548d573b8b6e0a", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "400990b7c1715a8a05341aa3dc87476a", + "spanID": "05341aa3dc87476a" + } + ], + "startTime": 1708939375376543, + "duration": 8795, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "88d7894b-0680-9718-8f1f-0bc410d0a7d0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "400990b7c1715a8a05341aa3dc87476a", + "spanID": "1d1c9f3bbf5d0b41", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "400990b7c1715a8a05341aa3dc87476a", + "spanID": "49548d573b8b6e0a" + } + ], + "startTime": 1708939375379719, + "duration": 1282, + "tags": [ + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "88d7894b-0680-9718-8f1f-0bc410d0a7d0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "400990b7c1715a8a05341aa3dc87476a", + "spanID": "5511554c4852bc6b", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "400990b7c1715a8a05341aa3dc87476a", + "spanID": "49548d573b8b6e0a" + } + ], + "startTime": 1708939375383272, + "duration": 874, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "88d7894b-0680-9718-8f1f-0bc410d0a7d0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "7ce1862cc82fc0a65ccb6133b121ddab", + "spanID": "cdac18dd5f91ca2b", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "7ce1862cc82fc0a65ccb6133b121ddab", + "spanID": "5ccb6133b121ddab" + } + ], + "startTime": 1708939369376599, + "duration": 10656, + "tags": [ + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "c60ffbe5-6ecf-9e8c-ba08-9737f1ab2a13" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "7ce1862cc82fc0a65ccb6133b121ddab", + "spanID": "1705c0b851b3b70a", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "7ce1862cc82fc0a65ccb6133b121ddab", + "spanID": "cdac18dd5f91ca2b" + } + ], + "startTime": 1708939369379907, + "duration": 1602, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "c60ffbe5-6ecf-9e8c-ba08-9737f1ab2a13" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "7ce1862cc82fc0a65ccb6133b121ddab", + "spanID": "392202f2f041004c", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "7ce1862cc82fc0a65ccb6133b121ddab", + "spanID": "cdac18dd5f91ca2b" + } + ], + "startTime": 1708939369384312, + "duration": 1103, + "tags": [ + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "c60ffbe5-6ecf-9e8c-ba08-9737f1ab2a13" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "a1e002e77ca8bdf7b84e0c6325f1613d", + "spanID": "0efb64f535795741", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a1e002e77ca8bdf7b84e0c6325f1613d", + "spanID": "b84e0c6325f1613d" + } + ], + "startTime": 1708939355376602, + "duration": 10809, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "57ed9e64-9b22-9991-a6bd-d03e4cd4e890" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "a1e002e77ca8bdf7b84e0c6325f1613d", + "spanID": "aa24b9fbc2433953", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a1e002e77ca8bdf7b84e0c6325f1613d", + "spanID": "0efb64f535795741" + } + ], + "startTime": 1708939355380512, + "duration": 1700, + "tags": [ + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "57ed9e64-9b22-9991-a6bd-d03e4cd4e890" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "a1e002e77ca8bdf7b84e0c6325f1613d", + "spanID": "7a3db6310da4299e", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a1e002e77ca8bdf7b84e0c6325f1613d", + "spanID": "0efb64f535795741" + } + ], + "startTime": 1708939355384899, + "duration": 1078, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "57ed9e64-9b22-9991-a6bd-d03e4cd4e890" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "8bf020377b5856c5310e3a2cba2847aa", + "spanID": "2b05df871eacf2c2", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "8bf020377b5856c5310e3a2cba2847aa", + "spanID": "310e3a2cba2847aa" + } + ], + "startTime": 1708939345377260, + "duration": 15544, + "tags": [ + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "a397b3ca-4c97-9e50-bed1-afa95a51f9f6" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "8bf020377b5856c5310e3a2cba2847aa", + "spanID": "8a87d509aad25fe7", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "8bf020377b5856c5310e3a2cba2847aa", + "spanID": "2b05df871eacf2c2" + } + ], + "startTime": 1708939345382088, + "duration": 2143, + "tags": [ + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "a397b3ca-4c97-9e50-bed1-afa95a51f9f6" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "8bf020377b5856c5310e3a2cba2847aa", + "spanID": "0e316b3f0ec1bc4b", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "8bf020377b5856c5310e3a2cba2847aa", + "spanID": "2b05df871eacf2c2" + } + ], + "startTime": 1708939345388452, + "duration": 1293, + "tags": [ + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "a397b3ca-4c97-9e50-bed1-afa95a51f9f6" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "e2c48d761cece2c31ba7a8c289eccebb", + "spanID": "b106bef670c0d0bf", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "e2c48d761cece2c31ba7a8c289eccebb", + "spanID": "1ba7a8c289eccebb" + } + ], + "startTime": 1708939337376965, + "duration": 23339, + "tags": [ + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "880a8c71-4312-9448-af0d-bf19496de6f6" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "e2c48d761cece2c31ba7a8c289eccebb", + "spanID": "35fde9e75e9ae508", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "e2c48d761cece2c31ba7a8c289eccebb", + "spanID": "b106bef670c0d0bf" + } + ], + "startTime": 1708939337383443, + "duration": 5862, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "880a8c71-4312-9448-af0d-bf19496de6f6" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "e2c48d761cece2c31ba7a8c289eccebb", + "spanID": "fba58dee8baf7228", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "e2c48d761cece2c31ba7a8c289eccebb", + "spanID": "b106bef670c0d0bf" + } + ], + "startTime": 1708939337394965, + "duration": 2633, + "tags": [ + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "880a8c71-4312-9448-af0d-bf19496de6f6" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "3058a61bdc775ab34e9d0ffb83c8e184", + "spanID": "8f28a49a566f2488", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "3058a61bdc775ab34e9d0ffb83c8e184", + "spanID": "4e9d0ffb83c8e184" + } + ], + "startTime": 1708939432376743, + "duration": 13376, + "tags": [ + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "b160815d-0a68-9374-bd6f-9ba3123998f2" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p1", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 2 + }, + { + "traceID": "3058a61bdc775ab34e9d0ffb83c8e184", + "spanID": "72cfe8adf53071f6", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "3058a61bdc775ab34e9d0ffb83c8e184", + "spanID": "8f28a49a566f2488" + } + ], + "startTime": 1708939432384698, + "duration": 3635, + "tags": [ + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "b160815d-0a68-9374-bd6f-9ba3123998f2" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 2 + }, + { + "traceID": "4d16603d647501ee5a0262312ec07251", + "spanID": "17f20c5182a2788d", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4d16603d647501ee5a0262312ec07251", + "spanID": "5a0262312ec07251" + } + ], + "startTime": 1708939405377306, + "duration": 14311, + "tags": [ + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "b5fef259-fc02-9061-8eae-699b983f3b1e" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "4d16603d647501ee5a0262312ec07251", + "spanID": "6f91cb4d68e1758b", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4d16603d647501ee5a0262312ec07251", + "spanID": "17f20c5182a2788d" + } + ], + "startTime": 1708939405381161, + "duration": 1438, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "b5fef259-fc02-9061-8eae-699b983f3b1e" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "4d16603d647501ee5a0262312ec07251", + "spanID": "9fc5c6a432353054", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4d16603d647501ee5a0262312ec07251", + "spanID": "17f20c5182a2788d" + } + ], + "startTime": 1708939405385585, + "duration": 3261, + "tags": [ + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "b5fef259-fc02-9061-8eae-699b983f3b1e" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "3d2c717ed473f64c88f82e85878256e6", + "spanID": "822939f0b5d45ced", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "3d2c717ed473f64c88f82e85878256e6", + "spanID": "88f82e85878256e6" + } + ], + "startTime": 1708939399376582, + "duration": 13287, + "tags": [ + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "c3da86b3-bd1f-976c-9122-74f7454b9b47" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "3d2c717ed473f64c88f82e85878256e6", + "spanID": "e5a52f32df3f9c5a", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "3d2c717ed473f64c88f82e85878256e6", + "spanID": "822939f0b5d45ced" + } + ], + "startTime": 1708939399379686, + "duration": 1486, + "tags": [ + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "c3da86b3-bd1f-976c-9122-74f7454b9b47" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "3d2c717ed473f64c88f82e85878256e6", + "spanID": "34a442b29362773b", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "3d2c717ed473f64c88f82e85878256e6", + "spanID": "822939f0b5d45ced" + } + ], + "startTime": 1708939399384575, + "duration": 3527, + "tags": [ + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "c3da86b3-bd1f-976c-9122-74f7454b9b47" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "c8bc6c6862e5f1f4db2b06b7b258a5d6", + "spanID": "78dc95e6eb715b4e", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "c8bc6c6862e5f1f4db2b06b7b258a5d6", + "spanID": "db2b06b7b258a5d6" + } + ], + "startTime": 1708939351376599, + "duration": 12074, + "tags": [ + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "070825c1-2a49-91dd-98a3-b970bec0589b" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "c8bc6c6862e5f1f4db2b06b7b258a5d6", + "spanID": "ea323ca3bfa86ca9", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "c8bc6c6862e5f1f4db2b06b7b258a5d6", + "spanID": "78dc95e6eb715b4e" + } + ], + "startTime": 1708939351379638, + "duration": 1831, + "tags": [ + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "070825c1-2a49-91dd-98a3-b970bec0589b" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "c8bc6c6862e5f1f4db2b06b7b258a5d6", + "spanID": "8338d769105a83fe", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "c8bc6c6862e5f1f4db2b06b7b258a5d6", + "spanID": "78dc95e6eb715b4e" + } + ], + "startTime": 1708939351384076, + "duration": 3016, + "tags": [ + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "070825c1-2a49-91dd-98a3-b970bec0589b" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "559247d952229657947c65f73ee86522", + "spanID": "d3809c08c543e3bb", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "559247d952229657947c65f73ee86522", + "spanID": "947c65f73ee86522" + } + ], + "startTime": 1708939348376470, + "duration": 8934, + "tags": [ + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "00bb5663-2aac-999c-b708-7f87da32bda2" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "559247d952229657947c65f73ee86522", + "spanID": "b17c50fdcf1c37ca", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "559247d952229657947c65f73ee86522", + "spanID": "d3809c08c543e3bb" + } + ], + "startTime": 1708939348379408, + "duration": 1426, + "tags": [ + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "00bb5663-2aac-999c-b708-7f87da32bda2" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "559247d952229657947c65f73ee86522", + "spanID": "dd5d72eb93883443", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "559247d952229657947c65f73ee86522", + "spanID": "d3809c08c543e3bb" + } + ], + "startTime": 1708939348383228, + "duration": 895, + "tags": [ + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "00bb5663-2aac-999c-b708-7f87da32bda2" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "fffe4ca6bb1bdb36276bf733834c29a5", + "spanID": "2c9095ce0aa6fe87", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "fffe4ca6bb1bdb36276bf733834c29a5", + "spanID": "276bf733834c29a5" + } + ], + "startTime": 1708939346376661, + "duration": 17406, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "cc4033a7-6a16-95ca-935e-b05f7df68dfa" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "fffe4ca6bb1bdb36276bf733834c29a5", + "spanID": "18a8c2eeda7292cb", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "fffe4ca6bb1bdb36276bf733834c29a5", + "spanID": "2c9095ce0aa6fe87" + } + ], + "startTime": 1708939346380544, + "duration": 2267, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "cc4033a7-6a16-95ca-935e-b05f7df68dfa" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "fffe4ca6bb1bdb36276bf733834c29a5", + "spanID": "b8fd42fd7e432771", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "fffe4ca6bb1bdb36276bf733834c29a5", + "spanID": "2c9095ce0aa6fe87" + } + ], + "startTime": 1708939346387191, + "duration": 4823, + "tags": [ + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "cc4033a7-6a16-95ca-935e-b05f7df68dfa" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "0f085485286d9d49a53eab19925535d1", + "spanID": "014d807bd83b1dd2", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "0f085485286d9d49a53eab19925535d1", + "spanID": "a53eab19925535d1" + } + ], + "startTime": 1708939410376661, + "duration": 16517, + "tags": [ + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "a5af8aae-5eeb-919a-aa83-02ac3e68160f" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 2 + }, + { + "traceID": "58a2e14b8fd1f8457537c255eaaccfde", + "spanID": "4702ac567d18edcc", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "58a2e14b8fd1f8457537c255eaaccfde", + "spanID": "7537c255eaaccfde" + } + ], + "startTime": 1708939396376621, + "duration": 15862, + "tags": [ + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "31ede79b-9955-9150-921d-ad2e1ed63d3a" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "58a2e14b8fd1f8457537c255eaaccfde", + "spanID": "f7dd7ec04196cc5d", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "58a2e14b8fd1f8457537c255eaaccfde", + "spanID": "4702ac567d18edcc" + } + ], + "startTime": 1708939396380396, + "duration": 2326, + "tags": [ + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "31ede79b-9955-9150-921d-ad2e1ed63d3a" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "58a2e14b8fd1f8457537c255eaaccfde", + "spanID": "001d3b4a247b6d48", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "58a2e14b8fd1f8457537c255eaaccfde", + "spanID": "4702ac567d18edcc" + } + ], + "startTime": 1708939396387118, + "duration": 3361, + "tags": [ + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "31ede79b-9955-9150-921d-ad2e1ed63d3a" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "201998336c615ec1a685d80212a3c75f", + "spanID": "a4d27897c147ab87", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "201998336c615ec1a685d80212a3c75f", + "spanID": "a685d80212a3c75f" + } + ], + "startTime": 1708939392376524, + "duration": 12362, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "337ec49f-b3bf-978a-92fc-e94d5b0bc891" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "201998336c615ec1a685d80212a3c75f", + "spanID": "15dd4d6a6d54014e", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "201998336c615ec1a685d80212a3c75f", + "spanID": "a4d27897c147ab87" + } + ], + "startTime": 1708939392379572, + "duration": 1267, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "337ec49f-b3bf-978a-92fc-e94d5b0bc891" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "201998336c615ec1a685d80212a3c75f", + "spanID": "b4cd08c2a870479b", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "201998336c615ec1a685d80212a3c75f", + "spanID": "a4d27897c147ab87" + } + ], + "startTime": 1708939392383365, + "duration": 3802, + "tags": [ + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "337ec49f-b3bf-978a-92fc-e94d5b0bc891" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "83522588c19f3784f744cec4295c63c1", + "spanID": "ff7dd1e9be798dc9", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "83522588c19f3784f744cec4295c63c1", + "spanID": "f744cec4295c63c1" + } + ], + "startTime": 1708939430376481, + "duration": 8821, + "tags": [ + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "226a52d5-56cb-9dd4-85f9-401d1689a583" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "83522588c19f3784f744cec4295c63c1", + "spanID": "690807ceb87e193a", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "83522588c19f3784f744cec4295c63c1", + "spanID": "ff7dd1e9be798dc9" + } + ], + "startTime": 1708939430379512, + "duration": 1249, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "226a52d5-56cb-9dd4-85f9-401d1689a583" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "83522588c19f3784f744cec4295c63c1", + "spanID": "44ba1e7479493382", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "83522588c19f3784f744cec4295c63c1", + "spanID": "ff7dd1e9be798dc9" + } + ], + "startTime": 1708939430383155, + "duration": 887, + "tags": [ + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "226a52d5-56cb-9dd4-85f9-401d1689a583" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "3747f5b0c0eabe5009f3b0720886fa5e", + "spanID": "f90c3ddabd628388", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "3747f5b0c0eabe5009f3b0720886fa5e", + "spanID": "09f3b0720886fa5e" + } + ], + "startTime": 1708939422376904, + "duration": 19574, + "tags": [ + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8dc88323-71fa-9593-92e3-efb886b3d983" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "3747f5b0c0eabe5009f3b0720886fa5e", + "spanID": "e81139ac4e6095fb", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "3747f5b0c0eabe5009f3b0720886fa5e", + "spanID": "f90c3ddabd628388" + } + ], + "startTime": 1708939422382474, + "duration": 2059, + "tags": [ + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8dc88323-71fa-9593-92e3-efb886b3d983" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "3747f5b0c0eabe5009f3b0720886fa5e", + "spanID": "c79392571119dc8b", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "3747f5b0c0eabe5009f3b0720886fa5e", + "spanID": "f90c3ddabd628388" + } + ], + "startTime": 1708939422389136, + "duration": 4747, + "tags": [ + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8dc88323-71fa-9593-92e3-efb886b3d983" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "ea8d98f22898ca9230aece58c52bfc1a", + "spanID": "b54b20fe3c0cf366", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "ea8d98f22898ca9230aece58c52bfc1a", + "spanID": "30aece58c52bfc1a" + } + ], + "startTime": 1708939382376541, + "duration": 10754, + "tags": [ + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "e7b08333-9d8b-9efc-9fe9-777e5e420b26" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "ea8d98f22898ca9230aece58c52bfc1a", + "spanID": "7e55ac755ab4a93b", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "ea8d98f22898ca9230aece58c52bfc1a", + "spanID": "b54b20fe3c0cf366" + } + ], + "startTime": 1708939382379630, + "duration": 1283, + "tags": [ + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "e7b08333-9d8b-9efc-9fe9-777e5e420b26" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "ea8d98f22898ca9230aece58c52bfc1a", + "spanID": "c8ec7eee3e24aae1", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "ea8d98f22898ca9230aece58c52bfc1a", + "spanID": "b54b20fe3c0cf366" + } + ], + "startTime": 1708939382383177, + "duration": 2580, + "tags": [ + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "e7b08333-9d8b-9efc-9fe9-777e5e420b26" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "b70e0ead4bb9bae119c088908f6241c5", + "spanID": "885f8a77b94bc8d6", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "b70e0ead4bb9bae119c088908f6241c5", + "spanID": "19c088908f6241c5" + } + ], + "startTime": 1708932954898096, + "duration": 12021, + "tags": [ + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "82a10b35-b8ec-9b41-9666-6425396d1fc1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "b70e0ead4bb9bae119c088908f6241c5", + "spanID": "ac7f0e5f8cc1821f", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "b70e0ead4bb9bae119c088908f6241c5", + "spanID": "885f8a77b94bc8d6" + } + ], + "startTime": 1708932954901446, + "duration": 1373, + "tags": [ + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "82a10b35-b8ec-9b41-9666-6425396d1fc1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "b70e0ead4bb9bae119c088908f6241c5", + "spanID": "c06542608b318c5f", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "b70e0ead4bb9bae119c088908f6241c5", + "spanID": "885f8a77b94bc8d6" + } + ], + "startTime": 1708932954905374, + "duration": 2748, + "tags": [ + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "82a10b35-b8ec-9b41-9666-6425396d1fc1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "1470807f33894aefab9343932b643fce", + "spanID": "883f08516d561dab", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "1470807f33894aefab9343932b643fce", + "spanID": "ab9343932b643fce" + } + ], + "startTime": 1708932950898974, + "duration": 13270, + "tags": [ + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "549961cd-e939-9ae2-ab16-16969b10ad47" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "1470807f33894aefab9343932b643fce", + "spanID": "f41e6f7c7cf93c02", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "1470807f33894aefab9343932b643fce", + "spanID": "883f08516d561dab" + } + ], + "startTime": 1708932950902695, + "duration": 2035, + "tags": [ + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "549961cd-e939-9ae2-ab16-16969b10ad47" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "1470807f33894aefab9343932b643fce", + "spanID": "21ccfd4e89b3cf4d", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "1470807f33894aefab9343932b643fce", + "spanID": "883f08516d561dab" + } + ], + "startTime": 1708932950907586, + "duration": 3122, + "tags": [ + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "549961cd-e939-9ae2-ab16-16969b10ad47" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "5cd4de2fad1c4bc49b21b2355b3caa64", + "spanID": "59b89e2f79645d00", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "5cd4de2fad1c4bc49b21b2355b3caa64", + "spanID": "9b21b2355b3caa64" + } + ], + "startTime": 1708932947898180, + "duration": 10692, + "tags": [ + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "404e85a5-547c-9a38-818f-3c8666b63db6" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "5cd4de2fad1c4bc49b21b2355b3caa64", + "spanID": "bbc0e60adb273dce", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "5cd4de2fad1c4bc49b21b2355b3caa64", + "spanID": "59b89e2f79645d00" + } + ], + "startTime": 1708932947902322, + "duration": 1396, + "tags": [ + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "404e85a5-547c-9a38-818f-3c8666b63db6" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "5cd4de2fad1c4bc49b21b2355b3caa64", + "spanID": "994a362994a77091", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "5cd4de2fad1c4bc49b21b2355b3caa64", + "spanID": "59b89e2f79645d00" + } + ], + "startTime": 1708932947906525, + "duration": 992, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "404e85a5-547c-9a38-818f-3c8666b63db6" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "5585ab417863bccc9a5f952ee2ff332e", + "spanID": "5114cd23b6bbe2b0", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "5585ab417863bccc9a5f952ee2ff332e", + "spanID": "9a5f952ee2ff332e" + } + ], + "startTime": 1708932946899181, + "duration": 38274, + "tags": [ + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "e218eb6a-2be0-92a6-b2ae-2d2c789b3a49" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "5585ab417863bccc9a5f952ee2ff332e", + "spanID": "3c5a9622cc854f42", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "5585ab417863bccc9a5f952ee2ff332e", + "spanID": "5114cd23b6bbe2b0" + } + ], + "startTime": 1708932946909824, + "duration": 3921, + "tags": [ + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "e218eb6a-2be0-92a6-b2ae-2d2c789b3a49" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "5585ab417863bccc9a5f952ee2ff332e", + "spanID": "e13056fa5966b814", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "5585ab417863bccc9a5f952ee2ff332e", + "spanID": "5114cd23b6bbe2b0" + } + ], + "startTime": 1708932946923137, + "duration": 8748, + "tags": [ + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "e218eb6a-2be0-92a6-b2ae-2d2c789b3a49" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "db0e271c9ececcb977c6f1978adcdb11", + "spanID": "f18ae48068dc62dd", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "db0e271c9ececcb977c6f1978adcdb11", + "spanID": "77c6f1978adcdb11" + } + ], + "startTime": 1708932945899092, + "duration": 17017, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "1675da3f-56eb-984a-b624-72c0f2fbd409" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "db0e271c9ececcb977c6f1978adcdb11", + "spanID": "e645869d427a137c", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "db0e271c9ececcb977c6f1978adcdb11", + "spanID": "f18ae48068dc62dd" + } + ], + "startTime": 1708932945907273, + "duration": 1294, + "tags": [ + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "1675da3f-56eb-984a-b624-72c0f2fbd409" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "db0e271c9ececcb977c6f1978adcdb11", + "spanID": "7f8a6f5c566b2c3f", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "db0e271c9ececcb977c6f1978adcdb11", + "spanID": "f18ae48068dc62dd" + } + ], + "startTime": 1708932945911264, + "duration": 2763, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "1675da3f-56eb-984a-b624-72c0f2fbd409" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "2b8edcd8be25e3f5b5604d4ae53845c7", + "spanID": "daefd561eee31273", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "2b8edcd8be25e3f5b5604d4ae53845c7", + "spanID": "b5604d4ae53845c7" + } + ], + "startTime": 1708932953899212, + "duration": 26523, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "d6cabcc2-c55a-9935-953e-9931c7414336" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "2b8edcd8be25e3f5b5604d4ae53845c7", + "spanID": "878246bc732d24d6", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "2b8edcd8be25e3f5b5604d4ae53845c7", + "spanID": "daefd561eee31273" + } + ], + "startTime": 1708932953910141, + "duration": 3776, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "d6cabcc2-c55a-9935-953e-9931c7414336" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "2b8edcd8be25e3f5b5604d4ae53845c7", + "spanID": "05473012045d0d15", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "2b8edcd8be25e3f5b5604d4ae53845c7", + "spanID": "daefd561eee31273" + } + ], + "startTime": 1708932953920977, + "duration": 3129, + "tags": [ + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "d6cabcc2-c55a-9935-953e-9931c7414336" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "41d4c4da57ef0f20376f583ac073aeae", + "spanID": "ddd90b12f295d7ba", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "41d4c4da57ef0f20376f583ac073aeae", + "spanID": "376f583ac073aeae" + } + ], + "startTime": 1708932952898632, + "duration": 15825, + "tags": [ + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "2221f8a4-fd88-99e4-bb39-baaef52af18f" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "41d4c4da57ef0f20376f583ac073aeae", + "spanID": "795fde5b9b8d9c60", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "41d4c4da57ef0f20376f583ac073aeae", + "spanID": "ddd90b12f295d7ba" + } + ], + "startTime": 1708932952903165, + "duration": 2007, + "tags": [ + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "2221f8a4-fd88-99e4-bb39-baaef52af18f" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "41d4c4da57ef0f20376f583ac073aeae", + "spanID": "5dc2f0b27d799745", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "41d4c4da57ef0f20376f583ac073aeae", + "spanID": "ddd90b12f295d7ba" + } + ], + "startTime": 1708932952909310, + "duration": 3505, + "tags": [ + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "2221f8a4-fd88-99e4-bb39-baaef52af18f" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "0f395016b909f39c5be9a950bab71c2b", + "spanID": "86f6b9c1a7f97554", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "0f395016b909f39c5be9a950bab71c2b", + "spanID": "5be9a950bab71c2b" + } + ], + "startTime": 1708932951899132, + "duration": 12570, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "1ec7d60c-0b4f-9d6c-8727-a2bdeb7972ba" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 2 + }, + { + "traceID": "b37b8a22596974d9ae6761da74180891", + "spanID": "72a587022dd714a5", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "b37b8a22596974d9ae6761da74180891", + "spanID": "ae6761da74180891" + } + ], + "startTime": 1708932949898085, + "duration": 9210, + "tags": [ + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "1be4c875-e1b0-9404-a04d-98dbdb6a67e1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "b37b8a22596974d9ae6761da74180891", + "spanID": "509ec55212516f6c", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "b37b8a22596974d9ae6761da74180891", + "spanID": "72a587022dd714a5" + } + ], + "startTime": 1708932949901209, + "duration": 1170, + "tags": [ + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "1be4c875-e1b0-9404-a04d-98dbdb6a67e1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "b37b8a22596974d9ae6761da74180891", + "spanID": "014485a094e669ea", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "b37b8a22596974d9ae6761da74180891", + "spanID": "72a587022dd714a5" + } + ], + "startTime": 1708932949904980, + "duration": 1013, + "tags": [ + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "1be4c875-e1b0-9404-a04d-98dbdb6a67e1" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "dc8bf53b633752e382ac4e6a0b75f31b", + "spanID": "b40eb4ef7ce31d6b", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "dc8bf53b633752e382ac4e6a0b75f31b", + "spanID": "82ac4e6a0b75f31b" + } + ], + "startTime": 1708932948899191, + "duration": 25410, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "b203d98f-f918-9004-a86e-4060c0280373" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "dc8bf53b633752e382ac4e6a0b75f31b", + "spanID": "73d8f742bb575528", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "dc8bf53b633752e382ac4e6a0b75f31b", + "spanID": "b40eb4ef7ce31d6b" + } + ], + "startTime": 1708932948909832, + "duration": 3987, + "tags": [ + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "b203d98f-f918-9004-a86e-4060c0280373" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "dc8bf53b633752e382ac4e6a0b75f31b", + "spanID": "12a52b8d63d87bf5", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "dc8bf53b633752e382ac4e6a0b75f31b", + "spanID": "b40eb4ef7ce31d6b" + } + ], + "startTime": 1708932948919616, + "duration": 3545, + "tags": [ + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "b203d98f-f918-9004-a86e-4060c0280373" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "29d46ca0655c99af9c61d6c6262fad61", + "spanID": "9fd61e6b2a38cf93", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "29d46ca0655c99af9c61d6c6262fad61", + "spanID": "9c61d6c6262fad61" + } + ], + "startTime": 1708935114377203, + "duration": 12817, + "tags": [ + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "2d01df41-2418-9210-bf2a-8e53b772b304" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "29d46ca0655c99af9c61d6c6262fad61", + "spanID": "e0d3057bf47081e6", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "29d46ca0655c99af9c61d6c6262fad61", + "spanID": "9fd61e6b2a38cf93" + } + ], + "startTime": 1708935114380853, + "duration": 1378, + "tags": [ + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "2d01df41-2418-9210-bf2a-8e53b772b304" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "29d46ca0655c99af9c61d6c6262fad61", + "spanID": "493cbb60ac987ab4", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "29d46ca0655c99af9c61d6c6262fad61", + "spanID": "9fd61e6b2a38cf93" + } + ], + "startTime": 1708935114385467, + "duration": 2850, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "2d01df41-2418-9210-bf2a-8e53b772b304" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "d7a7fa2b2f589f8b959d8f6282e006c7", + "spanID": "b07467d1b3b74a0e", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "d7a7fa2b2f589f8b959d8f6282e006c7", + "spanID": "959d8f6282e006c7" + } + ], + "startTime": 1708935112377525, + "duration": 13148, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "57b4a3c3-aefd-9128-9083-9b82fdcfe975" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "d7a7fa2b2f589f8b959d8f6282e006c7", + "spanID": "e3535cb94fd0466e", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "d7a7fa2b2f589f8b959d8f6282e006c7", + "spanID": "b07467d1b3b74a0e" + } + ], + "startTime": 1708935112381274, + "duration": 1511, + "tags": [ + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "57b4a3c3-aefd-9128-9083-9b82fdcfe975" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "d7a7fa2b2f589f8b959d8f6282e006c7", + "spanID": "876a067e28bbc26d", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "d7a7fa2b2f589f8b959d8f6282e006c7", + "spanID": "b07467d1b3b74a0e" + } + ], + "startTime": 1708935112385749, + "duration": 3175, + "tags": [ + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "57b4a3c3-aefd-9128-9083-9b82fdcfe975" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "6038d1adf221f32ebf482de06048e15c", + "spanID": "72caada018f5e741", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "6038d1adf221f32ebf482de06048e15c", + "spanID": "bf482de06048e15c" + } + ], + "startTime": 1708935111376682, + "duration": 11584, + "tags": [ + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "a11021a4-84ce-9859-a2a0-b29cd030edf4" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "6038d1adf221f32ebf482de06048e15c", + "spanID": "6b2ccc0e2cdc5ac8", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "6038d1adf221f32ebf482de06048e15c", + "spanID": "72caada018f5e741" + } + ], + "startTime": 1708935111380399, + "duration": 1209, + "tags": [ + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "a11021a4-84ce-9859-a2a0-b29cd030edf4" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "6038d1adf221f32ebf482de06048e15c", + "spanID": "27c4555535b4907c", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "6038d1adf221f32ebf482de06048e15c", + "spanID": "72caada018f5e741" + } + ], + "startTime": 1708935111384081, + "duration": 2602, + "tags": [ + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "a11021a4-84ce-9859-a2a0-b29cd030edf4" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "d01d5b819a1d1777a0e7f4f588660f5f", + "spanID": "8ec1ce878641b827", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "d01d5b819a1d1777a0e7f4f588660f5f", + "spanID": "a0e7f4f588660f5f" + } + ], + "startTime": 1708935107377528, + "duration": 37099, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "f4b5f16c-b0a5-973f-8f5c-16fdee5b065f" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "d01d5b819a1d1777a0e7f4f588660f5f", + "spanID": "353956c2157fadbc", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "d01d5b819a1d1777a0e7f4f588660f5f", + "spanID": "8ec1ce878641b827" + } + ], + "startTime": 1708935107387819, + "duration": 4066, + "tags": [ + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "f4b5f16c-b0a5-973f-8f5c-16fdee5b065f" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "d01d5b819a1d1777a0e7f4f588660f5f", + "spanID": "af13ed892d4aa091", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "d01d5b819a1d1777a0e7f4f588660f5f", + "spanID": "8ec1ce878641b827" + } + ], + "startTime": 1708935107400718, + "duration": 8717, + "tags": [ + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "f4b5f16c-b0a5-973f-8f5c-16fdee5b065f" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "87832b5dda2fe4e481513eaa602de08b", + "spanID": "27b267c32855bbc3", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "87832b5dda2fe4e481513eaa602de08b", + "spanID": "81513eaa602de08b" + } + ], + "startTime": 1708935106377579, + "duration": 15215, + "tags": [ + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "6aae8133-2445-94b2-81f9-66b79614f2d8" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "87832b5dda2fe4e481513eaa602de08b", + "spanID": "29b5c062cd5c7490", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "87832b5dda2fe4e481513eaa602de08b", + "spanID": "27b267c32855bbc3" + } + ], + "startTime": 1708935106381671, + "duration": 2349, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "6aae8133-2445-94b2-81f9-66b79614f2d8" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "87832b5dda2fe4e481513eaa602de08b", + "spanID": "ba8eeaf0c1ba0b31", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "87832b5dda2fe4e481513eaa602de08b", + "spanID": "27b267c32855bbc3" + } + ], + "startTime": 1708935106387130, + "duration": 3920, + "tags": [ + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "6aae8133-2445-94b2-81f9-66b79614f2d8" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "cf97eae00c2f41ba36fd37cc6064de37", + "spanID": "97101dcf3b35f8db", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "cf97eae00c2f41ba36fd37cc6064de37", + "spanID": "36fd37cc6064de37" + } + ], + "startTime": 1708935105376452, + "duration": 8951, + "tags": [ + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8e507c3f-9474-9b63-818f-9315c99c4746" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "cf97eae00c2f41ba36fd37cc6064de37", + "spanID": "09d0c6a0db94443e", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "cf97eae00c2f41ba36fd37cc6064de37", + "spanID": "97101dcf3b35f8db" + } + ], + "startTime": 1708935105379251, + "duration": 1267, + "tags": [ + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8e507c3f-9474-9b63-818f-9315c99c4746" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "cf97eae00c2f41ba36fd37cc6064de37", + "spanID": "53ef1174ecce89c0", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "cf97eae00c2f41ba36fd37cc6064de37", + "spanID": "97101dcf3b35f8db" + } + ], + "startTime": 1708935105383271, + "duration": 916, + "tags": [ + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8e507c3f-9474-9b63-818f-9315c99c4746" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "7fc058470d66fa276ffbaa33d0608026", + "spanID": "b93ad6f8ab5c1dc0", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "7fc058470d66fa276ffbaa33d0608026", + "spanID": "6ffbaa33d0608026" + } + ], + "startTime": 1708935113377604, + "duration": 17550, + "tags": [ + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "7fcf947b-ca8a-994d-9377-4131b6b47771" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "7fc058470d66fa276ffbaa33d0608026", + "spanID": "9dc77d3e4ae9046e", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "7fc058470d66fa276ffbaa33d0608026", + "spanID": "b93ad6f8ab5c1dc0" + } + ], + "startTime": 1708935113386386, + "duration": 1471, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "7fcf947b-ca8a-994d-9377-4131b6b47771" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "7fc058470d66fa276ffbaa33d0608026", + "spanID": "3663070327b7811b", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "7fc058470d66fa276ffbaa33d0608026", + "spanID": "b93ad6f8ab5c1dc0" + } + ], + "startTime": 1708935113390545, + "duration": 3033, + "tags": [ + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "7fcf947b-ca8a-994d-9377-4131b6b47771" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "08eb7aa2be69060237a5470dda3f300e", + "spanID": "9572e5ba08724866", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "08eb7aa2be69060237a5470dda3f300e", + "spanID": "37a5470dda3f300e" + } + ], + "startTime": 1708935110376654, + "duration": 10548, + "tags": [ + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "0be0a7f5-31a8-9e37-ae99-69888d481e3b" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 2 + }, + { + "traceID": "cb5d0cb464db5ff9a4b2e127091802b7", + "spanID": "ad2f862f58e4a3a2", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "cb5d0cb464db5ff9a4b2e127091802b7", + "spanID": "a4b2e127091802b7" + } + ], + "startTime": 1708935109376442, + "duration": 10243, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "0319305c-49da-94c9-97b3-5355f9802bff" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "cb5d0cb464db5ff9a4b2e127091802b7", + "spanID": "f5da722bdfc1b74a", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "cb5d0cb464db5ff9a4b2e127091802b7", + "spanID": "ad2f862f58e4a3a2" + } + ], + "startTime": 1708935109379353, + "duration": 1219, + "tags": [ + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "0319305c-49da-94c9-97b3-5355f9802bff" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "cb5d0cb464db5ff9a4b2e127091802b7", + "spanID": "b13cf2e847d29f45", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "cb5d0cb464db5ff9a4b2e127091802b7", + "spanID": "ad2f862f58e4a3a2" + } + ], + "startTime": 1708935109382695, + "duration": 2608, + "tags": [ + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "0319305c-49da-94c9-97b3-5355f9802bff" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "0d35560d5150e2f5983438f21a6bec40", + "spanID": "86c321a4cb5160ae", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "0d35560d5150e2f5983438f21a6bec40", + "spanID": "983438f21a6bec40" + } + ], + "startTime": 1708935108377463, + "duration": 14631, + "tags": [ + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "1451319a-5e17-937f-8f59-f35cba32d09f" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 2 + }, + { + "traceID": "8b98dcc91bcf80119f3b535eec4b9810", + "spanID": "23bd7acaa1ef8a5d", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "8b98dcc91bcf80119f3b535eec4b9810", + "spanID": "9f3b535eec4b9810" + } + ], + "startTime": 1708936188377560, + "duration": 14247, + "tags": [ + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "0e4d9369-24da-9ed7-8249-817976d6a432" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "8b98dcc91bcf80119f3b535eec4b9810", + "spanID": "28f942ca4931139d", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "8b98dcc91bcf80119f3b535eec4b9810", + "spanID": "23bd7acaa1ef8a5d" + } + ], + "startTime": 1708936188382221, + "duration": 1407, + "tags": [ + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "0e4d9369-24da-9ed7-8249-817976d6a432" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "8b98dcc91bcf80119f3b535eec4b9810", + "spanID": "612ce6a9447ac5c5", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "8b98dcc91bcf80119f3b535eec4b9810", + "spanID": "23bd7acaa1ef8a5d" + } + ], + "startTime": 1708936188386561, + "duration": 3610, + "tags": [ + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "0e4d9369-24da-9ed7-8249-817976d6a432" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "8beba8a61597bb4b0b6a8a48f406225a", + "spanID": "02b902ac27d7eeb5", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "8beba8a61597bb4b0b6a8a48f406225a", + "spanID": "0b6a8a48f406225a" + } + ], + "startTime": 1708936186376767, + "duration": 11871, + "tags": [ + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "a84f7f7a-3c2b-92be-9ad3-ce03c6ff0731" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "8beba8a61597bb4b0b6a8a48f406225a", + "spanID": "4d3dfebe2fa6a0cd", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "8beba8a61597bb4b0b6a8a48f406225a", + "spanID": "02b902ac27d7eeb5" + } + ], + "startTime": 1708936186380046, + "duration": 1658, + "tags": [ + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "a84f7f7a-3c2b-92be-9ad3-ce03c6ff0731" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "8beba8a61597bb4b0b6a8a48f406225a", + "spanID": "9ca8504b6f7ed8eb", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "8beba8a61597bb4b0b6a8a48f406225a", + "spanID": "02b902ac27d7eeb5" + } + ], + "startTime": 1708936186384230, + "duration": 2838, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "a84f7f7a-3c2b-92be-9ad3-ce03c6ff0731" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "b70fc366e55282c7e36838a2d00ac38d", + "spanID": "80d0f9a2abbcb8ec", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "b70fc366e55282c7e36838a2d00ac38d", + "spanID": "e36838a2d00ac38d" + } + ], + "startTime": 1708936185377435, + "duration": 9062, + "tags": [ + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "cfd0ece4-15ea-9e17-b6da-6bad9c390c59" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "b70fc366e55282c7e36838a2d00ac38d", + "spanID": "32136afbed4e659e", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "b70fc366e55282c7e36838a2d00ac38d", + "spanID": "80d0f9a2abbcb8ec" + } + ], + "startTime": 1708936185380571, + "duration": 1311, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "cfd0ece4-15ea-9e17-b6da-6bad9c390c59" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "b70fc366e55282c7e36838a2d00ac38d", + "spanID": "6a597d849fc0ddd7", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "b70fc366e55282c7e36838a2d00ac38d", + "spanID": "80d0f9a2abbcb8ec" + } + ], + "startTime": 1708936185384248, + "duration": 996, + "tags": [ + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "cfd0ece4-15ea-9e17-b6da-6bad9c390c59" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "13121a0bff1754358d4ae5dd2e9655f2", + "spanID": "d0c4ff20cdeb2010", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "13121a0bff1754358d4ae5dd2e9655f2", + "spanID": "8d4ae5dd2e9655f2" + } + ], + "startTime": 1708936194376591, + "duration": 8561, + "tags": [ + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "68662b95-d30e-9818-9ced-215ff13a80a4" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "13121a0bff1754358d4ae5dd2e9655f2", + "spanID": "ea6be86c64afad5f", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "13121a0bff1754358d4ae5dd2e9655f2", + "spanID": "d0c4ff20cdeb2010" + } + ], + "startTime": 1708936194379493, + "duration": 1203, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "68662b95-d30e-9818-9ced-215ff13a80a4" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "13121a0bff1754358d4ae5dd2e9655f2", + "spanID": "e5b3ce64723d0827", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "13121a0bff1754358d4ae5dd2e9655f2", + "spanID": "d0c4ff20cdeb2010" + } + ], + "startTime": 1708936194382878, + "duration": 1007, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "68662b95-d30e-9818-9ced-215ff13a80a4" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "217cc8811b1f69886009762f8b231e95", + "spanID": "3ef57d51e79a802f", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "217cc8811b1f69886009762f8b231e95", + "spanID": "6009762f8b231e95" + } + ], + "startTime": 1708936193376614, + "duration": 8717, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "1f6ff72c-6cb6-958e-973d-4572aa78ca56" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "217cc8811b1f69886009762f8b231e95", + "spanID": "ec21c37f85c9bb74", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "217cc8811b1f69886009762f8b231e95", + "spanID": "3ef57d51e79a802f" + } + ], + "startTime": 1708936193379635, + "duration": 1267, + "tags": [ + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "1f6ff72c-6cb6-958e-973d-4572aa78ca56" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "217cc8811b1f69886009762f8b231e95", + "spanID": "5d9a224eb8d1ad1f", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "217cc8811b1f69886009762f8b231e95", + "spanID": "3ef57d51e79a802f" + } + ], + "startTime": 1708936193383157, + "duration": 920, + "tags": [ + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "1f6ff72c-6cb6-958e-973d-4572aa78ca56" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "643cc0f6e5392dd9df8b05e8c0e67917", + "spanID": "45e96ec3e2b18a13", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "643cc0f6e5392dd9df8b05e8c0e67917", + "spanID": "df8b05e8c0e67917" + } + ], + "startTime": 1708936190377548, + "duration": 16067, + "tags": [ + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "3383338f-b28e-9fc5-b7c4-792165378e56" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "643cc0f6e5392dd9df8b05e8c0e67917", + "spanID": "d1bcd472bfb6c01e", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "643cc0f6e5392dd9df8b05e8c0e67917", + "spanID": "45e96ec3e2b18a13" + } + ], + "startTime": 1708936190383636, + "duration": 1653, + "tags": [ + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "3383338f-b28e-9fc5-b7c4-792165378e56" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "643cc0f6e5392dd9df8b05e8c0e67917", + "spanID": "bc89c6dbdd26dd5f", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "643cc0f6e5392dd9df8b05e8c0e67917", + "spanID": "45e96ec3e2b18a13" + } + ], + "startTime": 1708936190388174, + "duration": 3645, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "3383338f-b28e-9fc5-b7c4-792165378e56" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "4a172c8fb80da63d15834c2e339bfbed", + "spanID": "0678c3f4a308835d", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4a172c8fb80da63d15834c2e339bfbed", + "spanID": "15834c2e339bfbed" + } + ], + "startTime": 1708936189376456, + "duration": 12069, + "tags": [ + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "984ada7c-7e93-917a-8920-e4088fead5fe" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "4a172c8fb80da63d15834c2e339bfbed", + "spanID": "bb200ee9a657cf2c", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4a172c8fb80da63d15834c2e339bfbed", + "spanID": "0678c3f4a308835d" + } + ], + "startTime": 1708936189379380, + "duration": 1390, + "tags": [ + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "984ada7c-7e93-917a-8920-e4088fead5fe" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "4a172c8fb80da63d15834c2e339bfbed", + "spanID": "8ec0ae0a40ddee6b", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4a172c8fb80da63d15834c2e339bfbed", + "spanID": "0678c3f4a308835d" + } + ], + "startTime": 1708936189383286, + "duration": 2921, + "tags": [ + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "984ada7c-7e93-917a-8920-e4088fead5fe" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "beadd6993690665fa2b01a138c73e10a", + "spanID": "5b52ad66a4cdce54", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "beadd6993690665fa2b01a138c73e10a", + "spanID": "a2b01a138c73e10a" + } + ], + "startTime": 1708936192376774, + "duration": 10540, + "tags": [ + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8d1e3f4a-e897-98ca-98ec-90da83a10fe2" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "beadd6993690665fa2b01a138c73e10a", + "spanID": "418a10142c36cc0a", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "beadd6993690665fa2b01a138c73e10a", + "spanID": "5b52ad66a4cdce54" + } + ], + "startTime": 1708936192380812, + "duration": 1414, + "tags": [ + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8d1e3f4a-e897-98ca-98ec-90da83a10fe2" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "beadd6993690665fa2b01a138c73e10a", + "spanID": "bf8c20e6635fc4b8", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "beadd6993690665fa2b01a138c73e10a", + "spanID": "5b52ad66a4cdce54" + } + ], + "startTime": 1708936192384949, + "duration": 987, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "8d1e3f4a-e897-98ca-98ec-90da83a10fe2" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "94484a77d1f3abb3c5305124c860900f", + "spanID": "80d80695fdec8610", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "94484a77d1f3abb3c5305124c860900f", + "spanID": "c5305124c860900f" + } + ], + "startTime": 1708936191376589, + "duration": 8786, + "tags": [ + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "ea04b37e-7eaa-97f0-8018-ecc592a6f4f6" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "94484a77d1f3abb3c5305124c860900f", + "spanID": "ae94e95d8f88b714", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "94484a77d1f3abb3c5305124c860900f", + "spanID": "80d80695fdec8610" + } + ], + "startTime": 1708936191379369, + "duration": 1624, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "ea04b37e-7eaa-97f0-8018-ecc592a6f4f6" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "94484a77d1f3abb3c5305124c860900f", + "spanID": "02e2d25a14f551a6", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "94484a77d1f3abb3c5305124c860900f", + "spanID": "80d80695fdec8610" + } + ], + "startTime": 1708936191383195, + "duration": 873, + "tags": [ + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "ea04b37e-7eaa-97f0-8018-ecc592a6f4f6" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "9b0c948d1587e2be1a1a7ff58d5ac745", + "spanID": "a104674d3a746745", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "9b0c948d1587e2be1a1a7ff58d5ac745", + "spanID": "1a1a7ff58d5ac745" + } + ], + "startTime": 1708936187377038, + "duration": 13588, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "b1dedd36-4ed3-9534-a15d-c8b9ebe0006c" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "9b0c948d1587e2be1a1a7ff58d5ac745", + "spanID": "c1d9d14357c61886", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "9b0c948d1587e2be1a1a7ff58d5ac745", + "spanID": "a104674d3a746745" + } + ], + "startTime": 1708936187381437, + "duration": 1474, + "tags": [ + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "b1dedd36-4ed3-9534-a15d-c8b9ebe0006c" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "9b0c948d1587e2be1a1a7ff58d5ac745", + "spanID": "785c080d3525952e", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "9b0c948d1587e2be1a1a7ff58d5ac745", + "spanID": "a104674d3a746745" + } + ], + "startTime": 1708936187385698, + "duration": 3229, + "tags": [ + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "b1dedd36-4ed3-9534-a15d-c8b9ebe0006c" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "077ab779868da060d887fe8ab0580e2a", + "spanID": "e089be1cb383ec44", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "077ab779868da060d887fe8ab0580e2a", + "spanID": "d887fe8ab0580e2a" + } + ], + "startTime": 1708934034898231, + "duration": 13878, + "tags": [ + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "ab7a6c8e-03d7-9b7d-b566-7645cda8ab12" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 2 + }, + { + "traceID": "bc48e08123a75ab7925eebb5e60a0457", + "spanID": "442f074bbc55c724", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "bc48e08123a75ab7925eebb5e60a0457", + "spanID": "925eebb5e60a0457" + } + ], + "startTime": 1708934030899294, + "duration": 19141, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8670b084-be5c-9040-af05-61ef21e1f836" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "bc48e08123a75ab7925eebb5e60a0457", + "spanID": "04dcbb09d2f69b26", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "bc48e08123a75ab7925eebb5e60a0457", + "spanID": "442f074bbc55c724" + } + ], + "startTime": 1708934030909019, + "duration": 1522, + "tags": [ + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8670b084-be5c-9040-af05-61ef21e1f836" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "bc48e08123a75ab7925eebb5e60a0457", + "spanID": "ff2cc52bed8eafb0", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "bc48e08123a75ab7925eebb5e60a0457", + "spanID": "442f074bbc55c724" + } + ], + "startTime": 1708934030913312, + "duration": 2940, + "tags": [ + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8670b084-be5c-9040-af05-61ef21e1f836" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "0fb9ced8e58cfaf678e84dd282523fec", + "spanID": "4c10e65e75605eca", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "0fb9ced8e58cfaf678e84dd282523fec", + "spanID": "78e84dd282523fec" + } + ], + "startTime": 1708934026899105, + "duration": 15095, + "tags": [ + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "485370a1-caaa-94c9-930d-9aefc2d1f2e3" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 2 + }, + { + "traceID": "8e0e1e162b895a0cbb231e6754a40a4d", + "spanID": "daa530ef7111fedd", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "8e0e1e162b895a0cbb231e6754a40a4d", + "spanID": "bb231e6754a40a4d" + } + ], + "startTime": 1708934033898458, + "duration": 20443, + "tags": [ + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "4ab66995-eced-9233-8f3b-553b5f3ba8b7" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "8e0e1e162b895a0cbb231e6754a40a4d", + "spanID": "f4f355f9ec7a0bf7", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "8e0e1e162b895a0cbb231e6754a40a4d", + "spanID": "daa530ef7111fedd" + } + ], + "startTime": 1708934033903971, + "duration": 2327, + "tags": [ + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "4ab66995-eced-9233-8f3b-553b5f3ba8b7" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "8e0e1e162b895a0cbb231e6754a40a4d", + "spanID": "34d332596daf6912", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "8e0e1e162b895a0cbb231e6754a40a4d", + "spanID": "daa530ef7111fedd" + } + ], + "startTime": 1708934033911110, + "duration": 5180, + "tags": [ + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "4ab66995-eced-9233-8f3b-553b5f3ba8b7" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "0ce2364b2518cd64e9ca84d2188b3089", + "spanID": "b3ee7daedac71002", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "0ce2364b2518cd64e9ca84d2188b3089", + "spanID": "e9ca84d2188b3089" + } + ], + "startTime": 1708934032899052, + "duration": 20442, + "tags": [ + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "5e95fdc0-87ef-9a0f-bff2-090bceff0975" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 2 + }, + { + "traceID": "bddc509357bdaa308a2ffd082e7bb248", + "spanID": "3940601871a28687", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "bddc509357bdaa308a2ffd082e7bb248", + "spanID": "8a2ffd082e7bb248" + } + ], + "startTime": 1708934031899173, + "duration": 14678, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "52ca91ec-e9f6-911d-b790-a3f55ef53eba" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "bddc509357bdaa308a2ffd082e7bb248", + "spanID": "b2801364323e1126", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "bddc509357bdaa308a2ffd082e7bb248", + "spanID": "3940601871a28687" + } + ], + "startTime": 1708934031906981, + "duration": 1510, + "tags": [ + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "52ca91ec-e9f6-911d-b790-a3f55ef53eba" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "bddc509357bdaa308a2ffd082e7bb248", + "spanID": "5158a0a5e8752ea0", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "bddc509357bdaa308a2ffd082e7bb248", + "spanID": "3940601871a28687" + } + ], + "startTime": 1708934031911331, + "duration": 1061, + "tags": [ + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "52ca91ec-e9f6-911d-b790-a3f55ef53eba" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "e3501761322628e54ebe7e5c2cebb08b", + "spanID": "0b46b69d100bbba2", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "e3501761322628e54ebe7e5c2cebb08b", + "spanID": "4ebe7e5c2cebb08b" + } + ], + "startTime": 1708934029898145, + "duration": 11296, + "tags": [ + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "92bf73e4-d4cd-967b-9980-559f2af6e581" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "e3501761322628e54ebe7e5c2cebb08b", + "spanID": "2dc92c5ddaa5756a", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "e3501761322628e54ebe7e5c2cebb08b", + "spanID": "0b46b69d100bbba2" + } + ], + "startTime": 1708934029901203, + "duration": 1239, + "tags": [ + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "92bf73e4-d4cd-967b-9980-559f2af6e581" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "e3501761322628e54ebe7e5c2cebb08b", + "spanID": "babb2aafa227ce06", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "e3501761322628e54ebe7e5c2cebb08b", + "spanID": "0b46b69d100bbba2" + } + ], + "startTime": 1708934029904759, + "duration": 3155, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "92bf73e4-d4cd-967b-9980-559f2af6e581" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "4744956a29a0b1373403d24eb45a4eb0", + "spanID": "39fea0853c0a57f8", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4744956a29a0b1373403d24eb45a4eb0", + "spanID": "3403d24eb45a4eb0" + } + ], + "startTime": 1708934028898453, + "duration": 14418, + "tags": [ + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "6117da20-3dc5-99f5-8869-1ae75c1d0b86" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "4744956a29a0b1373403d24eb45a4eb0", + "spanID": "3e4971e7dbee1ca4", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4744956a29a0b1373403d24eb45a4eb0", + "spanID": "39fea0853c0a57f8" + } + ], + "startTime": 1708934028903800, + "duration": 2543, + "tags": [ + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "6117da20-3dc5-99f5-8869-1ae75c1d0b86" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "4744956a29a0b1373403d24eb45a4eb0", + "spanID": "f63821e99aac1e79", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4744956a29a0b1373403d24eb45a4eb0", + "spanID": "39fea0853c0a57f8" + } + ], + "startTime": 1708934028910290, + "duration": 1109, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "6117da20-3dc5-99f5-8869-1ae75c1d0b86" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "3b8b65065a0679d0779fae29a5eb188f", + "spanID": "d7906b2829f75579", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "3b8b65065a0679d0779fae29a5eb188f", + "spanID": "779fae29a5eb188f" + } + ], + "startTime": 1708934027898114, + "duration": 9064, + "tags": [ + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "25f24dc1-4714-938f-829c-0f857cbfafcc" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "3b8b65065a0679d0779fae29a5eb188f", + "spanID": "148168d810c1e176", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "3b8b65065a0679d0779fae29a5eb188f", + "spanID": "d7906b2829f75579" + } + ], + "startTime": 1708934027901120, + "duration": 1267, + "tags": [ + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "25f24dc1-4714-938f-829c-0f857cbfafcc" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "3b8b65065a0679d0779fae29a5eb188f", + "spanID": "e9cbe90093597825", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "3b8b65065a0679d0779fae29a5eb188f", + "spanID": "d7906b2829f75579" + } + ], + "startTime": 1708934027904796, + "duration": 980, + "tags": [ + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "25f24dc1-4714-938f-829c-0f857cbfafcc" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "f1760e2ac82eb67287ebfbab2b03b07f", + "spanID": "41a7813c261274d0", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "f1760e2ac82eb67287ebfbab2b03b07f", + "spanID": "87ebfbab2b03b07f" + } + ], + "startTime": 1708934025898112, + "duration": 9136, + "tags": [ + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "ae9848f8-b223-9e43-bc06-703adf3d16b7" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "f1760e2ac82eb67287ebfbab2b03b07f", + "spanID": "c249db9100b46027", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "f1760e2ac82eb67287ebfbab2b03b07f", + "spanID": "41a7813c261274d0" + } + ], + "startTime": 1708934025900828, + "duration": 1590, + "tags": [ + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "ae9848f8-b223-9e43-bc06-703adf3d16b7" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "f1760e2ac82eb67287ebfbab2b03b07f", + "spanID": "afc1841bf842754c", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "f1760e2ac82eb67287ebfbab2b03b07f", + "spanID": "41a7813c261274d0" + } + ], + "startTime": 1708934025904686, + "duration": 887, + "tags": [ + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "ae9848f8-b223-9e43-bc06-703adf3d16b7" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "980874b3b561cf285dc6ba13aa719862", + "spanID": "ff8442c2e88fd74a", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "980874b3b561cf285dc6ba13aa719862", + "spanID": "5dc6ba13aa719862" + } + ], + "startTime": 1708937268376442, + "duration": 10965, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "0808b41d-d0f4-93cd-a847-e09fdead03c1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "980874b3b561cf285dc6ba13aa719862", + "spanID": "7a10591d5e86ce74", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "980874b3b561cf285dc6ba13aa719862", + "spanID": "ff8442c2e88fd74a" + } + ], + "startTime": 1708937268379427, + "duration": 1246, + "tags": [ + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "0808b41d-d0f4-93cd-a847-e09fdead03c1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "980874b3b561cf285dc6ba13aa719862", + "spanID": "aed1fa7740e39504", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "980874b3b561cf285dc6ba13aa719862", + "spanID": "ff8442c2e88fd74a" + } + ], + "startTime": 1708937268383043, + "duration": 2904, + "tags": [ + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "0808b41d-d0f4-93cd-a847-e09fdead03c1" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "4f957a617438f3f90747356ef834b3ac", + "spanID": "78ed3c3b6597d851", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4f957a617438f3f90747356ef834b3ac", + "spanID": "0747356ef834b3ac" + } + ], + "startTime": 1708937267377540, + "duration": 23558, + "tags": [ + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "f338e37e-4c34-9a2a-97e8-07f7cbbab2a1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "4f957a617438f3f90747356ef834b3ac", + "spanID": "098b1851f9feea3c", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4f957a617438f3f90747356ef834b3ac", + "spanID": "78ed3c3b6597d851" + } + ], + "startTime": 1708937267387671, + "duration": 4035, + "tags": [ + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "f338e37e-4c34-9a2a-97e8-07f7cbbab2a1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "4f957a617438f3f90747356ef834b3ac", + "spanID": "05eda1b3b5af774e", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4f957a617438f3f90747356ef834b3ac", + "spanID": "78ed3c3b6597d851" + } + ], + "startTime": 1708937267396677, + "duration": 2967, + "tags": [ + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "f338e37e-4c34-9a2a-97e8-07f7cbbab2a1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "aef242c3f0ef23b42d51e713dfc5a293", + "spanID": "0ea09c6a8fa79cf8", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "aef242c3f0ef23b42d51e713dfc5a293", + "spanID": "2d51e713dfc5a293" + } + ], + "startTime": 1708937266377536, + "duration": 17626, + "tags": [ + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "fb2e2d67-8933-9fe1-b77c-9beaad9de376" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "aef242c3f0ef23b42d51e713dfc5a293", + "spanID": "6109ea8c90cad1a2", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "aef242c3f0ef23b42d51e713dfc5a293", + "spanID": "0ea09c6a8fa79cf8" + } + ], + "startTime": 1708937266384616, + "duration": 2039, + "tags": [ + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "fb2e2d67-8933-9fe1-b77c-9beaad9de376" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "aef242c3f0ef23b42d51e713dfc5a293", + "spanID": "7cd6063d9a5c3952", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "aef242c3f0ef23b42d51e713dfc5a293", + "spanID": "0ea09c6a8fa79cf8" + } + ], + "startTime": 1708937266389897, + "duration": 3036, + "tags": [ + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "fb2e2d67-8933-9fe1-b77c-9beaad9de376" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "235b6d12d7fb83b748d382eb0e7b225b", + "spanID": "f1aa8a5b6a8c3ed6", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "235b6d12d7fb83b748d382eb0e7b225b", + "spanID": "48d382eb0e7b225b" + } + ], + "startTime": 1708937265376432, + "duration": 10260, + "tags": [ + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "c7f7fdde-9cba-9941-b3c9-b8b820be4810" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "235b6d12d7fb83b748d382eb0e7b225b", + "spanID": "bff22a2dfebc3659", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "235b6d12d7fb83b748d382eb0e7b225b", + "spanID": "f1aa8a5b6a8c3ed6" + } + ], + "startTime": 1708937265379319, + "duration": 1192, + "tags": [ + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "c7f7fdde-9cba-9941-b3c9-b8b820be4810" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "235b6d12d7fb83b748d382eb0e7b225b", + "spanID": "017a328de624b513", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "235b6d12d7fb83b748d382eb0e7b225b", + "spanID": "f1aa8a5b6a8c3ed6" + } + ], + "startTime": 1708937265382699, + "duration": 2623, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "c7f7fdde-9cba-9941-b3c9-b8b820be4810" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "cda6ec43ec9174e97be6c9a2e1caf135", + "spanID": "ec0fa755d44ba7fc", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "cda6ec43ec9174e97be6c9a2e1caf135", + "spanID": "7be6c9a2e1caf135" + } + ], + "startTime": 1708937270376533, + "duration": 11411, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "ce96c402-c9c9-9371-ad03-717187a86a8b" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "cda6ec43ec9174e97be6c9a2e1caf135", + "spanID": "4a186d760abcc996", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "cda6ec43ec9174e97be6c9a2e1caf135", + "spanID": "ec0fa755d44ba7fc" + } + ], + "startTime": 1708937270379631, + "duration": 1317, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "ce96c402-c9c9-9371-ad03-717187a86a8b" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "cda6ec43ec9174e97be6c9a2e1caf135", + "spanID": "50d11e7899d76d2b", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "cda6ec43ec9174e97be6c9a2e1caf135", + "spanID": "ec0fa755d44ba7fc" + } + ], + "startTime": 1708937270383907, + "duration": 2510, + "tags": [ + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "ce96c402-c9c9-9371-ad03-717187a86a8b" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "c29fee442c7bf495b588bc4437949b9a", + "spanID": "36533e154e9bed3d", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "c29fee442c7bf495b588bc4437949b9a", + "spanID": "b588bc4437949b9a" + } + ], + "startTime": 1708937273378284, + "duration": 31143, + "tags": [ + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "1d3ccdfe-4f86-9177-9572-1496db565c8b" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "c29fee442c7bf495b588bc4437949b9a", + "spanID": "cd5967984ecae512", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "c29fee442c7bf495b588bc4437949b9a", + "spanID": "36533e154e9bed3d" + } + ], + "startTime": 1708937273388688, + "duration": 4040, + "tags": [ + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "1d3ccdfe-4f86-9177-9572-1496db565c8b" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "c29fee442c7bf495b588bc4437949b9a", + "spanID": "0652251af6623647", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "c29fee442c7bf495b588bc4437949b9a", + "spanID": "36533e154e9bed3d" + } + ], + "startTime": 1708937273401903, + "duration": 2988, + "tags": [ + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "1d3ccdfe-4f86-9177-9572-1496db565c8b" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "b7a7f6727f95d16877defc37153616ab", + "spanID": "7555974a52f34538", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "b7a7f6727f95d16877defc37153616ab", + "spanID": "77defc37153616ab" + } + ], + "startTime": 1708937272377550, + "duration": 17353, + "tags": [ + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "9ad639f4-0ecf-927c-93c7-1dcc97b649fa" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "b7a7f6727f95d16877defc37153616ab", + "spanID": "f964fd1c32b04ef9", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "b7a7f6727f95d16877defc37153616ab", + "spanID": "7555974a52f34538" + } + ], + "startTime": 1708937272385211, + "duration": 1486, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "9ad639f4-0ecf-927c-93c7-1dcc97b649fa" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "b7a7f6727f95d16877defc37153616ab", + "spanID": "52e55489ab62dcd5", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "b7a7f6727f95d16877defc37153616ab", + "spanID": "7555974a52f34538" + } + ], + "startTime": 1708937272389789, + "duration": 3345, + "tags": [ + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "9ad639f4-0ecf-927c-93c7-1dcc97b649fa" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "51880aaec0abcac7a1cd7bc2e8a60264", + "spanID": "0c1f09f7a222eb98", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "51880aaec0abcac7a1cd7bc2e8a60264", + "spanID": "a1cd7bc2e8a60264" + } + ], + "startTime": 1708937271377672, + "duration": 19636, + "tags": [ + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "c6edb720-79c7-9e8b-a74e-92fa5e447d9d" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "51880aaec0abcac7a1cd7bc2e8a60264", + "spanID": "52d93b4f4c795179", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "51880aaec0abcac7a1cd7bc2e8a60264", + "spanID": "0c1f09f7a222eb98" + } + ], + "startTime": 1708937271386725, + "duration": 2121, + "tags": [ + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "c6edb720-79c7-9e8b-a74e-92fa5e447d9d" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "51880aaec0abcac7a1cd7bc2e8a60264", + "spanID": "82dcede6ad1470bd", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "51880aaec0abcac7a1cd7bc2e8a60264", + "spanID": "0c1f09f7a222eb98" + } + ], + "startTime": 1708937271391822, + "duration": 3787, + "tags": [ + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "c6edb720-79c7-9e8b-a74e-92fa5e447d9d" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "1b5b63a058a116c0ad8f43410097c756", + "spanID": "8f84949862402420", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "1b5b63a058a116c0ad8f43410097c756", + "spanID": "ad8f43410097c756" + } + ], + "startTime": 1708937269376689, + "duration": 13463, + "tags": [ + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "416febd1-66a7-9610-99a6-c86724881cb6" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "1b5b63a058a116c0ad8f43410097c756", + "spanID": "73f7e887e5e247d3", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "1b5b63a058a116c0ad8f43410097c756", + "spanID": "8f84949862402420" + } + ], + "startTime": 1708937269380106, + "duration": 1454, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "416febd1-66a7-9610-99a6-c86724881cb6" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "1b5b63a058a116c0ad8f43410097c756", + "spanID": "b85f7d77200c73b0", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "1b5b63a058a116c0ad8f43410097c756", + "spanID": "8f84949862402420" + } + ], + "startTime": 1708937269384401, + "duration": 3547, + "tags": [ + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "416febd1-66a7-9610-99a6-c86724881cb6" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "4cd15a179c0f853b3d97e7c40226a233", + "spanID": "954ab7fba2265048", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4cd15a179c0f853b3d97e7c40226a233", + "spanID": "3d97e7c40226a233" + } + ], + "startTime": 1708937274376851, + "duration": 15865, + "tags": [ + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "5efdb47e-049f-9f6e-a091-59d20b454fc1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "4cd15a179c0f853b3d97e7c40226a233", + "spanID": "efb05f19e82f21a4", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4cd15a179c0f853b3d97e7c40226a233", + "spanID": "954ab7fba2265048" + } + ], + "startTime": 1708937274381904, + "duration": 2483, + "tags": [ + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "5efdb47e-049f-9f6e-a091-59d20b454fc1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "4cd15a179c0f853b3d97e7c40226a233", + "spanID": "2366ad39f06a2b74", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4cd15a179c0f853b3d97e7c40226a233", + "spanID": "954ab7fba2265048" + } + ], + "startTime": 1708937274389608, + "duration": 1137, + "tags": [ + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "5efdb47e-049f-9f6e-a091-59d20b454fc1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "47b3e82103c2429d012ffca40d593463", + "spanID": "5453f2d6f3fc7281", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "47b3e82103c2429d012ffca40d593463", + "spanID": "012ffca40d593463" + } + ], + "startTime": 1708938349376664, + "duration": 11335, + "tags": [ + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "ce58c2db-705b-9783-8fcc-2def9a4546f1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "47b3e82103c2429d012ffca40d593463", + "spanID": "e1a6c41a33a85de8", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "47b3e82103c2429d012ffca40d593463", + "spanID": "5453f2d6f3fc7281" + } + ], + "startTime": 1708938349379823, + "duration": 1576, + "tags": [ + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "ce58c2db-705b-9783-8fcc-2def9a4546f1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "47b3e82103c2429d012ffca40d593463", + "spanID": "1d973536e8e7a80a", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "47b3e82103c2429d012ffca40d593463", + "spanID": "5453f2d6f3fc7281" + } + ], + "startTime": 1708938349383821, + "duration": 2769, + "tags": [ + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "ce58c2db-705b-9783-8fcc-2def9a4546f1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "1e4dd98d2ba5cd866f7f6545e0af1f10", + "spanID": "80188365cc9cff28", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "1e4dd98d2ba5cd866f7f6545e0af1f10", + "spanID": "6f7f6545e0af1f10" + } + ], + "startTime": 1708938348377501, + "duration": 13613, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "191d26b1-3075-9158-9033-b3fc7e7ab1f2" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "1e4dd98d2ba5cd866f7f6545e0af1f10", + "spanID": "42156b53106621bd", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "1e4dd98d2ba5cd866f7f6545e0af1f10", + "spanID": "80188365cc9cff28" + } + ], + "startTime": 1708938348383370, + "duration": 1602, + "tags": [ + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "191d26b1-3075-9158-9033-b3fc7e7ab1f2" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "1e4dd98d2ba5cd866f7f6545e0af1f10", + "spanID": "d691f3843f0960f1", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "1e4dd98d2ba5cd866f7f6545e0af1f10", + "spanID": "80188365cc9cff28" + } + ], + "startTime": 1708938348388433, + "duration": 1095, + "tags": [ + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "191d26b1-3075-9158-9033-b3fc7e7ab1f2" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "89044da85ac92ba8c5ebfba411c96ca6", + "spanID": "29b978c6a60f4ab9", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "89044da85ac92ba8c5ebfba411c96ca6", + "spanID": "c5ebfba411c96ca6" + } + ], + "startTime": 1708938347377486, + "duration": 28991, + "tags": [ + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "3a785085-2f47-9118-b297-a12338450e82" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "89044da85ac92ba8c5ebfba411c96ca6", + "spanID": "375e38472fd45d9a", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "89044da85ac92ba8c5ebfba411c96ca6", + "spanID": "29b978c6a60f4ab9" + } + ], + "startTime": 1708938347387561, + "duration": 4056, + "tags": [ + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "3a785085-2f47-9118-b297-a12338450e82" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "89044da85ac92ba8c5ebfba411c96ca6", + "spanID": "6b02da72740b57df", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "89044da85ac92ba8c5ebfba411c96ca6", + "spanID": "29b978c6a60f4ab9" + } + ], + "startTime": 1708938347400163, + "duration": 2932, + "tags": [ + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "3a785085-2f47-9118-b297-a12338450e82" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "1f541d3f4bcc5d8af84d94617102bf84", + "spanID": "cb0dae5ba5360d9e", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "1f541d3f4bcc5d8af84d94617102bf84", + "spanID": "f84d94617102bf84" + } + ], + "startTime": 1708938346376343, + "duration": 9250, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "a3b4e32c-afa4-998d-9149-9e5d377165fc" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "4294" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "1f541d3f4bcc5d8af84d94617102bf84", + "spanID": "e628dbd97acbeb09", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "1f541d3f4bcc5d8af84d94617102bf84", + "spanID": "cb0dae5ba5360d9e" + } + ], + "startTime": 1708938346379231, + "duration": 1654, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "a3b4e32c-afa4-998d-9149-9e5d377165fc" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "1f541d3f4bcc5d8af84d94617102bf84", + "spanID": "15cf16836b87b182", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "1f541d3f4bcc5d8af84d94617102bf84", + "spanID": "cb0dae5ba5360d9e" + } + ], + "startTime": 1708938346383513, + "duration": 854, + "tags": [ + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "358" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "a3b4e32c-afa4-998d-9149-9e5d377165fc" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "d8cd0ca1dd35b02a96428bcbdc622ebf", + "spanID": "72e7172c44d66967", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "d8cd0ca1dd35b02a96428bcbdc622ebf", + "spanID": "96428bcbdc622ebf" + } + ], + "startTime": 1708938345377237, + "duration": 12013, + "tags": [ + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "b5295e2b-3cee-979b-a8d6-21647842bdb1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "d8cd0ca1dd35b02a96428bcbdc622ebf", + "spanID": "aa7f7241087518e4", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "d8cd0ca1dd35b02a96428bcbdc622ebf", + "spanID": "72e7172c44d66967" + } + ], + "startTime": 1708938345381081, + "duration": 1262, + "tags": [ + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "b5295e2b-3cee-979b-a8d6-21647842bdb1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "d8cd0ca1dd35b02a96428bcbdc622ebf", + "spanID": "78c624f195641b81", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "d8cd0ca1dd35b02a96428bcbdc622ebf", + "spanID": "72e7172c44d66967" + } + ], + "startTime": 1708938345385200, + "duration": 2634, + "tags": [ + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "b5295e2b-3cee-979b-a8d6-21647842bdb1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "cc835be4a12d9502e9d183dd13ece273", + "spanID": "16406c3cb1635213", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "cc835be4a12d9502e9d183dd13ece273", + "spanID": "e9d183dd13ece273" + } + ], + "startTime": 1708938350376978, + "duration": 15592, + "tags": [ + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "57e24ddd-9d2b-9337-9dd8-0668db26553e" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "cc835be4a12d9502e9d183dd13ece273", + "spanID": "09115d823c891f74", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "cc835be4a12d9502e9d183dd13ece273", + "spanID": "16406c3cb1635213" + } + ], + "startTime": 1708938350382739, + "duration": 1904, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "57e24ddd-9d2b-9337-9dd8-0668db26553e" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "cc835be4a12d9502e9d183dd13ece273", + "spanID": "e0348888d90dffd4", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "cc835be4a12d9502e9d183dd13ece273", + "spanID": "16406c3cb1635213" + } + ], + "startTime": 1708938350387826, + "duration": 3057, + "tags": [ + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "57e24ddd-9d2b-9337-9dd8-0668db26553e" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "4d494f3aefd11a854464b4b40d9af590", + "spanID": "ec50033242a57632", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4d494f3aefd11a854464b4b40d9af590", + "spanID": "4464b4b40d9af590" + } + ], + "startTime": 1708938353376653, + "duration": 11065, + "tags": [ + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8b6b8f65-7bfd-91e9-b552-2001d99ab58a" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "4d494f3aefd11a854464b4b40d9af590", + "spanID": "04a2b4f05c95faf8", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4d494f3aefd11a854464b4b40d9af590", + "spanID": "ec50033242a57632" + } + ], + "startTime": 1708938353379764, + "duration": 1342, + "tags": [ + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8b6b8f65-7bfd-91e9-b552-2001d99ab58a" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "4d494f3aefd11a854464b4b40d9af590", + "spanID": "53dbdaa1e64e56de", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4d494f3aefd11a854464b4b40d9af590", + "spanID": "ec50033242a57632" + } + ], + "startTime": 1708938353383516, + "duration": 2741, + "tags": [ + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8b6b8f65-7bfd-91e9-b552-2001d99ab58a" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "a38db239f8dde4517e4f8b2a7ec9a14d", + "spanID": "6262cfac91341a5f", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a38db239f8dde4517e4f8b2a7ec9a14d", + "spanID": "7e4f8b2a7ec9a14d" + } + ], + "startTime": 1708938352376974, + "duration": 14723, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "220ebc9c-82bf-959e-9b4e-04e704fab323" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "a38db239f8dde4517e4f8b2a7ec9a14d", + "spanID": "36ea5cf7175dee4f", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a38db239f8dde4517e4f8b2a7ec9a14d", + "spanID": "6262cfac91341a5f" + } + ], + "startTime": 1708938352383263, + "duration": 1361, + "tags": [ + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "220ebc9c-82bf-959e-9b4e-04e704fab323" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "a38db239f8dde4517e4f8b2a7ec9a14d", + "spanID": "0810c0df42aaed25", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a38db239f8dde4517e4f8b2a7ec9a14d", + "spanID": "6262cfac91341a5f" + } + ], + "startTime": 1708938352387171, + "duration": 3017, + "tags": [ + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "220ebc9c-82bf-959e-9b4e-04e704fab323" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "5136595e60d0d5360d748c509bf47b45", + "spanID": "18564bf8dc122270", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "5136595e60d0d5360d748c509bf47b45", + "spanID": "0d748c509bf47b45" + } + ], + "startTime": 1708938351376490, + "duration": 10744, + "tags": [ + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "058d88b8-4052-9a85-b74d-fe32c360b8f0" + }, + { + "key": "response_size", + "type": "string", + "value": "5294" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "5136595e60d0d5360d748c509bf47b45", + "spanID": "8e8fbce9250fb356", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "5136595e60d0d5360d748c509bf47b45", + "spanID": "18564bf8dc122270" + } + ], + "startTime": 1708938351379263, + "duration": 1612, + "tags": [ + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "058d88b8-4052-9a85-b74d-fe32c360b8f0" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "5136595e60d0d5360d748c509bf47b45", + "spanID": "f6663c28457fb7c8", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "5136595e60d0d5360d748c509bf47b45", + "spanID": "18564bf8dc122270" + } + ], + "startTime": 1708938351383112, + "duration": 2672, + "tags": [ + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_size", + "type": "string", + "value": "442" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "058d88b8-4052-9a85-b74d-fe32c360b8f0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "873782dad126d88d9936021f99bf0efc", + "spanID": "63928588ba6c946d", + "operationName": "productpage.bookinfo.svc.cluster.local:9080/productpage", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "873782dad126d88d9936021f99bf0efc", + "spanID": "9936021f99bf0efc" + } + ], + "startTime": 1708938354377043, + "duration": 11548, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "4c7441d9-351f-9d02-a62a-6be424fb089c" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "peer.address", + "type": "string", + "value": "envoy://internal_client_address/" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://192.168.49.2:31793/productpage" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "5289" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p2", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "873782dad126d88d9936021f99bf0efc", + "spanID": "39ee3d96d520824b", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "873782dad126d88d9936021f99bf0efc", + "spanID": "63928588ba6c946d" + } + ], + "startTime": 1708938354380359, + "duration": 1298, + "tags": [ + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||details.bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "4c7441d9-351f-9d02-a62a-6be424fb089c" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p3", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + }, + { + "traceID": "873782dad126d88d9936021f99bf0efc", + "spanID": "40203523cd9b44d1", + "operationName": "reviews.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "873782dad126d88d9936021f99bf0efc", + "spanID": "63928588ba6c946d" + } + ], + "startTime": 1708938354383933, + "duration": 2618, + "tags": [ + { + "key": "http.url", + "type": "string", + "value": "http://reviews:9080/reviews/0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.29" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|9080||reviews.bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.29~productpage-v1-675fc69cf-t54lj.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "productpage" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "4c7441d9-351f-9d02-a62a-6be424fb089c" + }, + { + "key": "response_size", + "type": "string", + "value": "437" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p5", + "process": { + "serviceName": "productpage.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762973 + } + ] + }, + "warnings": null, + "traceSize": 8 + } +] diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/logs.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/logs.json new file mode 100644 index 0000000000..7fc09931da --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/logs.json @@ -0,0 +1,18005 @@ +{ + "entries": [ + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 38d0ffa71734ceb6d949d3a7fd682f84\\r\\nX-B3-SpanId: 7e7d39efdc6d4f4c\\r\\nX-B3-ParentSpanId: d949d3a7fd682f84\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 3acab9b9-2f1b-95af-b796-1d22c32c8c1b\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:03.906", + "timestampUnix": 1708933983906 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:03.924", + "timestampUnix": 1708933983924 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:03.924", + "timestampUnix": 1708933983924 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:03.924", + "timestampUnix": 1708933983924 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:02 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:03.924", + "timestampUnix": 1708933983924 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:03.924", + "timestampUnix": 1708933983924 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:03.924", + "timestampUnix": 1708933983924 + }, + { + "message": "header: x-envoy-upstream-service-time: 0", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:03.924", + "timestampUnix": 1708933983924 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:03.924", + "timestampUnix": 1708933983924 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:03.924", + "timestampUnix": 1708933983924 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:03] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:03.924", + "timestampUnix": 1708933983924 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:04.900", + "timestampUnix": 1708933984900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 5619f3895986b346aea3720202b6339e\\r\\nX-B3-SpanId: 5660fdd94d4b4f37\\r\\nX-B3-ParentSpanId: aea3720202b6339e\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 14117d51-61a3-915e-9864-4fc0ed27f878\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:04.903", + "timestampUnix": 1708933984903 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:04.903", + "timestampUnix": 1708933984903 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:04.903", + "timestampUnix": 1708933984903 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:04.903", + "timestampUnix": 1708933984903 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:04 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:04.903", + "timestampUnix": 1708933984903 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:04.903", + "timestampUnix": 1708933984903 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:04.903", + "timestampUnix": 1708933984903 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:04.903", + "timestampUnix": 1708933984903 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:04.905", + "timestampUnix": 1708933984905 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 5619f3895986b346aea3720202b6339e\\r\\nX-B3-SpanId: 5660fdd94d4b4f37\\r\\nX-B3-ParentSpanId: aea3720202b6339e\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 14117d51-61a3-915e-9864-4fc0ed27f878\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:04.909", + "timestampUnix": 1708933984909 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:04.909", + "timestampUnix": 1708933984909 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:04.909", + "timestampUnix": 1708933984909 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:04.909", + "timestampUnix": 1708933984909 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:04 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:04.909", + "timestampUnix": 1708933984909 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:04.909", + "timestampUnix": 1708933984909 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:04.909", + "timestampUnix": 1708933984909 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:04.909", + "timestampUnix": 1708933984909 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:04.909", + "timestampUnix": 1708933984909 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:04.909", + "timestampUnix": 1708933984909 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:04] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:04.910", + "timestampUnix": 1708933984910 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:05.901", + "timestampUnix": 1708933985901 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: f0e9e7f89f5c963e5dd4da53255d0503\\r\\nX-B3-SpanId: b63386feb3dbb276\\r\\nX-B3-ParentSpanId: 5dd4da53255d0503\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 07a3d6d8-a116-9303-b4b7-3669c03d22a5\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:05.904", + "timestampUnix": 1708933985904 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:05.904", + "timestampUnix": 1708933985904 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:05.904", + "timestampUnix": 1708933985904 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:05.904", + "timestampUnix": 1708933985904 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:05 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:05.904", + "timestampUnix": 1708933985904 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:05.904", + "timestampUnix": 1708933985904 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:05.904", + "timestampUnix": 1708933985904 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:05.904", + "timestampUnix": 1708933985904 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:05.905", + "timestampUnix": 1708933985905 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: f0e9e7f89f5c963e5dd4da53255d0503\\r\\nX-B3-SpanId: b63386feb3dbb276\\r\\nX-B3-ParentSpanId: 5dd4da53255d0503\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 07a3d6d8-a116-9303-b4b7-3669c03d22a5\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:05.909", + "timestampUnix": 1708933985909 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:05.909", + "timestampUnix": 1708933985909 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:05.909", + "timestampUnix": 1708933985909 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:05.909", + "timestampUnix": 1708933985909 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:05 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:05.909", + "timestampUnix": 1708933985909 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:05.909", + "timestampUnix": 1708933985909 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:05.909", + "timestampUnix": 1708933985909 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:05.909", + "timestampUnix": 1708933985909 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:05.909", + "timestampUnix": 1708933985909 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:05.909", + "timestampUnix": 1708933985909 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:05] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:05.910", + "timestampUnix": 1708933985910 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:06.900", + "timestampUnix": 1708933986900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 4f852eaecd20a11897b64f5f01d35a39\\r\\nX-B3-SpanId: ac75a338611cc556\\r\\nX-B3-ParentSpanId: 97b64f5f01d35a39\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 92dd6a87-6626-9fe0-a62e-0d8affddb4d1\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:06.902", + "timestampUnix": 1708933986902 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:06.902", + "timestampUnix": 1708933986902 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:06.902", + "timestampUnix": 1708933986902 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:06.902", + "timestampUnix": 1708933986902 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:06 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:06.902", + "timestampUnix": 1708933986902 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:06.902", + "timestampUnix": 1708933986902 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:06.902", + "timestampUnix": 1708933986902 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:06.902", + "timestampUnix": 1708933986902 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:06.903", + "timestampUnix": 1708933986903 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 4f852eaecd20a11897b64f5f01d35a39\\r\\nX-B3-SpanId: ac75a338611cc556\\r\\nX-B3-ParentSpanId: 97b64f5f01d35a39\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 92dd6a87-6626-9fe0-a62e-0d8affddb4d1\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:06.907", + "timestampUnix": 1708933986907 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:06.907", + "timestampUnix": 1708933986907 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:06.907", + "timestampUnix": 1708933986907 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:06.907", + "timestampUnix": 1708933986907 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:06 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:06.907", + "timestampUnix": 1708933986907 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:06.907", + "timestampUnix": 1708933986907 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:06.907", + "timestampUnix": 1708933986907 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:06.907", + "timestampUnix": 1708933986907 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:06.907", + "timestampUnix": 1708933986907 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:06.907", + "timestampUnix": 1708933986907 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:06] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:06.908", + "timestampUnix": 1708933986908 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:07.900", + "timestampUnix": 1708933987900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: d717f350e523b6c820e10e7c31654de9\\r\\nX-B3-SpanId: e3d3248e45b70f0d\\r\\nX-B3-ParentSpanId: 20e10e7c31654de9\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 72b697df-703a-9d73-94de-130ae4c1a53c\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:07.902", + "timestampUnix": 1708933987902 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:07.902", + "timestampUnix": 1708933987902 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:07.902", + "timestampUnix": 1708933987902 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:07.902", + "timestampUnix": 1708933987902 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:07 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:07.902", + "timestampUnix": 1708933987902 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:07.902", + "timestampUnix": 1708933987902 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:07.902", + "timestampUnix": 1708933987902 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:07.902", + "timestampUnix": 1708933987902 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:07.903", + "timestampUnix": 1708933987903 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: d717f350e523b6c820e10e7c31654de9\\r\\nX-B3-SpanId: e3d3248e45b70f0d\\r\\nX-B3-ParentSpanId: 20e10e7c31654de9\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 72b697df-703a-9d73-94de-130ae4c1a53c\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:07.907", + "timestampUnix": 1708933987907 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:07.907", + "timestampUnix": 1708933987907 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:07.907", + "timestampUnix": 1708933987907 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:07.907", + "timestampUnix": 1708933987907 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:06 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:07.907", + "timestampUnix": 1708933987907 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:07.907", + "timestampUnix": 1708933987907 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:07.907", + "timestampUnix": 1708933987907 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:07.907", + "timestampUnix": 1708933987907 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:07.907", + "timestampUnix": 1708933987907 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:07.907", + "timestampUnix": 1708933987907 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:07] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:07.907", + "timestampUnix": 1708933987907 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.1 - - [26/Feb/2024 07:53:07] \"GET /metrics HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:07.991", + "timestampUnix": 1708933987991 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:08.905", + "timestampUnix": 1708933988905 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: d9db05f16e6981b566feeca1d10adc70\\r\\nX-B3-SpanId: 095a261511a40dc7\\r\\nX-B3-ParentSpanId: 66feeca1d10adc70\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 4efd1090-8a73-9499-b407-3293d24bb14c\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:08.908", + "timestampUnix": 1708933988908 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:08.908", + "timestampUnix": 1708933988908 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:08.908", + "timestampUnix": 1708933988908 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:08.908", + "timestampUnix": 1708933988908 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:08 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:08.908", + "timestampUnix": 1708933988908 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:08.908", + "timestampUnix": 1708933988908 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:08.908", + "timestampUnix": 1708933988908 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:08.908", + "timestampUnix": 1708933988908 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:08.910", + "timestampUnix": 1708933988910 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: d9db05f16e6981b566feeca1d10adc70\\r\\nX-B3-SpanId: 095a261511a40dc7\\r\\nX-B3-ParentSpanId: 66feeca1d10adc70\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 4efd1090-8a73-9499-b407-3293d24bb14c\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:08.915", + "timestampUnix": 1708933988915 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:08.915", + "timestampUnix": 1708933988915 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:08.915", + "timestampUnix": 1708933988915 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:08.915", + "timestampUnix": 1708933988915 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:08 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:08.915", + "timestampUnix": 1708933988915 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:08.915", + "timestampUnix": 1708933988915 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:08.915", + "timestampUnix": 1708933988915 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:08.915", + "timestampUnix": 1708933988915 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:08.915", + "timestampUnix": 1708933988915 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:08.915", + "timestampUnix": 1708933988915 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:08] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:08.916", + "timestampUnix": 1708933988916 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:09.907", + "timestampUnix": 1708933989907 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 26993210778b697c7352806b76ab1d0f\\r\\nX-B3-SpanId: 68618d9d800d7599\\r\\nX-B3-ParentSpanId: 7352806b76ab1d0f\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: e3432858-1830-9003-8524-4760b873b895\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:09.916", + "timestampUnix": 1708933989916 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:09.916", + "timestampUnix": 1708933989916 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:09.916", + "timestampUnix": 1708933989916 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:09.916", + "timestampUnix": 1708933989916 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:09 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:09.916", + "timestampUnix": 1708933989916 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:09.916", + "timestampUnix": 1708933989916 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:09.916", + "timestampUnix": 1708933989916 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:09.916", + "timestampUnix": 1708933989916 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:09.920", + "timestampUnix": 1708933989920 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 26993210778b697c7352806b76ab1d0f\\r\\nX-B3-SpanId: 68618d9d800d7599\\r\\nX-B3-ParentSpanId: 7352806b76ab1d0f\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: e3432858-1830-9003-8524-4760b873b895\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:09.924", + "timestampUnix": 1708933989924 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:09.924", + "timestampUnix": 1708933989924 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:09.924", + "timestampUnix": 1708933989924 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:09.924", + "timestampUnix": 1708933989924 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:09 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:09.924", + "timestampUnix": 1708933989924 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:09.924", + "timestampUnix": 1708933989924 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:09.924", + "timestampUnix": 1708933989924 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:09.924", + "timestampUnix": 1708933989924 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:09.924", + "timestampUnix": 1708933989924 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:09.924", + "timestampUnix": 1708933989924 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:09] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:09.926", + "timestampUnix": 1708933989926 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:10.907", + "timestampUnix": 1708933990907 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: db3e4787e190de43f8e1d8b2378d73ec\\r\\nX-B3-SpanId: ac2acd97419c37d4\\r\\nX-B3-ParentSpanId: f8e1d8b2378d73ec\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: aa45f94e-46ea-9381-b0c5-be980c1ba833\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:10.910", + "timestampUnix": 1708933990910 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:10.910", + "timestampUnix": 1708933990910 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:10.910", + "timestampUnix": 1708933990910 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:10.910", + "timestampUnix": 1708933990910 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:10 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:10.910", + "timestampUnix": 1708933990910 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:10.910", + "timestampUnix": 1708933990910 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:10.910", + "timestampUnix": 1708933990910 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:10.910", + "timestampUnix": 1708933990910 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:10.912", + "timestampUnix": 1708933990912 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: db3e4787e190de43f8e1d8b2378d73ec\\r\\nX-B3-SpanId: ac2acd97419c37d4\\r\\nX-B3-ParentSpanId: f8e1d8b2378d73ec\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: aa45f94e-46ea-9381-b0c5-be980c1ba833\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:10.914", + "timestampUnix": 1708933990914 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:10.914", + "timestampUnix": 1708933990914 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:10.914", + "timestampUnix": 1708933990914 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:10.914", + "timestampUnix": 1708933990914 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:10 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:10.914", + "timestampUnix": 1708933990914 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:10.914", + "timestampUnix": 1708933990914 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:10.914", + "timestampUnix": 1708933990914 + }, + { + "message": "header: x-envoy-upstream-service-time: 0", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:10.914", + "timestampUnix": 1708933990914 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:10.914", + "timestampUnix": 1708933990914 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:10.914", + "timestampUnix": 1708933990914 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:10] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:10.915", + "timestampUnix": 1708933990915 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:11.900", + "timestampUnix": 1708933991900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 9c1a637d0e6d26de0ab8c10a17c84f1f\\r\\nX-B3-SpanId: 1a827379acd47c69\\r\\nX-B3-ParentSpanId: 0ab8c10a17c84f1f\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 57970fb4-34de-900f-be26-d8d4f1201787\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:11.902", + "timestampUnix": 1708933991902 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:11.902", + "timestampUnix": 1708933991902 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:11.902", + "timestampUnix": 1708933991902 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:11.902", + "timestampUnix": 1708933991902 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:11 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:11.902", + "timestampUnix": 1708933991902 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:11.902", + "timestampUnix": 1708933991902 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:11.902", + "timestampUnix": 1708933991902 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:11.902", + "timestampUnix": 1708933991902 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:11.903", + "timestampUnix": 1708933991903 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 9c1a637d0e6d26de0ab8c10a17c84f1f\\r\\nX-B3-SpanId: 1a827379acd47c69\\r\\nX-B3-ParentSpanId: 0ab8c10a17c84f1f\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 57970fb4-34de-900f-be26-d8d4f1201787\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:11.907", + "timestampUnix": 1708933991907 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:11.907", + "timestampUnix": 1708933991907 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:11.907", + "timestampUnix": 1708933991907 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:11.907", + "timestampUnix": 1708933991907 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:11 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:11.907", + "timestampUnix": 1708933991907 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:11.907", + "timestampUnix": 1708933991907 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:11.907", + "timestampUnix": 1708933991907 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:11.907", + "timestampUnix": 1708933991907 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:11.907", + "timestampUnix": 1708933991907 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:11.907", + "timestampUnix": 1708933991907 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:11] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:11.908", + "timestampUnix": 1708933991908 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:12.903", + "timestampUnix": 1708933992903 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 390984402d14b3c4cb829d228d7b2455\\r\\nX-B3-SpanId: 292b7634ce195f0f\\r\\nX-B3-ParentSpanId: cb829d228d7b2455\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: ddc324ae-028e-9b38-8d26-806480f1518a\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:12.908", + "timestampUnix": 1708933992908 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:12.908", + "timestampUnix": 1708933992908 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:12.908", + "timestampUnix": 1708933992908 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:12.908", + "timestampUnix": 1708933992908 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:12 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:12.908", + "timestampUnix": 1708933992908 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:12.908", + "timestampUnix": 1708933992908 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:12.908", + "timestampUnix": 1708933992908 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:12.908", + "timestampUnix": 1708933992908 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:12.912", + "timestampUnix": 1708933992912 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 390984402d14b3c4cb829d228d7b2455\\r\\nX-B3-SpanId: 292b7634ce195f0f\\r\\nX-B3-ParentSpanId: cb829d228d7b2455\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: ddc324ae-028e-9b38-8d26-806480f1518a\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:12.915", + "timestampUnix": 1708933992915 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:12.915", + "timestampUnix": 1708933992915 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:12.915", + "timestampUnix": 1708933992915 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:12.915", + "timestampUnix": 1708933992915 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:12 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:12.915", + "timestampUnix": 1708933992915 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:12.915", + "timestampUnix": 1708933992915 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:12.915", + "timestampUnix": 1708933992915 + }, + { + "message": "header: x-envoy-upstream-service-time: 0", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:12.915", + "timestampUnix": 1708933992915 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:12.915", + "timestampUnix": 1708933992915 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:12.915", + "timestampUnix": 1708933992915 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:12] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:12.916", + "timestampUnix": 1708933992916 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:13.906", + "timestampUnix": 1708933993906 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: ee8674d1d5d46838664248d7817b885a\\r\\nX-B3-SpanId: 346021df1e7849be\\r\\nX-B3-ParentSpanId: 664248d7817b885a\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 7cea4c46-7e36-94e4-ac20-b97fbfbe0f35\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:13.908", + "timestampUnix": 1708933993908 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:13.908", + "timestampUnix": 1708933993908 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:13.908", + "timestampUnix": 1708933993908 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:13.908", + "timestampUnix": 1708933993908 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:13 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:13.908", + "timestampUnix": 1708933993908 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:13.908", + "timestampUnix": 1708933993908 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:13.908", + "timestampUnix": 1708933993908 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:13.908", + "timestampUnix": 1708933993908 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:13.910", + "timestampUnix": 1708933993910 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: ee8674d1d5d46838664248d7817b885a\\r\\nX-B3-SpanId: 346021df1e7849be\\r\\nX-B3-ParentSpanId: 664248d7817b885a\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 7cea4c46-7e36-94e4-ac20-b97fbfbe0f35\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:13.912", + "timestampUnix": 1708933993912 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:13.912", + "timestampUnix": 1708933993912 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:13.912", + "timestampUnix": 1708933993912 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:13.912", + "timestampUnix": 1708933993912 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:12 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:13.912", + "timestampUnix": 1708933993912 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:13.912", + "timestampUnix": 1708933993912 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:13.913", + "timestampUnix": 1708933993913 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:13.913", + "timestampUnix": 1708933993913 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:13.913", + "timestampUnix": 1708933993913 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:13.913", + "timestampUnix": 1708933993913 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:13] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:13.914", + "timestampUnix": 1708933993914 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:14.901", + "timestampUnix": 1708933994901 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 423398647b3faf4c532c08a0a7b11eee\\r\\nX-B3-SpanId: 5e430c2fb24fc3d0\\r\\nX-B3-ParentSpanId: 532c08a0a7b11eee\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 019ed065-f57b-9727-9311-71188b0ae3b7\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:14.903", + "timestampUnix": 1708933994903 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:14.903", + "timestampUnix": 1708933994903 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:14.903", + "timestampUnix": 1708933994903 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:14.903", + "timestampUnix": 1708933994903 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:14 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:14.903", + "timestampUnix": 1708933994903 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:14.903", + "timestampUnix": 1708933994903 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:14.903", + "timestampUnix": 1708933994903 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:14.903", + "timestampUnix": 1708933994903 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:14.905", + "timestampUnix": 1708933994905 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 423398647b3faf4c532c08a0a7b11eee\\r\\nX-B3-SpanId: 5e430c2fb24fc3d0\\r\\nX-B3-ParentSpanId: 532c08a0a7b11eee\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 019ed065-f57b-9727-9311-71188b0ae3b7\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:14.909", + "timestampUnix": 1708933994909 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:14.909", + "timestampUnix": 1708933994909 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:14.909", + "timestampUnix": 1708933994909 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:14.909", + "timestampUnix": 1708933994909 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:14 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:14.909", + "timestampUnix": 1708933994909 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:14.909", + "timestampUnix": 1708933994909 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:14.909", + "timestampUnix": 1708933994909 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:14.909", + "timestampUnix": 1708933994909 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:14.909", + "timestampUnix": 1708933994909 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:14.909", + "timestampUnix": 1708933994909 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:14] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:14.910", + "timestampUnix": 1708933994910 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:15.906", + "timestampUnix": 1708933995906 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: ff6d9afd0f9838a120787696540438ba\\r\\nX-B3-SpanId: dc8b92a8a115abfa\\r\\nX-B3-ParentSpanId: 20787696540438ba\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: d98f0bc7-4d2c-915f-9604-e060ceffec06\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:15.910", + "timestampUnix": 1708933995910 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:15.910", + "timestampUnix": 1708933995910 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:15.910", + "timestampUnix": 1708933995910 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:15.910", + "timestampUnix": 1708933995910 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:15 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:15.910", + "timestampUnix": 1708933995910 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:15.910", + "timestampUnix": 1708933995910 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:15.910", + "timestampUnix": 1708933995910 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:15.910", + "timestampUnix": 1708933995910 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:15.912", + "timestampUnix": 1708933995912 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: ff6d9afd0f9838a120787696540438ba\\r\\nX-B3-SpanId: dc8b92a8a115abfa\\r\\nX-B3-ParentSpanId: 20787696540438ba\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: d98f0bc7-4d2c-915f-9604-e060ceffec06\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:15.917", + "timestampUnix": 1708933995917 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:15.917", + "timestampUnix": 1708933995917 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:15.917", + "timestampUnix": 1708933995917 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:15.917", + "timestampUnix": 1708933995917 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:15 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:15.917", + "timestampUnix": 1708933995917 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:15.917", + "timestampUnix": 1708933995917 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:15.917", + "timestampUnix": 1708933995917 + }, + { + "message": "header: x-envoy-upstream-service-time: 4", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:15.917", + "timestampUnix": 1708933995917 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:15.917", + "timestampUnix": 1708933995917 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:15.917", + "timestampUnix": 1708933995917 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:15] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:15.918", + "timestampUnix": 1708933995918 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:16.900", + "timestampUnix": 1708933996900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 59af6ebe03a25441bae8f0f3073af7f3\\r\\nX-B3-SpanId: c5e73d541febb08b\\r\\nX-B3-ParentSpanId: bae8f0f3073af7f3\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 95924da3-80b3-91a5-8c26-8f15a2a5588a\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:16.902", + "timestampUnix": 1708933996902 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:16.902", + "timestampUnix": 1708933996902 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:16.902", + "timestampUnix": 1708933996902 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:16.902", + "timestampUnix": 1708933996902 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:16 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:16.902", + "timestampUnix": 1708933996902 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:16.902", + "timestampUnix": 1708933996902 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:16.902", + "timestampUnix": 1708933996902 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:16.902", + "timestampUnix": 1708933996902 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:16.904", + "timestampUnix": 1708933996904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 59af6ebe03a25441bae8f0f3073af7f3\\r\\nX-B3-SpanId: c5e73d541febb08b\\r\\nX-B3-ParentSpanId: bae8f0f3073af7f3\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 95924da3-80b3-91a5-8c26-8f15a2a5588a\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:16.907", + "timestampUnix": 1708933996907 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:16.907", + "timestampUnix": 1708933996907 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:16.907", + "timestampUnix": 1708933996907 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:16.907", + "timestampUnix": 1708933996907 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:15 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:16.907", + "timestampUnix": 1708933996907 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:16.907", + "timestampUnix": 1708933996907 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:16.907", + "timestampUnix": 1708933996907 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:16.907", + "timestampUnix": 1708933996907 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:16.907", + "timestampUnix": 1708933996907 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:16.907", + "timestampUnix": 1708933996907 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:16] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:16.908", + "timestampUnix": 1708933996908 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:17.900", + "timestampUnix": 1708933997900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 18c9497e82fa0c03b48859025a82e5b0\\r\\nX-B3-SpanId: fe8f86e0b24d60b8\\r\\nX-B3-ParentSpanId: b48859025a82e5b0\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: c89161d4-5000-9b3b-a18d-8726b87bb661\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:17.902", + "timestampUnix": 1708933997902 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:17.902", + "timestampUnix": 1708933997902 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:17.902", + "timestampUnix": 1708933997902 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:17.902", + "timestampUnix": 1708933997902 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:17 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:17.902", + "timestampUnix": 1708933997902 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:17.902", + "timestampUnix": 1708933997902 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:17.902", + "timestampUnix": 1708933997902 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:17.902", + "timestampUnix": 1708933997902 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:17.903", + "timestampUnix": 1708933997903 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 18c9497e82fa0c03b48859025a82e5b0\\r\\nX-B3-SpanId: fe8f86e0b24d60b8\\r\\nX-B3-ParentSpanId: b48859025a82e5b0\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: c89161d4-5000-9b3b-a18d-8726b87bb661\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:17.907", + "timestampUnix": 1708933997907 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:17.907", + "timestampUnix": 1708933997907 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:17.907", + "timestampUnix": 1708933997907 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:17.907", + "timestampUnix": 1708933997907 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:17 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:17.907", + "timestampUnix": 1708933997907 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:17.907", + "timestampUnix": 1708933997907 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:17.907", + "timestampUnix": 1708933997907 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:17.907", + "timestampUnix": 1708933997907 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:17.907", + "timestampUnix": 1708933997907 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:17.907", + "timestampUnix": 1708933997907 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:17] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:17.908", + "timestampUnix": 1708933997908 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:18.901", + "timestampUnix": 1708933998901 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: c5bf26068b249180e4c907447ad60b0c\\r\\nX-B3-SpanId: 1f072365fac72efa\\r\\nX-B3-ParentSpanId: e4c907447ad60b0c\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 23f734e5-7b94-9abc-9739-0d254ca3dbe0\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:18.904", + "timestampUnix": 1708933998904 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:18.904", + "timestampUnix": 1708933998904 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:18.904", + "timestampUnix": 1708933998904 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:18.904", + "timestampUnix": 1708933998904 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:18 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:18.904", + "timestampUnix": 1708933998904 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:18.904", + "timestampUnix": 1708933998904 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:18.904", + "timestampUnix": 1708933998904 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:18.904", + "timestampUnix": 1708933998904 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:18.905", + "timestampUnix": 1708933998905 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: c5bf26068b249180e4c907447ad60b0c\\r\\nX-B3-SpanId: 1f072365fac72efa\\r\\nX-B3-ParentSpanId: e4c907447ad60b0c\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 23f734e5-7b94-9abc-9739-0d254ca3dbe0\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:18.910", + "timestampUnix": 1708933998910 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:18.910", + "timestampUnix": 1708933998910 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:18.910", + "timestampUnix": 1708933998910 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:18.910", + "timestampUnix": 1708933998910 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:18 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:18.910", + "timestampUnix": 1708933998910 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:18.910", + "timestampUnix": 1708933998910 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:18.910", + "timestampUnix": 1708933998910 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:18.910", + "timestampUnix": 1708933998910 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:18.910", + "timestampUnix": 1708933998910 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:18.910", + "timestampUnix": 1708933998910 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:18] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:18.911", + "timestampUnix": 1708933998911 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:19.900", + "timestampUnix": 1708933999900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 98a506b5158438cc3a0aa5d80ebab99b\\r\\nX-B3-SpanId: 74f115b558976864\\r\\nX-B3-ParentSpanId: 3a0aa5d80ebab99b\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 1e56056a-f5c4-98d7-9765-0737f2f044d7\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:19.902", + "timestampUnix": 1708933999902 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:19.902", + "timestampUnix": 1708933999902 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:19.902", + "timestampUnix": 1708933999902 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:19.902", + "timestampUnix": 1708933999902 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:19 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:19.902", + "timestampUnix": 1708933999902 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:19.902", + "timestampUnix": 1708933999902 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:19.902", + "timestampUnix": 1708933999902 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:19.902", + "timestampUnix": 1708933999902 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:19.904", + "timestampUnix": 1708933999904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 98a506b5158438cc3a0aa5d80ebab99b\\r\\nX-B3-SpanId: 74f115b558976864\\r\\nX-B3-ParentSpanId: 3a0aa5d80ebab99b\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 1e56056a-f5c4-98d7-9765-0737f2f044d7\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:19.906", + "timestampUnix": 1708933999906 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:19.906", + "timestampUnix": 1708933999906 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:19.906", + "timestampUnix": 1708933999906 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:19.906", + "timestampUnix": 1708933999906 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:19 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:19.906", + "timestampUnix": 1708933999906 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:19.906", + "timestampUnix": 1708933999906 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:19.906", + "timestampUnix": 1708933999906 + }, + { + "message": "header: x-envoy-upstream-service-time: 0", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:19.906", + "timestampUnix": 1708933999906 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:19.906", + "timestampUnix": 1708933999906 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:19.906", + "timestampUnix": 1708933999906 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:19] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:19.907", + "timestampUnix": 1708933999907 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:20.907", + "timestampUnix": 1708934000907 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: eea3c9adb18d25bd0a8e2f506ab331b2\\r\\nX-B3-SpanId: 3b22540fe02d2320\\r\\nX-B3-ParentSpanId: 0a8e2f506ab331b2\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: cbef0635-232c-9ce4-b86f-4949266cfd02\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:20.911", + "timestampUnix": 1708934000911 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:20.911", + "timestampUnix": 1708934000911 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:20.911", + "timestampUnix": 1708934000911 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:20.911", + "timestampUnix": 1708934000911 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:20 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:20.911", + "timestampUnix": 1708934000911 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:20.911", + "timestampUnix": 1708934000911 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:20.911", + "timestampUnix": 1708934000911 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:20.911", + "timestampUnix": 1708934000911 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:20.913", + "timestampUnix": 1708934000913 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: eea3c9adb18d25bd0a8e2f506ab331b2\\r\\nX-B3-SpanId: 3b22540fe02d2320\\r\\nX-B3-ParentSpanId: 0a8e2f506ab331b2\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: cbef0635-232c-9ce4-b86f-4949266cfd02\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:20.917", + "timestampUnix": 1708934000917 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:20.917", + "timestampUnix": 1708934000917 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:20.917", + "timestampUnix": 1708934000917 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:20.917", + "timestampUnix": 1708934000917 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:20 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:20.917", + "timestampUnix": 1708934000917 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:20.917", + "timestampUnix": 1708934000917 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:20.917", + "timestampUnix": 1708934000917 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:20.917", + "timestampUnix": 1708934000917 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:20.917", + "timestampUnix": 1708934000917 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:20.917", + "timestampUnix": 1708934000917 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:20] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:20.918", + "timestampUnix": 1708934000918 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:21.905", + "timestampUnix": 1708934001905 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 224ae638bd8acd00bcd4465f4bfd86e0\\r\\nX-B3-SpanId: f30b141a7e4d5109\\r\\nX-B3-ParentSpanId: bcd4465f4bfd86e0\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 9a4800c6-79c5-9e78-863c-90f2f877dd53\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:21.907", + "timestampUnix": 1708934001907 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:21.907", + "timestampUnix": 1708934001907 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:21.907", + "timestampUnix": 1708934001907 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:21.907", + "timestampUnix": 1708934001907 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:21 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:21.907", + "timestampUnix": 1708934001907 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:21.907", + "timestampUnix": 1708934001907 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:21.907", + "timestampUnix": 1708934001907 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:21.907", + "timestampUnix": 1708934001907 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:21.909", + "timestampUnix": 1708934001909 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 224ae638bd8acd00bcd4465f4bfd86e0\\r\\nX-B3-SpanId: f30b141a7e4d5109\\r\\nX-B3-ParentSpanId: bcd4465f4bfd86e0\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 9a4800c6-79c5-9e78-863c-90f2f877dd53\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:21.914", + "timestampUnix": 1708934001914 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:21.914", + "timestampUnix": 1708934001914 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:21.914", + "timestampUnix": 1708934001914 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:21.914", + "timestampUnix": 1708934001914 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:21 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:21.914", + "timestampUnix": 1708934001914 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:21.914", + "timestampUnix": 1708934001914 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:21.914", + "timestampUnix": 1708934001914 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:21.914", + "timestampUnix": 1708934001914 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:21.914", + "timestampUnix": 1708934001914 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:21.914", + "timestampUnix": 1708934001914 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:21] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:21.915", + "timestampUnix": 1708934001915 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:22.902", + "timestampUnix": 1708934002902 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 21543bce070cfea090568945c6425322\\r\\nX-B3-SpanId: 1ca13d2d7e2f48b7\\r\\nX-B3-ParentSpanId: 90568945c6425322\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: f883f6e7-c8fb-9ab1-81a8-572d1c018d70\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:22.905", + "timestampUnix": 1708934002905 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:22.905", + "timestampUnix": 1708934002905 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:22.905", + "timestampUnix": 1708934002905 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:22.905", + "timestampUnix": 1708934002905 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:22 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:22.905", + "timestampUnix": 1708934002905 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:22.905", + "timestampUnix": 1708934002905 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:22.905", + "timestampUnix": 1708934002905 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:22.905", + "timestampUnix": 1708934002905 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:22.907", + "timestampUnix": 1708934002907 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 21543bce070cfea090568945c6425322\\r\\nX-B3-SpanId: 1ca13d2d7e2f48b7\\r\\nX-B3-ParentSpanId: 90568945c6425322\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: f883f6e7-c8fb-9ab1-81a8-572d1c018d70\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:22.911", + "timestampUnix": 1708934002911 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:22.911", + "timestampUnix": 1708934002911 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:22.911", + "timestampUnix": 1708934002911 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:22.911", + "timestampUnix": 1708934002911 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:21 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:22.911", + "timestampUnix": 1708934002911 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:22.911", + "timestampUnix": 1708934002911 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:22.911", + "timestampUnix": 1708934002911 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:22.911", + "timestampUnix": 1708934002911 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:22.911", + "timestampUnix": 1708934002911 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:22.911", + "timestampUnix": 1708934002911 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:22] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:22.912", + "timestampUnix": 1708934002912 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.1 - - [26/Feb/2024 07:53:22] \"GET /metrics HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:22.990", + "timestampUnix": 1708934002990 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:23.900", + "timestampUnix": 1708934003900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 32c295f365f51a89d40e4b7c350f9138\\r\\nX-B3-SpanId: 722bdd7f8aefead8\\r\\nX-B3-ParentSpanId: d40e4b7c350f9138\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 034f2068-a892-914a-b6b4-0829ae8feb2f\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:23.903", + "timestampUnix": 1708934003903 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:23.903", + "timestampUnix": 1708934003903 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:23.903", + "timestampUnix": 1708934003903 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:23.903", + "timestampUnix": 1708934003903 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:23 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:23.903", + "timestampUnix": 1708934003903 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:23.903", + "timestampUnix": 1708934003903 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:23.903", + "timestampUnix": 1708934003903 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:23.903", + "timestampUnix": 1708934003903 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:23.905", + "timestampUnix": 1708934003905 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 32c295f365f51a89d40e4b7c350f9138\\r\\nX-B3-SpanId: 722bdd7f8aefead8\\r\\nX-B3-ParentSpanId: d40e4b7c350f9138\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 034f2068-a892-914a-b6b4-0829ae8feb2f\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:23.906", + "timestampUnix": 1708934003906 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:23.906", + "timestampUnix": 1708934003906 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:23.906", + "timestampUnix": 1708934003906 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:23.906", + "timestampUnix": 1708934003906 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:23 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:23.906", + "timestampUnix": 1708934003906 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:23.906", + "timestampUnix": 1708934003906 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:23.906", + "timestampUnix": 1708934003906 + }, + { + "message": "header: x-envoy-upstream-service-time: 0", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:23.906", + "timestampUnix": 1708934003906 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:23.906", + "timestampUnix": 1708934003906 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:23.906", + "timestampUnix": 1708934003906 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:23] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:23.907", + "timestampUnix": 1708934003907 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:24.903", + "timestampUnix": 1708934004903 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 964fce4b548b9e1daab3334b19797bdf\\r\\nX-B3-SpanId: a7b523238e286a2f\\r\\nX-B3-ParentSpanId: aab3334b19797bdf\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 876f6f5c-7e18-9e1a-a3d9-759de5cdcc4e\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:24.907", + "timestampUnix": 1708934004907 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:24.907", + "timestampUnix": 1708934004907 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:24.907", + "timestampUnix": 1708934004907 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:24.907", + "timestampUnix": 1708934004907 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:24 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:24.907", + "timestampUnix": 1708934004907 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:24.907", + "timestampUnix": 1708934004907 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:24.907", + "timestampUnix": 1708934004907 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:24.907", + "timestampUnix": 1708934004907 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:24.910", + "timestampUnix": 1708934004910 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 964fce4b548b9e1daab3334b19797bdf\\r\\nX-B3-SpanId: a7b523238e286a2f\\r\\nX-B3-ParentSpanId: aab3334b19797bdf\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 876f6f5c-7e18-9e1a-a3d9-759de5cdcc4e\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:24.916", + "timestampUnix": 1708934004916 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:24.916", + "timestampUnix": 1708934004916 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:24.916", + "timestampUnix": 1708934004916 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:24.916", + "timestampUnix": 1708934004916 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:24 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:24.916", + "timestampUnix": 1708934004916 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:24.916", + "timestampUnix": 1708934004916 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:24.916", + "timestampUnix": 1708934004916 + }, + { + "message": "header: x-envoy-upstream-service-time: 4", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:24.916", + "timestampUnix": 1708934004916 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:24.916", + "timestampUnix": 1708934004916 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:24.916", + "timestampUnix": 1708934004916 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:24] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:24.918", + "timestampUnix": 1708934004918 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:25.904", + "timestampUnix": 1708934005904 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 3b1e1367c970bc58baf9b8477a1ab12a\\r\\nX-B3-SpanId: a14cd9ec0a6f6691\\r\\nX-B3-ParentSpanId: baf9b8477a1ab12a\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 97e04030-c9ac-9c6d-9d17-24bbc284c73c\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:25.909", + "timestampUnix": 1708934005909 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:25.909", + "timestampUnix": 1708934005909 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:25.909", + "timestampUnix": 1708934005909 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:25.909", + "timestampUnix": 1708934005909 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:25 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:25.909", + "timestampUnix": 1708934005909 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:25.909", + "timestampUnix": 1708934005909 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:25.909", + "timestampUnix": 1708934005909 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:25.909", + "timestampUnix": 1708934005909 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:25.910", + "timestampUnix": 1708934005910 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 3b1e1367c970bc58baf9b8477a1ab12a\\r\\nX-B3-SpanId: a14cd9ec0a6f6691\\r\\nX-B3-ParentSpanId: baf9b8477a1ab12a\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 97e04030-c9ac-9c6d-9d17-24bbc284c73c\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:25.916", + "timestampUnix": 1708934005916 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:25.916", + "timestampUnix": 1708934005916 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:25.916", + "timestampUnix": 1708934005916 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:25.916", + "timestampUnix": 1708934005916 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:24 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:25.916", + "timestampUnix": 1708934005916 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:25.916", + "timestampUnix": 1708934005916 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:25.916", + "timestampUnix": 1708934005916 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:25.916", + "timestampUnix": 1708934005916 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:25.916", + "timestampUnix": 1708934005916 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:25.916", + "timestampUnix": 1708934005916 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:25] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:25.917", + "timestampUnix": 1708934005917 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:26.900", + "timestampUnix": 1708934006900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 3618208890bf2dec32f4d5b9a469c6bd\\r\\nX-B3-SpanId: 393222647a89843a\\r\\nX-B3-ParentSpanId: 32f4d5b9a469c6bd\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 747bbf47-2552-9dee-b72d-cb4b32fde478\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:26.902", + "timestampUnix": 1708934006902 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:26.902", + "timestampUnix": 1708934006902 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:26.902", + "timestampUnix": 1708934006902 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:26.902", + "timestampUnix": 1708934006902 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:26 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:26.902", + "timestampUnix": 1708934006902 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:26.902", + "timestampUnix": 1708934006902 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:26.902", + "timestampUnix": 1708934006902 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:26.902", + "timestampUnix": 1708934006902 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:26.904", + "timestampUnix": 1708934006904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 3618208890bf2dec32f4d5b9a469c6bd\\r\\nX-B3-SpanId: 393222647a89843a\\r\\nX-B3-ParentSpanId: 32f4d5b9a469c6bd\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 747bbf47-2552-9dee-b72d-cb4b32fde478\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:26.908", + "timestampUnix": 1708934006908 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:26.908", + "timestampUnix": 1708934006908 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:26.908", + "timestampUnix": 1708934006908 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:26.908", + "timestampUnix": 1708934006908 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:26 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:26.908", + "timestampUnix": 1708934006908 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:26.908", + "timestampUnix": 1708934006908 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:26.908", + "timestampUnix": 1708934006908 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:26.908", + "timestampUnix": 1708934006908 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:26.908", + "timestampUnix": 1708934006908 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:26.908", + "timestampUnix": 1708934006908 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:26] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:26.909", + "timestampUnix": 1708934006909 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:27.900", + "timestampUnix": 1708934007900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 9567e6811fd276584bc2b0c4f3043a01\\r\\nX-B3-SpanId: e3e5c5c56d4a7071\\r\\nX-B3-ParentSpanId: 4bc2b0c4f3043a01\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: c142aa7c-06c4-9fbd-9257-1f64fe06a6b7\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:27.902", + "timestampUnix": 1708934007902 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:27.902", + "timestampUnix": 1708934007902 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:27.902", + "timestampUnix": 1708934007902 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:27.902", + "timestampUnix": 1708934007902 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:27 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:27.902", + "timestampUnix": 1708934007902 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:27.902", + "timestampUnix": 1708934007902 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:27.902", + "timestampUnix": 1708934007902 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:27.902", + "timestampUnix": 1708934007902 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:27.903", + "timestampUnix": 1708934007903 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 9567e6811fd276584bc2b0c4f3043a01\\r\\nX-B3-SpanId: e3e5c5c56d4a7071\\r\\nX-B3-ParentSpanId: 4bc2b0c4f3043a01\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: c142aa7c-06c4-9fbd-9257-1f64fe06a6b7\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:27.907", + "timestampUnix": 1708934007907 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:27.907", + "timestampUnix": 1708934007907 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:27.907", + "timestampUnix": 1708934007907 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:27.907", + "timestampUnix": 1708934007907 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:26 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:27.907", + "timestampUnix": 1708934007907 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:27.907", + "timestampUnix": 1708934007907 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:27.907", + "timestampUnix": 1708934007907 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:27.907", + "timestampUnix": 1708934007907 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:27.907", + "timestampUnix": 1708934007907 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:27.907", + "timestampUnix": 1708934007907 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:27] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:27.908", + "timestampUnix": 1708934007908 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:28.900", + "timestampUnix": 1708934008900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 5c1f44216f785008a806a7e9d679ff06\\r\\nX-B3-SpanId: 72f24dcfba5646e6\\r\\nX-B3-ParentSpanId: a806a7e9d679ff06\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: cb946c46-4c60-9dc6-9b49-e11875b743c8\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:28.902", + "timestampUnix": 1708934008902 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:28.902", + "timestampUnix": 1708934008902 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:28.902", + "timestampUnix": 1708934008902 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:28.902", + "timestampUnix": 1708934008902 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:28 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:28.902", + "timestampUnix": 1708934008902 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:28.902", + "timestampUnix": 1708934008902 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:28.902", + "timestampUnix": 1708934008902 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:28.902", + "timestampUnix": 1708934008902 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:28.904", + "timestampUnix": 1708934008904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 5c1f44216f785008a806a7e9d679ff06\\r\\nX-B3-SpanId: 72f24dcfba5646e6\\r\\nX-B3-ParentSpanId: a806a7e9d679ff06\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: cb946c46-4c60-9dc6-9b49-e11875b743c8\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:28.909", + "timestampUnix": 1708934008909 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:28.909", + "timestampUnix": 1708934008909 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:28.909", + "timestampUnix": 1708934008909 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:28.909", + "timestampUnix": 1708934008909 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:28 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:28.909", + "timestampUnix": 1708934008909 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:28.909", + "timestampUnix": 1708934008909 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:28.909", + "timestampUnix": 1708934008909 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:28.909", + "timestampUnix": 1708934008909 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:28.909", + "timestampUnix": 1708934008909 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:28.909", + "timestampUnix": 1708934008909 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:28] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:28.910", + "timestampUnix": 1708934008910 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:29.907", + "timestampUnix": 1708934009907 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: c83b7f3015d954f01adc6687ebb3bda4\\r\\nX-B3-SpanId: 87a386b0bb5c626a\\r\\nX-B3-ParentSpanId: 1adc6687ebb3bda4\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: c6be1688-be29-9abe-b34b-6acec895b2f0\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:29.916", + "timestampUnix": 1708934009916 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:29.916", + "timestampUnix": 1708934009916 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:29.916", + "timestampUnix": 1708934009916 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:29.916", + "timestampUnix": 1708934009916 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:29 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:29.916", + "timestampUnix": 1708934009916 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:29.916", + "timestampUnix": 1708934009916 + }, + { + "message": "header: x-envoy-upstream-service-time: 4", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:29.916", + "timestampUnix": 1708934009916 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:29.916", + "timestampUnix": 1708934009916 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:29.924", + "timestampUnix": 1708934009924 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: c83b7f3015d954f01adc6687ebb3bda4\\r\\nX-B3-SpanId: 87a386b0bb5c626a\\r\\nX-B3-ParentSpanId: 1adc6687ebb3bda4\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: c6be1688-be29-9abe-b34b-6acec895b2f0\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:29.934", + "timestampUnix": 1708934009934 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:29.934", + "timestampUnix": 1708934009934 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:29.934", + "timestampUnix": 1708934009934 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:29.934", + "timestampUnix": 1708934009934 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:29 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:29.934", + "timestampUnix": 1708934009934 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:29.934", + "timestampUnix": 1708934009934 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:29.934", + "timestampUnix": 1708934009934 + }, + { + "message": "header: x-envoy-upstream-service-time: 7", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:29.934", + "timestampUnix": 1708934009934 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:29.934", + "timestampUnix": 1708934009934 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:29.934", + "timestampUnix": 1708934009934 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:29] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:29.936", + "timestampUnix": 1708934009936 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:30.907", + "timestampUnix": 1708934010907 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 756d38af94c754bb3d33e8cb06a39939\\r\\nX-B3-SpanId: ac5a5a2276caa90e\\r\\nX-B3-ParentSpanId: 3d33e8cb06a39939\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 13bc6aa9-5b35-9995-b066-20425616dc39\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:30.913", + "timestampUnix": 1708934010913 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:30.913", + "timestampUnix": 1708934010913 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:30.913", + "timestampUnix": 1708934010913 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:30.913", + "timestampUnix": 1708934010913 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:30 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:30.913", + "timestampUnix": 1708934010913 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:30.913", + "timestampUnix": 1708934010913 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:30.913", + "timestampUnix": 1708934010913 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:30.913", + "timestampUnix": 1708934010913 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:30.915", + "timestampUnix": 1708934010915 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 756d38af94c754bb3d33e8cb06a39939\\r\\nX-B3-SpanId: ac5a5a2276caa90e\\r\\nX-B3-ParentSpanId: 3d33e8cb06a39939\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 13bc6aa9-5b35-9995-b066-20425616dc39\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:30.917", + "timestampUnix": 1708934010917 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:30.917", + "timestampUnix": 1708934010917 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:30.917", + "timestampUnix": 1708934010917 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:30.917", + "timestampUnix": 1708934010917 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:30 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:30.917", + "timestampUnix": 1708934010917 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:30.917", + "timestampUnix": 1708934010917 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:30.917", + "timestampUnix": 1708934010917 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:30.917", + "timestampUnix": 1708934010917 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:30.917", + "timestampUnix": 1708934010917 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:30.917", + "timestampUnix": 1708934010917 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:30] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:30.918", + "timestampUnix": 1708934010918 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:31.906", + "timestampUnix": 1708934011906 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: c36df897023a5bdcf27dd1ce1b3207b1\\r\\nX-B3-SpanId: 7a8fff7fa07893d9\\r\\nX-B3-ParentSpanId: f27dd1ce1b3207b1\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 8674f4b6-0924-909a-b054-ee477088c43d\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:31.909", + "timestampUnix": 1708934011909 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:31.909", + "timestampUnix": 1708934011909 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:31.909", + "timestampUnix": 1708934011909 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:31.909", + "timestampUnix": 1708934011909 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:31 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:31.909", + "timestampUnix": 1708934011909 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:31.909", + "timestampUnix": 1708934011909 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:31.909", + "timestampUnix": 1708934011909 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:31.909", + "timestampUnix": 1708934011909 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:31.911", + "timestampUnix": 1708934011911 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: c36df897023a5bdcf27dd1ce1b3207b1\\r\\nX-B3-SpanId: 7a8fff7fa07893d9\\r\\nX-B3-ParentSpanId: f27dd1ce1b3207b1\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 8674f4b6-0924-909a-b054-ee477088c43d\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:31.916", + "timestampUnix": 1708934011916 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:31.916", + "timestampUnix": 1708934011916 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:31.916", + "timestampUnix": 1708934011916 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:31.916", + "timestampUnix": 1708934011916 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:31 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:31.916", + "timestampUnix": 1708934011916 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:31.916", + "timestampUnix": 1708934011916 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:31.916", + "timestampUnix": 1708934011916 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:31.916", + "timestampUnix": 1708934011916 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:31.916", + "timestampUnix": 1708934011916 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:31.916", + "timestampUnix": 1708934011916 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:31] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:31.917", + "timestampUnix": 1708934011917 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:32.900", + "timestampUnix": 1708934012900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: e1211ddd9013329de051449492a4e088\\r\\nX-B3-SpanId: a70a39b85dd85f28\\r\\nX-B3-ParentSpanId: e051449492a4e088\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 74ac79c7-55dc-9eeb-962c-de180a98d96d\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:32.902", + "timestampUnix": 1708934012902 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:32.902", + "timestampUnix": 1708934012902 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:32.902", + "timestampUnix": 1708934012902 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:32.902", + "timestampUnix": 1708934012902 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:32 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:32.902", + "timestampUnix": 1708934012902 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:32.902", + "timestampUnix": 1708934012902 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:32.902", + "timestampUnix": 1708934012902 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:32.902", + "timestampUnix": 1708934012902 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:32.904", + "timestampUnix": 1708934012904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: e1211ddd9013329de051449492a4e088\\r\\nX-B3-SpanId: a70a39b85dd85f28\\r\\nX-B3-ParentSpanId: e051449492a4e088\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 74ac79c7-55dc-9eeb-962c-de180a98d96d\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:32.907", + "timestampUnix": 1708934012907 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:32.907", + "timestampUnix": 1708934012907 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:32.907", + "timestampUnix": 1708934012907 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:32.907", + "timestampUnix": 1708934012907 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:32 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:32.907", + "timestampUnix": 1708934012907 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:32.907", + "timestampUnix": 1708934012907 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:32.907", + "timestampUnix": 1708934012907 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:32.907", + "timestampUnix": 1708934012907 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:32.907", + "timestampUnix": 1708934012907 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:32.907", + "timestampUnix": 1708934012907 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:32] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:32.908", + "timestampUnix": 1708934012908 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:33.906", + "timestampUnix": 1708934013906 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: be0bc01f2961596f6aca7c54cac403d9\\r\\nX-B3-SpanId: ce87f8c90e012d12\\r\\nX-B3-ParentSpanId: 6aca7c54cac403d9\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 1260c3c5-470e-9bf1-b476-bc66b716413d\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:33.908", + "timestampUnix": 1708934013908 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:33.908", + "timestampUnix": 1708934013908 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:33.908", + "timestampUnix": 1708934013908 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:33.908", + "timestampUnix": 1708934013908 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:33 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:33.908", + "timestampUnix": 1708934013908 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:33.908", + "timestampUnix": 1708934013908 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:33.908", + "timestampUnix": 1708934013908 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:33.908", + "timestampUnix": 1708934013908 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:33.910", + "timestampUnix": 1708934013910 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: be0bc01f2961596f6aca7c54cac403d9\\r\\nX-B3-SpanId: ce87f8c90e012d12\\r\\nX-B3-ParentSpanId: 6aca7c54cac403d9\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 1260c3c5-470e-9bf1-b476-bc66b716413d\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:33.915", + "timestampUnix": 1708934013915 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:33.915", + "timestampUnix": 1708934013915 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:33.915", + "timestampUnix": 1708934013915 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:33.915", + "timestampUnix": 1708934013915 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:33 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:33.915", + "timestampUnix": 1708934013915 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:33.915", + "timestampUnix": 1708934013915 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:33.915", + "timestampUnix": 1708934013915 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:33.915", + "timestampUnix": 1708934013915 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:33.915", + "timestampUnix": 1708934013915 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:33.915", + "timestampUnix": 1708934013915 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:33] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:33.916", + "timestampUnix": 1708934013916 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:34.900", + "timestampUnix": 1708934014900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 95f113ac158991162396f15899af1ba7\\r\\nX-B3-SpanId: 5a9cd489d2958f86\\r\\nX-B3-ParentSpanId: 2396f15899af1ba7\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: f43fd741-1fd1-9fd8-bafc-603798fd5f79\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:34.903", + "timestampUnix": 1708934014903 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:34.903", + "timestampUnix": 1708934014903 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:34.903", + "timestampUnix": 1708934014903 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:34.903", + "timestampUnix": 1708934014903 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:34 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:34.903", + "timestampUnix": 1708934014903 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:34.903", + "timestampUnix": 1708934014903 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:34.903", + "timestampUnix": 1708934014903 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:34.903", + "timestampUnix": 1708934014903 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:34.905", + "timestampUnix": 1708934014905 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 95f113ac158991162396f15899af1ba7\\r\\nX-B3-SpanId: 5a9cd489d2958f86\\r\\nX-B3-ParentSpanId: 2396f15899af1ba7\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: f43fd741-1fd1-9fd8-bafc-603798fd5f79\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:34.907", + "timestampUnix": 1708934014907 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:34.907", + "timestampUnix": 1708934014907 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:34.907", + "timestampUnix": 1708934014907 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:34.907", + "timestampUnix": 1708934014907 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:34 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:34.907", + "timestampUnix": 1708934014907 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:34.907", + "timestampUnix": 1708934014907 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:34.907", + "timestampUnix": 1708934014907 + }, + { + "message": "header: x-envoy-upstream-service-time: 0", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:34.907", + "timestampUnix": 1708934014907 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:34.907", + "timestampUnix": 1708934014907 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:34.907", + "timestampUnix": 1708934014907 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:34] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:34.908", + "timestampUnix": 1708934014908 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:35.900", + "timestampUnix": 1708934015900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 4e209e56261a750fe18b9a40a71e1b40\\r\\nX-B3-SpanId: bfcad95c9c240467\\r\\nX-B3-ParentSpanId: e18b9a40a71e1b40\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 20f028a4-6894-96c0-b479-62836717e13e\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:35.904", + "timestampUnix": 1708934015904 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:35.904", + "timestampUnix": 1708934015904 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:35.904", + "timestampUnix": 1708934015904 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:35.904", + "timestampUnix": 1708934015904 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:35 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:35.904", + "timestampUnix": 1708934015904 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:35.904", + "timestampUnix": 1708934015904 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:35.904", + "timestampUnix": 1708934015904 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:35.904", + "timestampUnix": 1708934015904 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:35.905", + "timestampUnix": 1708934015905 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 4e209e56261a750fe18b9a40a71e1b40\\r\\nX-B3-SpanId: bfcad95c9c240467\\r\\nX-B3-ParentSpanId: e18b9a40a71e1b40\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 20f028a4-6894-96c0-b479-62836717e13e\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:35.909", + "timestampUnix": 1708934015909 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:35.909", + "timestampUnix": 1708934015909 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:35.909", + "timestampUnix": 1708934015909 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:35.909", + "timestampUnix": 1708934015909 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:35 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:35.910", + "timestampUnix": 1708934015910 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:35.910", + "timestampUnix": 1708934015910 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:35.910", + "timestampUnix": 1708934015910 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:35.910", + "timestampUnix": 1708934015910 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:35.910", + "timestampUnix": 1708934015910 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:35.910", + "timestampUnix": 1708934015910 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:35] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:35.910", + "timestampUnix": 1708934015910 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:36.905", + "timestampUnix": 1708934016905 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: ac42588432b72d1c81439ff983b9098b\\r\\nX-B3-SpanId: 9da6cb7ee1ec33bc\\r\\nX-B3-ParentSpanId: 81439ff983b9098b\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 4692f13b-cd01-93cc-8d21-80eb9552a4ef\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:36.907", + "timestampUnix": 1708934016907 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:36.907", + "timestampUnix": 1708934016907 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:36.907", + "timestampUnix": 1708934016907 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:36.907", + "timestampUnix": 1708934016907 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:36 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:36.907", + "timestampUnix": 1708934016907 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:36.907", + "timestampUnix": 1708934016907 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:36.907", + "timestampUnix": 1708934016907 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:36.907", + "timestampUnix": 1708934016907 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:36.909", + "timestampUnix": 1708934016909 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: ac42588432b72d1c81439ff983b9098b\\r\\nX-B3-SpanId: 9da6cb7ee1ec33bc\\r\\nX-B3-ParentSpanId: 81439ff983b9098b\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 4692f13b-cd01-93cc-8d21-80eb9552a4ef\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:36.912", + "timestampUnix": 1708934016912 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:36.912", + "timestampUnix": 1708934016912 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:36.912", + "timestampUnix": 1708934016912 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:36.912", + "timestampUnix": 1708934016912 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:36 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:36.912", + "timestampUnix": 1708934016912 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:36.912", + "timestampUnix": 1708934016912 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:36.912", + "timestampUnix": 1708934016912 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:36.912", + "timestampUnix": 1708934016912 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:36.912", + "timestampUnix": 1708934016912 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:36.912", + "timestampUnix": 1708934016912 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:36] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:36.913", + "timestampUnix": 1708934016913 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:37.901", + "timestampUnix": 1708934017901 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 3ac29c2dbc96c0b312d3eff0f6b4f7f6\\r\\nX-B3-SpanId: e227b617c1b41dc3\\r\\nX-B3-ParentSpanId: 12d3eff0f6b4f7f6\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 3751f46a-c796-94bc-8063-2e545eb62a3b\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:37.903", + "timestampUnix": 1708934017903 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:37.903", + "timestampUnix": 1708934017903 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:37.903", + "timestampUnix": 1708934017903 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:37.903", + "timestampUnix": 1708934017903 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:37 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:37.903", + "timestampUnix": 1708934017903 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:37.903", + "timestampUnix": 1708934017903 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:37.903", + "timestampUnix": 1708934017903 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:37.903", + "timestampUnix": 1708934017903 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:37.905", + "timestampUnix": 1708934017905 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 3ac29c2dbc96c0b312d3eff0f6b4f7f6\\r\\nX-B3-SpanId: e227b617c1b41dc3\\r\\nX-B3-ParentSpanId: 12d3eff0f6b4f7f6\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 3751f46a-c796-94bc-8063-2e545eb62a3b\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:37.908", + "timestampUnix": 1708934017908 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:37.908", + "timestampUnix": 1708934017908 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:37.908", + "timestampUnix": 1708934017908 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:37.908", + "timestampUnix": 1708934017908 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:36 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:37.908", + "timestampUnix": 1708934017908 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:37.908", + "timestampUnix": 1708934017908 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:37.908", + "timestampUnix": 1708934017908 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:37.908", + "timestampUnix": 1708934017908 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:37.908", + "timestampUnix": 1708934017908 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:37.908", + "timestampUnix": 1708934017908 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:37] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:37.909", + "timestampUnix": 1708934017909 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.1 - - [26/Feb/2024 07:53:37] \"GET /metrics HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:37.991", + "timestampUnix": 1708934017991 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:38.907", + "timestampUnix": 1708934018907 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 38f37963b37965d2214b6580aaf46d11\\r\\nX-B3-SpanId: 941b8818d25d3ed2\\r\\nX-B3-ParentSpanId: 214b6580aaf46d11\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 35cf7e33-76c8-9341-af15-daebc73155df\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:38.912", + "timestampUnix": 1708934018912 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:38.912", + "timestampUnix": 1708934018912 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:38.912", + "timestampUnix": 1708934018912 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:38.912", + "timestampUnix": 1708934018912 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:38 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:38.912", + "timestampUnix": 1708934018912 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:38.912", + "timestampUnix": 1708934018912 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:38.912", + "timestampUnix": 1708934018912 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:38.912", + "timestampUnix": 1708934018912 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:38.914", + "timestampUnix": 1708934018914 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 38f37963b37965d2214b6580aaf46d11\\r\\nX-B3-SpanId: 941b8818d25d3ed2\\r\\nX-B3-ParentSpanId: 214b6580aaf46d11\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 35cf7e33-76c8-9341-af15-daebc73155df\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:38.918", + "timestampUnix": 1708934018918 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:38.918", + "timestampUnix": 1708934018918 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:38.918", + "timestampUnix": 1708934018918 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:38.918", + "timestampUnix": 1708934018918 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:38 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:38.918", + "timestampUnix": 1708934018918 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:38.918", + "timestampUnix": 1708934018918 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:38.918", + "timestampUnix": 1708934018918 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:38.918", + "timestampUnix": 1708934018918 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:38.918", + "timestampUnix": 1708934018918 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:38.918", + "timestampUnix": 1708934018918 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:38] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:38.919", + "timestampUnix": 1708934018919 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:39.907", + "timestampUnix": 1708934019907 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 79987d4f581bcb0f044985dc63dc1a82\\r\\nX-B3-SpanId: df4453a053faf358\\r\\nX-B3-ParentSpanId: 044985dc63dc1a82\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 979faaac-663e-962b-8902-3b0b9ef1c6f4\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:39.911", + "timestampUnix": 1708934019911 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:39.911", + "timestampUnix": 1708934019911 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:39.911", + "timestampUnix": 1708934019911 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:39.911", + "timestampUnix": 1708934019911 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:39 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:39.911", + "timestampUnix": 1708934019911 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:39.911", + "timestampUnix": 1708934019911 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:39.911", + "timestampUnix": 1708934019911 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:39.911", + "timestampUnix": 1708934019911 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:39.913", + "timestampUnix": 1708934019913 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 79987d4f581bcb0f044985dc63dc1a82\\r\\nX-B3-SpanId: df4453a053faf358\\r\\nX-B3-ParentSpanId: 044985dc63dc1a82\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 979faaac-663e-962b-8902-3b0b9ef1c6f4\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:39.917", + "timestampUnix": 1708934019917 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:39.917", + "timestampUnix": 1708934019917 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:39.917", + "timestampUnix": 1708934019917 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:39.917", + "timestampUnix": 1708934019917 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:38 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:39.917", + "timestampUnix": 1708934019917 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:39.917", + "timestampUnix": 1708934019917 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:39.917", + "timestampUnix": 1708934019917 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:39.917", + "timestampUnix": 1708934019917 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:39.917", + "timestampUnix": 1708934019917 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:39.917", + "timestampUnix": 1708934019917 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:39] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:39.918", + "timestampUnix": 1708934019918 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:40.908", + "timestampUnix": 1708934020908 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: a9991738c9c871801baa54269c29ec78\\r\\nX-B3-SpanId: d27e8c27fbec8423\\r\\nX-B3-ParentSpanId: 1baa54269c29ec78\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 4db7728c-c2ab-9069-9366-7237ac0dce9d\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:40.917", + "timestampUnix": 1708934020917 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:40.917", + "timestampUnix": 1708934020917 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:40.917", + "timestampUnix": 1708934020917 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:40.917", + "timestampUnix": 1708934020917 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:40 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:40.917", + "timestampUnix": 1708934020917 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:40.917", + "timestampUnix": 1708934020917 + }, + { + "message": "header: x-envoy-upstream-service-time: 5", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:40.917", + "timestampUnix": 1708934020917 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:40.917", + "timestampUnix": 1708934020917 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:40.919", + "timestampUnix": 1708934020919 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: a9991738c9c871801baa54269c29ec78\\r\\nX-B3-SpanId: d27e8c27fbec8423\\r\\nX-B3-ParentSpanId: 1baa54269c29ec78\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 4db7728c-c2ab-9069-9366-7237ac0dce9d\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:40.924", + "timestampUnix": 1708934020924 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:40.924", + "timestampUnix": 1708934020924 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:40.924", + "timestampUnix": 1708934020924 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:40.924", + "timestampUnix": 1708934020924 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:40 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:40.924", + "timestampUnix": 1708934020924 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:40.924", + "timestampUnix": 1708934020924 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:40.924", + "timestampUnix": 1708934020924 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:40.924", + "timestampUnix": 1708934020924 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:40.924", + "timestampUnix": 1708934020924 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:40.924", + "timestampUnix": 1708934020924 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:40] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:40.925", + "timestampUnix": 1708934020925 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:41.900", + "timestampUnix": 1708934021900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 8768f9626f480fba0dfc64c4048d96f7\\r\\nX-B3-SpanId: 1947947a9e70f41e\\r\\nX-B3-ParentSpanId: 0dfc64c4048d96f7\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: b0c183fd-a7b0-9d56-b88f-3ec5c3779606\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:41.902", + "timestampUnix": 1708934021902 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:41.902", + "timestampUnix": 1708934021902 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:41.902", + "timestampUnix": 1708934021902 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:41.902", + "timestampUnix": 1708934021902 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:41 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:41.902", + "timestampUnix": 1708934021902 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:41.902", + "timestampUnix": 1708934021902 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:41.902", + "timestampUnix": 1708934021902 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:41.902", + "timestampUnix": 1708934021902 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:41.904", + "timestampUnix": 1708934021904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 8768f9626f480fba0dfc64c4048d96f7\\r\\nX-B3-SpanId: 1947947a9e70f41e\\r\\nX-B3-ParentSpanId: 0dfc64c4048d96f7\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: b0c183fd-a7b0-9d56-b88f-3ec5c3779606\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:41.907", + "timestampUnix": 1708934021907 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:41.907", + "timestampUnix": 1708934021907 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:41.907", + "timestampUnix": 1708934021907 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:41.907", + "timestampUnix": 1708934021907 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:40 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:41.907", + "timestampUnix": 1708934021907 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:41.907", + "timestampUnix": 1708934021907 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:41.907", + "timestampUnix": 1708934021907 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:41.907", + "timestampUnix": 1708934021907 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:41.907", + "timestampUnix": 1708934021907 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:41.907", + "timestampUnix": 1708934021907 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:41] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:41.908", + "timestampUnix": 1708934021908 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:42.908", + "timestampUnix": 1708934022908 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 7f09e78bb1c5b4f2a676296a06ed9062\\r\\nX-B3-SpanId: c38444be692bd749\\r\\nX-B3-ParentSpanId: a676296a06ed9062\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: c64a7001-df06-9b3f-bbcb-cdc45791ef89\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:42.915", + "timestampUnix": 1708934022915 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:42.915", + "timestampUnix": 1708934022915 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:42.915", + "timestampUnix": 1708934022915 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:42.915", + "timestampUnix": 1708934022915 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:42 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:42.915", + "timestampUnix": 1708934022915 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:42.915", + "timestampUnix": 1708934022915 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:42.915", + "timestampUnix": 1708934022915 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:42.915", + "timestampUnix": 1708934022915 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:42.921", + "timestampUnix": 1708934022921 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 7f09e78bb1c5b4f2a676296a06ed9062\\r\\nX-B3-SpanId: c38444be692bd749\\r\\nX-B3-ParentSpanId: a676296a06ed9062\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: c64a7001-df06-9b3f-bbcb-cdc45791ef89\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:42.933", + "timestampUnix": 1708934022933 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:42.933", + "timestampUnix": 1708934022933 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:42.933", + "timestampUnix": 1708934022933 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:42.933", + "timestampUnix": 1708934022933 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:42 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:42.933", + "timestampUnix": 1708934022933 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:42.933", + "timestampUnix": 1708934022933 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:42.933", + "timestampUnix": 1708934022933 + }, + { + "message": "header: x-envoy-upstream-service-time: 8", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:42.933", + "timestampUnix": 1708934022933 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:42.933", + "timestampUnix": 1708934022933 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:42.933", + "timestampUnix": 1708934022933 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:42] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:42.936", + "timestampUnix": 1708934022936 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:43.907", + "timestampUnix": 1708934023907 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 742fe34d73dac83f58539c82682f4f0c\\r\\nX-B3-SpanId: cf929c99b7ace42c\\r\\nX-B3-ParentSpanId: 58539c82682f4f0c\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 0b512189-0994-93d8-a578-b52dcf96b2e9\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:43.915", + "timestampUnix": 1708934023915 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:43.915", + "timestampUnix": 1708934023915 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:43.915", + "timestampUnix": 1708934023915 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:43.915", + "timestampUnix": 1708934023915 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:43 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:43.915", + "timestampUnix": 1708934023915 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:43.915", + "timestampUnix": 1708934023915 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:43.915", + "timestampUnix": 1708934023915 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:43.915", + "timestampUnix": 1708934023915 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:43.920", + "timestampUnix": 1708934023920 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 742fe34d73dac83f58539c82682f4f0c\\r\\nX-B3-SpanId: cf929c99b7ace42c\\r\\nX-B3-ParentSpanId: 58539c82682f4f0c\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 0b512189-0994-93d8-a578-b52dcf96b2e9\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:43.932", + "timestampUnix": 1708934023932 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:43.932", + "timestampUnix": 1708934023932 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:43.932", + "timestampUnix": 1708934023932 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:43.932", + "timestampUnix": 1708934023932 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:43 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:43.932", + "timestampUnix": 1708934023932 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:43.932", + "timestampUnix": 1708934023932 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:43.932", + "timestampUnix": 1708934023932 + }, + { + "message": "header: x-envoy-upstream-service-time: 8", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:43.932", + "timestampUnix": 1708934023932 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:43.932", + "timestampUnix": 1708934023932 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:43.932", + "timestampUnix": 1708934023932 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:43] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:43.935", + "timestampUnix": 1708934023935 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:44.901", + "timestampUnix": 1708934024901 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: b7fc67bb7634271154314ca03e234680\\r\\nX-B3-SpanId: 5990bd6cc7dd2c94\\r\\nX-B3-ParentSpanId: 54314ca03e234680\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 6c7e1f02-0eec-98da-886a-805e9252a498\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:44.903", + "timestampUnix": 1708934024903 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:44.903", + "timestampUnix": 1708934024903 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:44.903", + "timestampUnix": 1708934024903 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:44.903", + "timestampUnix": 1708934024903 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:44 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:44.903", + "timestampUnix": 1708934024903 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:44.903", + "timestampUnix": 1708934024903 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:44.903", + "timestampUnix": 1708934024903 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:44.903", + "timestampUnix": 1708934024903 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:44.905", + "timestampUnix": 1708934024905 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: b7fc67bb7634271154314ca03e234680\\r\\nX-B3-SpanId: 5990bd6cc7dd2c94\\r\\nX-B3-ParentSpanId: 54314ca03e234680\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 6c7e1f02-0eec-98da-886a-805e9252a498\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:44.909", + "timestampUnix": 1708934024909 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:44.909", + "timestampUnix": 1708934024909 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:44.909", + "timestampUnix": 1708934024909 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:44.909", + "timestampUnix": 1708934024909 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:44 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:44.909", + "timestampUnix": 1708934024909 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:44.909", + "timestampUnix": 1708934024909 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:44.909", + "timestampUnix": 1708934024909 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:44.909", + "timestampUnix": 1708934024909 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:44.909", + "timestampUnix": 1708934024909 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:44.909", + "timestampUnix": 1708934024909 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:44] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:44.910", + "timestampUnix": 1708934024910 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:45.900", + "timestampUnix": 1708934025900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: f1760e2ac82eb67287ebfbab2b03b07f\\r\\nX-B3-SpanId: 41a7813c261274d0\\r\\nX-B3-ParentSpanId: 87ebfbab2b03b07f\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: ae9848f8-b223-9e43-bc06-703adf3d16b7\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:45.902", + "timestampUnix": 1708934025902 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:45.902", + "timestampUnix": 1708934025902 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:45.902", + "timestampUnix": 1708934025902 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:45.902", + "timestampUnix": 1708934025902 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:45 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:45.902", + "timestampUnix": 1708934025902 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:45.902", + "timestampUnix": 1708934025902 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:45.902", + "timestampUnix": 1708934025902 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:45.902", + "timestampUnix": 1708934025902 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:45.904", + "timestampUnix": 1708934025904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: f1760e2ac82eb67287ebfbab2b03b07f\\r\\nX-B3-SpanId: 41a7813c261274d0\\r\\nX-B3-ParentSpanId: 87ebfbab2b03b07f\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: ae9848f8-b223-9e43-bc06-703adf3d16b7\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:45.906", + "timestampUnix": 1708934025906 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:45.906", + "timestampUnix": 1708934025906 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:45.906", + "timestampUnix": 1708934025906 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:45.906", + "timestampUnix": 1708934025906 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:45 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:45.906", + "timestampUnix": 1708934025906 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:45.906", + "timestampUnix": 1708934025906 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:45.906", + "timestampUnix": 1708934025906 + }, + { + "message": "header: x-envoy-upstream-service-time: 0", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:45.906", + "timestampUnix": 1708934025906 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:45.906", + "timestampUnix": 1708934025906 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:45.906", + "timestampUnix": 1708934025906 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:45] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:45.907", + "timestampUnix": 1708934025907 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:46.906", + "timestampUnix": 1708934026906 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: fb9ced8e58cfaf678e84dd282523fec\\r\\nX-B3-SpanId: 4c10e65e75605eca\\r\\nX-B3-ParentSpanId: 78e84dd282523fec\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 485370a1-caaa-94c9-930d-9aefc2d1f2e3\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:46.909", + "timestampUnix": 1708934026909 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:46.909", + "timestampUnix": 1708934026909 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:46.909", + "timestampUnix": 1708934026909 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:46.909", + "timestampUnix": 1708934026909 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:46 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:46.909", + "timestampUnix": 1708934026909 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:46.909", + "timestampUnix": 1708934026909 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:46.909", + "timestampUnix": 1708934026909 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:46.909", + "timestampUnix": 1708934026909 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:46.910", + "timestampUnix": 1708934026910 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: fb9ced8e58cfaf678e84dd282523fec\\r\\nX-B3-SpanId: 4c10e65e75605eca\\r\\nX-B3-ParentSpanId: 78e84dd282523fec\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 485370a1-caaa-94c9-930d-9aefc2d1f2e3\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:46.913", + "timestampUnix": 1708934026913 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:46.913", + "timestampUnix": 1708934026913 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:46.913", + "timestampUnix": 1708934026913 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:46.913", + "timestampUnix": 1708934026913 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:46 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:46.913", + "timestampUnix": 1708934026913 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:46.913", + "timestampUnix": 1708934026913 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:46.913", + "timestampUnix": 1708934026913 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:46.913", + "timestampUnix": 1708934026913 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:46.913", + "timestampUnix": 1708934026913 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:46.913", + "timestampUnix": 1708934026913 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:46] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:46.914", + "timestampUnix": 1708934026914 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:47.900", + "timestampUnix": 1708934027900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 3b8b65065a0679d0779fae29a5eb188f\\r\\nX-B3-SpanId: d7906b2829f75579\\r\\nX-B3-ParentSpanId: 779fae29a5eb188f\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 25f24dc1-4714-938f-829c-0f857cbfafcc\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:47.902", + "timestampUnix": 1708934027902 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:47.902", + "timestampUnix": 1708934027902 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:47.902", + "timestampUnix": 1708934027902 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:47.902", + "timestampUnix": 1708934027902 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:47 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:47.902", + "timestampUnix": 1708934027902 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:47.902", + "timestampUnix": 1708934027902 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:47.902", + "timestampUnix": 1708934027902 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:47.902", + "timestampUnix": 1708934027902 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:47.904", + "timestampUnix": 1708934027904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 3b8b65065a0679d0779fae29a5eb188f\\r\\nX-B3-SpanId: d7906b2829f75579\\r\\nX-B3-ParentSpanId: 779fae29a5eb188f\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 25f24dc1-4714-938f-829c-0f857cbfafcc\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:47.906", + "timestampUnix": 1708934027906 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:47.906", + "timestampUnix": 1708934027906 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:47.906", + "timestampUnix": 1708934027906 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:47.906", + "timestampUnix": 1708934027906 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:46 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:47.906", + "timestampUnix": 1708934027906 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:47.906", + "timestampUnix": 1708934027906 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:47.906", + "timestampUnix": 1708934027906 + }, + { + "message": "header: x-envoy-upstream-service-time: 0", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:47.906", + "timestampUnix": 1708934027906 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:47.906", + "timestampUnix": 1708934027906 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:47.906", + "timestampUnix": 1708934027906 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:47] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:47.907", + "timestampUnix": 1708934027907 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:48.902", + "timestampUnix": 1708934028902 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 4744956a29a0b1373403d24eb45a4eb0\\r\\nX-B3-SpanId: 39fea0853c0a57f8\\r\\nX-B3-ParentSpanId: 3403d24eb45a4eb0\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 6117da20-3dc5-99f5-8869-1ae75c1d0b86\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:48.907", + "timestampUnix": 1708934028907 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:48.907", + "timestampUnix": 1708934028907 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:48.907", + "timestampUnix": 1708934028907 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:48.907", + "timestampUnix": 1708934028907 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:48 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:48.907", + "timestampUnix": 1708934028907 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:48.907", + "timestampUnix": 1708934028907 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:48.907", + "timestampUnix": 1708934028907 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:48.907", + "timestampUnix": 1708934028907 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:48.909", + "timestampUnix": 1708934028909 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 4744956a29a0b1373403d24eb45a4eb0\\r\\nX-B3-SpanId: 39fea0853c0a57f8\\r\\nX-B3-ParentSpanId: 3403d24eb45a4eb0\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 6117da20-3dc5-99f5-8869-1ae75c1d0b86\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:48.911", + "timestampUnix": 1708934028911 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:48.911", + "timestampUnix": 1708934028911 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:48.911", + "timestampUnix": 1708934028911 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:48.911", + "timestampUnix": 1708934028911 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:48 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:48.911", + "timestampUnix": 1708934028911 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:48.911", + "timestampUnix": 1708934028911 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:48.911", + "timestampUnix": 1708934028911 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:48.911", + "timestampUnix": 1708934028911 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:48.911", + "timestampUnix": 1708934028911 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:48.911", + "timestampUnix": 1708934028911 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:48] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:48.912", + "timestampUnix": 1708934028912 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:49.900", + "timestampUnix": 1708934029900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: e3501761322628e54ebe7e5c2cebb08b\\r\\nX-B3-SpanId: 0b46b69d100bbba2\\r\\nX-B3-ParentSpanId: 4ebe7e5c2cebb08b\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 92bf73e4-d4cd-967b-9980-559f2af6e581\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:49.902", + "timestampUnix": 1708934029902 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:49.902", + "timestampUnix": 1708934029902 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:49.902", + "timestampUnix": 1708934029902 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:49.902", + "timestampUnix": 1708934029902 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:49 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:49.902", + "timestampUnix": 1708934029902 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:49.902", + "timestampUnix": 1708934029902 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:49.902", + "timestampUnix": 1708934029902 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:49.902", + "timestampUnix": 1708934029902 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:49.904", + "timestampUnix": 1708934029904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: e3501761322628e54ebe7e5c2cebb08b\\r\\nX-B3-SpanId: 0b46b69d100bbba2\\r\\nX-B3-ParentSpanId: 4ebe7e5c2cebb08b\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 92bf73e4-d4cd-967b-9980-559f2af6e581\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:49.908", + "timestampUnix": 1708934029908 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:49.908", + "timestampUnix": 1708934029908 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:49.908", + "timestampUnix": 1708934029908 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:49.908", + "timestampUnix": 1708934029908 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:49 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:49.908", + "timestampUnix": 1708934029908 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:49.908", + "timestampUnix": 1708934029908 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:49.908", + "timestampUnix": 1708934029908 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:49.908", + "timestampUnix": 1708934029908 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:49.908", + "timestampUnix": 1708934029908 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:49.908", + "timestampUnix": 1708934029908 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:49] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:49.909", + "timestampUnix": 1708934029909 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:50.907", + "timestampUnix": 1708934030907 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: bc48e08123a75ab7925eebb5e60a0457\\r\\nX-B3-SpanId: 442f074bbc55c724\\r\\nX-B3-ParentSpanId: 925eebb5e60a0457\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 8670b084-be5c-9040-af05-61ef21e1f836\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:50.911", + "timestampUnix": 1708934030911 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:50.911", + "timestampUnix": 1708934030911 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:50.911", + "timestampUnix": 1708934030911 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:50.911", + "timestampUnix": 1708934030911 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:50 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:50.911", + "timestampUnix": 1708934030911 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:50.911", + "timestampUnix": 1708934030911 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:50.911", + "timestampUnix": 1708934030911 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:50.911", + "timestampUnix": 1708934030911 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:50.912", + "timestampUnix": 1708934030912 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: bc48e08123a75ab7925eebb5e60a0457\\r\\nX-B3-SpanId: 442f074bbc55c724\\r\\nX-B3-ParentSpanId: 925eebb5e60a0457\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 8670b084-be5c-9040-af05-61ef21e1f836\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:50.917", + "timestampUnix": 1708934030917 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:50.917", + "timestampUnix": 1708934030917 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:50.917", + "timestampUnix": 1708934030917 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:50.917", + "timestampUnix": 1708934030917 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:50 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:50.917", + "timestampUnix": 1708934030917 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:50.917", + "timestampUnix": 1708934030917 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:50.917", + "timestampUnix": 1708934030917 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:50.917", + "timestampUnix": 1708934030917 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:50.917", + "timestampUnix": 1708934030917 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:50.917", + "timestampUnix": 1708934030917 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:50] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:50.918", + "timestampUnix": 1708934030918 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:51.906", + "timestampUnix": 1708934031906 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: bddc509357bdaa308a2ffd082e7bb248\\r\\nX-B3-SpanId: 3940601871a28687\\r\\nX-B3-ParentSpanId: 8a2ffd082e7bb248\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 52ca91ec-e9f6-911d-b790-a3f55ef53eba\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:51.908", + "timestampUnix": 1708934031908 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:51.909", + "timestampUnix": 1708934031909 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:51.909", + "timestampUnix": 1708934031909 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:51.909", + "timestampUnix": 1708934031909 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:51 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:51.909", + "timestampUnix": 1708934031909 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:51.909", + "timestampUnix": 1708934031909 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:51.909", + "timestampUnix": 1708934031909 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:51.909", + "timestampUnix": 1708934031909 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:51.910", + "timestampUnix": 1708934031910 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: bddc509357bdaa308a2ffd082e7bb248\\r\\nX-B3-SpanId: 3940601871a28687\\r\\nX-B3-ParentSpanId: 8a2ffd082e7bb248\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 52ca91ec-e9f6-911d-b790-a3f55ef53eba\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:51.912", + "timestampUnix": 1708934031912 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:51.912", + "timestampUnix": 1708934031912 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:51.912", + "timestampUnix": 1708934031912 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:51.912", + "timestampUnix": 1708934031912 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:51 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:51.912", + "timestampUnix": 1708934031912 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:51.912", + "timestampUnix": 1708934031912 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:51.912", + "timestampUnix": 1708934031912 + }, + { + "message": "header: x-envoy-upstream-service-time: 0", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:51.912", + "timestampUnix": 1708934031912 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:51.912", + "timestampUnix": 1708934031912 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:51.912", + "timestampUnix": 1708934031912 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:51] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:51.913", + "timestampUnix": 1708934031913 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:52.907", + "timestampUnix": 1708934032907 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: ce2364b2518cd64e9ca84d2188b3089\\r\\nX-B3-SpanId: b3ee7daedac71002\\r\\nX-B3-ParentSpanId: e9ca84d2188b3089\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 5e95fdc0-87ef-9a0f-bff2-090bceff0975\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:52.913", + "timestampUnix": 1708934032913 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:52.913", + "timestampUnix": 1708934032913 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:52.913", + "timestampUnix": 1708934032913 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:52.913", + "timestampUnix": 1708934032913 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:52 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:52.913", + "timestampUnix": 1708934032913 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:52.913", + "timestampUnix": 1708934032913 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:52.913", + "timestampUnix": 1708934032913 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:52.913", + "timestampUnix": 1708934032913 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:52.914", + "timestampUnix": 1708934032914 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: ce2364b2518cd64e9ca84d2188b3089\\r\\nX-B3-SpanId: b3ee7daedac71002\\r\\nX-B3-ParentSpanId: e9ca84d2188b3089\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 5e95fdc0-87ef-9a0f-bff2-090bceff0975\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:52.918", + "timestampUnix": 1708934032918 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:52.918", + "timestampUnix": 1708934032918 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:52.918", + "timestampUnix": 1708934032918 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:52.918", + "timestampUnix": 1708934032918 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:52 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:52.918", + "timestampUnix": 1708934032918 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:52.918", + "timestampUnix": 1708934032918 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:52.918", + "timestampUnix": 1708934032918 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:52.918", + "timestampUnix": 1708934032918 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:52.918", + "timestampUnix": 1708934032918 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:52.918", + "timestampUnix": 1708934032918 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:52] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:52.919", + "timestampUnix": 1708934032919 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.1 - - [26/Feb/2024 07:53:52] \"GET /metrics HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:52.991", + "timestampUnix": 1708934032991 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:53.903", + "timestampUnix": 1708934033903 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 8e0e1e162b895a0cbb231e6754a40a4d\\r\\nX-B3-SpanId: daa530ef7111fedd\\r\\nX-B3-ParentSpanId: bb231e6754a40a4d\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 4ab66995-eced-9233-8f3b-553b5f3ba8b7\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:53.907", + "timestampUnix": 1708934033907 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:53.907", + "timestampUnix": 1708934033907 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:53.907", + "timestampUnix": 1708934033907 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:53.907", + "timestampUnix": 1708934033907 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:53 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:53.907", + "timestampUnix": 1708934033907 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:53.907", + "timestampUnix": 1708934033907 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:53.907", + "timestampUnix": 1708934033907 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:53.907", + "timestampUnix": 1708934033907 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:53.910", + "timestampUnix": 1708934033910 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 8e0e1e162b895a0cbb231e6754a40a4d\\r\\nX-B3-SpanId: daa530ef7111fedd\\r\\nX-B3-ParentSpanId: bb231e6754a40a4d\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 4ab66995-eced-9233-8f3b-553b5f3ba8b7\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:53.917", + "timestampUnix": 1708934033917 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:53.917", + "timestampUnix": 1708934033917 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:53.917", + "timestampUnix": 1708934033917 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:53.917", + "timestampUnix": 1708934033917 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:52 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:53.917", + "timestampUnix": 1708934033917 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:53.917", + "timestampUnix": 1708934033917 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:53.917", + "timestampUnix": 1708934033917 + }, + { + "message": "header: x-envoy-upstream-service-time: 4", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:53.917", + "timestampUnix": 1708934033917 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:53.917", + "timestampUnix": 1708934033917 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:53.917", + "timestampUnix": 1708934033917 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:53] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:53.918", + "timestampUnix": 1708934033918 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:54.902", + "timestampUnix": 1708934034902 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 77ab779868da060d887fe8ab0580e2a\\r\\nX-B3-SpanId: e089be1cb383ec44\\r\\nX-B3-ParentSpanId: d887fe8ab0580e2a\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: ab7a6c8e-03d7-9b7d-b566-7645cda8ab12\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:54.905", + "timestampUnix": 1708934034905 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:54.905", + "timestampUnix": 1708934034905 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:54.905", + "timestampUnix": 1708934034905 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:54.905", + "timestampUnix": 1708934034905 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:54 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:54.905", + "timestampUnix": 1708934034905 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:54.905", + "timestampUnix": 1708934034905 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:54.905", + "timestampUnix": 1708934034905 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:54.905", + "timestampUnix": 1708934034905 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:54.907", + "timestampUnix": 1708934034907 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 77ab779868da060d887fe8ab0580e2a\\r\\nX-B3-SpanId: e089be1cb383ec44\\r\\nX-B3-ParentSpanId: d887fe8ab0580e2a\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: ab7a6c8e-03d7-9b7d-b566-7645cda8ab12\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:54.910", + "timestampUnix": 1708934034910 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:54.910", + "timestampUnix": 1708934034910 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:54.910", + "timestampUnix": 1708934034910 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:54.910", + "timestampUnix": 1708934034910 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:54 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:54.910", + "timestampUnix": 1708934034910 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:54.910", + "timestampUnix": 1708934034910 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:54.910", + "timestampUnix": 1708934034910 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:54.910", + "timestampUnix": 1708934034910 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:54.910", + "timestampUnix": 1708934034910 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:54.910", + "timestampUnix": 1708934034910 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:54] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:54.911", + "timestampUnix": 1708934034911 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:55.907", + "timestampUnix": 1708934035907 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 248d04057a6a05a236929adeb3a86ae6\\r\\nX-B3-SpanId: 36cdb1bfedbedc68\\r\\nX-B3-ParentSpanId: 36929adeb3a86ae6\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: f9ed7703-cb54-9473-a479-4d8bab613220\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:55.914", + "timestampUnix": 1708934035914 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:55.914", + "timestampUnix": 1708934035914 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:55.914", + "timestampUnix": 1708934035914 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:55.914", + "timestampUnix": 1708934035914 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:55 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:55.914", + "timestampUnix": 1708934035914 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:55.914", + "timestampUnix": 1708934035914 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:55.914", + "timestampUnix": 1708934035914 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:55.914", + "timestampUnix": 1708934035914 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:55.920", + "timestampUnix": 1708934035920 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 248d04057a6a05a236929adeb3a86ae6\\r\\nX-B3-SpanId: 36cdb1bfedbedc68\\r\\nX-B3-ParentSpanId: 36929adeb3a86ae6\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: f9ed7703-cb54-9473-a479-4d8bab613220\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:55.926", + "timestampUnix": 1708934035926 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:55.926", + "timestampUnix": 1708934035926 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:55.926", + "timestampUnix": 1708934035926 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:55.926", + "timestampUnix": 1708934035926 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:55 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:55.926", + "timestampUnix": 1708934035926 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:55.926", + "timestampUnix": 1708934035926 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:55.926", + "timestampUnix": 1708934035926 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:55.926", + "timestampUnix": 1708934035926 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:55.926", + "timestampUnix": 1708934035926 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:55.926", + "timestampUnix": 1708934035926 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:55] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:55.929", + "timestampUnix": 1708934035929 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:56.901", + "timestampUnix": 1708934036901 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: be2b6a6a8c19ac33f36eb05d52039529\\r\\nX-B3-SpanId: 6d8b1858c933a9df\\r\\nX-B3-ParentSpanId: f36eb05d52039529\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 5ecddbf9-abfe-931b-ad73-a33f933d9cbd\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:56.903", + "timestampUnix": 1708934036903 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:56.903", + "timestampUnix": 1708934036903 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:56.903", + "timestampUnix": 1708934036903 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:56.903", + "timestampUnix": 1708934036903 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:56 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:56.903", + "timestampUnix": 1708934036903 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:56.903", + "timestampUnix": 1708934036903 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:56.903", + "timestampUnix": 1708934036903 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:56.903", + "timestampUnix": 1708934036903 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:56.905", + "timestampUnix": 1708934036905 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: be2b6a6a8c19ac33f36eb05d52039529\\r\\nX-B3-SpanId: 6d8b1858c933a9df\\r\\nX-B3-ParentSpanId: f36eb05d52039529\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 5ecddbf9-abfe-931b-ad73-a33f933d9cbd\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:56.907", + "timestampUnix": 1708934036907 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:56.907", + "timestampUnix": 1708934036907 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:56.907", + "timestampUnix": 1708934036907 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:56.907", + "timestampUnix": 1708934036907 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:55 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:56.907", + "timestampUnix": 1708934036907 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:56.907", + "timestampUnix": 1708934036907 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:56.907", + "timestampUnix": 1708934036907 + }, + { + "message": "header: x-envoy-upstream-service-time: 0", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:56.907", + "timestampUnix": 1708934036907 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:56.907", + "timestampUnix": 1708934036907 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:56.907", + "timestampUnix": 1708934036907 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:56] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:56.908", + "timestampUnix": 1708934036908 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:57.900", + "timestampUnix": 1708934037900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 8d7366b3981ff3b1e84148b4f7ece92b\\r\\nX-B3-SpanId: d29b91fb00ee2cf5\\r\\nX-B3-ParentSpanId: e84148b4f7ece92b\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: b90de3ff-2b18-9750-ac94-cb5378ff2ce5\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:57.902", + "timestampUnix": 1708934037902 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:57.903", + "timestampUnix": 1708934037903 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:57.903", + "timestampUnix": 1708934037903 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:57.903", + "timestampUnix": 1708934037903 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:57 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:57.903", + "timestampUnix": 1708934037903 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:57.903", + "timestampUnix": 1708934037903 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:57.903", + "timestampUnix": 1708934037903 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:57.903", + "timestampUnix": 1708934037903 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:57.904", + "timestampUnix": 1708934037904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 8d7366b3981ff3b1e84148b4f7ece92b\\r\\nX-B3-SpanId: d29b91fb00ee2cf5\\r\\nX-B3-ParentSpanId: e84148b4f7ece92b\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: b90de3ff-2b18-9750-ac94-cb5378ff2ce5\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:57.907", + "timestampUnix": 1708934037907 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:57.907", + "timestampUnix": 1708934037907 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:57.907", + "timestampUnix": 1708934037907 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:57.907", + "timestampUnix": 1708934037907 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:57 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:57.907", + "timestampUnix": 1708934037907 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:57.907", + "timestampUnix": 1708934037907 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:57.907", + "timestampUnix": 1708934037907 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:57.907", + "timestampUnix": 1708934037907 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:57.907", + "timestampUnix": 1708934037907 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:57.907", + "timestampUnix": 1708934037907 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:57] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:57.908", + "timestampUnix": 1708934037908 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:58.900", + "timestampUnix": 1708934038900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: e37e1fd184ce7351d7ec28f1ce8bf89c\\r\\nX-B3-SpanId: a27bc0628c850f6a\\r\\nX-B3-ParentSpanId: d7ec28f1ce8bf89c\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: cc5a54a7-a0a0-9872-87a7-f609f9acf2da\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:58.902", + "timestampUnix": 1708934038902 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:58.902", + "timestampUnix": 1708934038902 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:58.902", + "timestampUnix": 1708934038902 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:58.902", + "timestampUnix": 1708934038902 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:58 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:58.902", + "timestampUnix": 1708934038902 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:58.902", + "timestampUnix": 1708934038902 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:58.902", + "timestampUnix": 1708934038902 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:58.902", + "timestampUnix": 1708934038902 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:58.904", + "timestampUnix": 1708934038904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: e37e1fd184ce7351d7ec28f1ce8bf89c\\r\\nX-B3-SpanId: a27bc0628c850f6a\\r\\nX-B3-ParentSpanId: d7ec28f1ce8bf89c\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: cc5a54a7-a0a0-9872-87a7-f609f9acf2da\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:58.907", + "timestampUnix": 1708934038907 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:58.907", + "timestampUnix": 1708934038907 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:58.907", + "timestampUnix": 1708934038907 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:58.907", + "timestampUnix": 1708934038907 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:58 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:58.907", + "timestampUnix": 1708934038907 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:58.908", + "timestampUnix": 1708934038908 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:58.908", + "timestampUnix": 1708934038908 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:58.908", + "timestampUnix": 1708934038908 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:58.908", + "timestampUnix": 1708934038908 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:58.908", + "timestampUnix": 1708934038908 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:58] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:58.908", + "timestampUnix": 1708934038908 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:59.907", + "timestampUnix": 1708934039907 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 57f69a62a0729f2f20329a55308be7f2\\r\\nX-B3-SpanId: 9fcd489bda07fc4d\\r\\nX-B3-ParentSpanId: 20329a55308be7f2\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: e389d068-9153-9d31-a222-07f5f576d854\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:59.914", + "timestampUnix": 1708934039914 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:59.914", + "timestampUnix": 1708934039914 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:59.914", + "timestampUnix": 1708934039914 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:59.914", + "timestampUnix": 1708934039914 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:59 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:59.914", + "timestampUnix": 1708934039914 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:59.914", + "timestampUnix": 1708934039914 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:59.914", + "timestampUnix": 1708934039914 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:59.914", + "timestampUnix": 1708934039914 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:59.919", + "timestampUnix": 1708934039919 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 57f69a62a0729f2f20329a55308be7f2\\r\\nX-B3-SpanId: 9fcd489bda07fc4d\\r\\nX-B3-ParentSpanId: 20329a55308be7f2\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: e389d068-9153-9d31-a222-07f5f576d854\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:53:59.925", + "timestampUnix": 1708934039925 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:59.925", + "timestampUnix": 1708934039925 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:59.925", + "timestampUnix": 1708934039925 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:59.925", + "timestampUnix": 1708934039925 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:53:59 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:59.925", + "timestampUnix": 1708934039925 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:59.925", + "timestampUnix": 1708934039925 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:59.925", + "timestampUnix": 1708934039925 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:59.925", + "timestampUnix": 1708934039925 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:59.925", + "timestampUnix": 1708934039925 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:53:59.925", + "timestampUnix": 1708934039925 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:53:59] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:53:59.928", + "timestampUnix": 1708934039928 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:00.900", + "timestampUnix": 1708934040900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 8239d6d09c26ab16992d1fdede2570ed\\r\\nX-B3-SpanId: 61c3f03d1ea94154\\r\\nX-B3-ParentSpanId: 992d1fdede2570ed\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: d00c1d65-f90f-97a6-9dbf-9038e7d5f832\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:00.902", + "timestampUnix": 1708934040902 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:00.902", + "timestampUnix": 1708934040902 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:00.902", + "timestampUnix": 1708934040902 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:00.902", + "timestampUnix": 1708934040902 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:00 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:00.902", + "timestampUnix": 1708934040902 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:00.902", + "timestampUnix": 1708934040902 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:00.903", + "timestampUnix": 1708934040903 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:00.903", + "timestampUnix": 1708934040903 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:00.904", + "timestampUnix": 1708934040904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 8239d6d09c26ab16992d1fdede2570ed\\r\\nX-B3-SpanId: 61c3f03d1ea94154\\r\\nX-B3-ParentSpanId: 992d1fdede2570ed\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: d00c1d65-f90f-97a6-9dbf-9038e7d5f832\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:00.908", + "timestampUnix": 1708934040908 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:00.908", + "timestampUnix": 1708934040908 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:00.908", + "timestampUnix": 1708934040908 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:00.908", + "timestampUnix": 1708934040908 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:00 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:00.908", + "timestampUnix": 1708934040908 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:00.908", + "timestampUnix": 1708934040908 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:00.908", + "timestampUnix": 1708934040908 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:00.908", + "timestampUnix": 1708934040908 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:00.908", + "timestampUnix": 1708934040908 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:00.908", + "timestampUnix": 1708934040908 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:00] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:00.909", + "timestampUnix": 1708934040909 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:01.901", + "timestampUnix": 1708934041901 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: e2a6df55a5422f9827fd67f1623f4ab1\\r\\nX-B3-SpanId: 327b87e3e1ef8889\\r\\nX-B3-ParentSpanId: 27fd67f1623f4ab1\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 1e9f0225-398d-9557-8415-0532b9a4c011\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:01.904", + "timestampUnix": 1708934041904 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:01.904", + "timestampUnix": 1708934041904 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:01.904", + "timestampUnix": 1708934041904 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:01.904", + "timestampUnix": 1708934041904 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:01 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:01.904", + "timestampUnix": 1708934041904 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:01.904", + "timestampUnix": 1708934041904 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:01.904", + "timestampUnix": 1708934041904 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:01.904", + "timestampUnix": 1708934041904 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:01.907", + "timestampUnix": 1708934041907 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: e2a6df55a5422f9827fd67f1623f4ab1\\r\\nX-B3-SpanId: 327b87e3e1ef8889\\r\\nX-B3-ParentSpanId: 27fd67f1623f4ab1\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 1e9f0225-398d-9557-8415-0532b9a4c011\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:01.909", + "timestampUnix": 1708934041909 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:01.909", + "timestampUnix": 1708934041909 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:01.909", + "timestampUnix": 1708934041909 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:01.909", + "timestampUnix": 1708934041909 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:01 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:01.909", + "timestampUnix": 1708934041909 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:01.909", + "timestampUnix": 1708934041909 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:01.909", + "timestampUnix": 1708934041909 + }, + { + "message": "header: x-envoy-upstream-service-time: 0", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:01.909", + "timestampUnix": 1708934041909 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:01.909", + "timestampUnix": 1708934041909 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:01.909", + "timestampUnix": 1708934041909 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:01] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:01.910", + "timestampUnix": 1708934041910 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:02.900", + "timestampUnix": 1708934042900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: ec1235629c699a8170a105b586e2d115\\r\\nX-B3-SpanId: edb0e8861ecf2e81\\r\\nX-B3-ParentSpanId: 70a105b586e2d115\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 9e98f833-b1d2-9d96-aeaa-129bea56c8df\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:02.903", + "timestampUnix": 1708934042903 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:02.903", + "timestampUnix": 1708934042903 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:02.903", + "timestampUnix": 1708934042903 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:02.903", + "timestampUnix": 1708934042903 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:02 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:02.903", + "timestampUnix": 1708934042903 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:02.903", + "timestampUnix": 1708934042903 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:02.903", + "timestampUnix": 1708934042903 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:02.903", + "timestampUnix": 1708934042903 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:02.905", + "timestampUnix": 1708934042905 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: ec1235629c699a8170a105b586e2d115\\r\\nX-B3-SpanId: edb0e8861ecf2e81\\r\\nX-B3-ParentSpanId: 70a105b586e2d115\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 9e98f833-b1d2-9d96-aeaa-129bea56c8df\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:02.909", + "timestampUnix": 1708934042909 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:02.909", + "timestampUnix": 1708934042909 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:02.909", + "timestampUnix": 1708934042909 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:02.909", + "timestampUnix": 1708934042909 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:02 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:02.909", + "timestampUnix": 1708934042909 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:02.909", + "timestampUnix": 1708934042909 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:02.909", + "timestampUnix": 1708934042909 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:02.909", + "timestampUnix": 1708934042909 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:02.909", + "timestampUnix": 1708934042909 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:02.909", + "timestampUnix": 1708934042909 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:02] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:02.910", + "timestampUnix": 1708934042910 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:03.907", + "timestampUnix": 1708934043907 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: ce993fce1231a76b31650430b37d0d13\\r\\nX-B3-SpanId: 8be3cb38d65a0904\\r\\nX-B3-ParentSpanId: 31650430b37d0d13\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: b220ea06-2964-9e35-98a5-5a6193d7077e\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:03.916", + "timestampUnix": 1708934043916 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:03.916", + "timestampUnix": 1708934043916 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:03.916", + "timestampUnix": 1708934043916 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:03.916", + "timestampUnix": 1708934043916 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:03 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:03.916", + "timestampUnix": 1708934043916 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:03.916", + "timestampUnix": 1708934043916 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:03.916", + "timestampUnix": 1708934043916 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:03.916", + "timestampUnix": 1708934043916 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:03.921", + "timestampUnix": 1708934043921 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: ce993fce1231a76b31650430b37d0d13\\r\\nX-B3-SpanId: 8be3cb38d65a0904\\r\\nX-B3-ParentSpanId: 31650430b37d0d13\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: b220ea06-2964-9e35-98a5-5a6193d7077e\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:03.927", + "timestampUnix": 1708934043927 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:03.927", + "timestampUnix": 1708934043927 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:03.927", + "timestampUnix": 1708934043927 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:03.927", + "timestampUnix": 1708934043927 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:03 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:03.927", + "timestampUnix": 1708934043927 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:03.927", + "timestampUnix": 1708934043927 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:03.927", + "timestampUnix": 1708934043927 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:03.927", + "timestampUnix": 1708934043927 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:03.927", + "timestampUnix": 1708934043927 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:03.927", + "timestampUnix": 1708934043927 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:03] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:03.928", + "timestampUnix": 1708934043928 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:04.906", + "timestampUnix": 1708934044906 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: bf1d6c0cb943723b5ccab4cc4d3ee53\\r\\nX-B3-SpanId: af57b3b146d6ef04\\r\\nX-B3-ParentSpanId: b5ccab4cc4d3ee53\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 521712ea-30ed-9ee0-9579-33858345dd3a\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:04.910", + "timestampUnix": 1708934044910 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:04.910", + "timestampUnix": 1708934044910 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:04.910", + "timestampUnix": 1708934044910 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:04.910", + "timestampUnix": 1708934044910 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:04 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:04.910", + "timestampUnix": 1708934044910 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:04.910", + "timestampUnix": 1708934044910 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:04.910", + "timestampUnix": 1708934044910 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:04.910", + "timestampUnix": 1708934044910 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:04.912", + "timestampUnix": 1708934044912 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: bf1d6c0cb943723b5ccab4cc4d3ee53\\r\\nX-B3-SpanId: af57b3b146d6ef04\\r\\nX-B3-ParentSpanId: b5ccab4cc4d3ee53\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 521712ea-30ed-9ee0-9579-33858345dd3a\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:04.916", + "timestampUnix": 1708934044916 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:04.916", + "timestampUnix": 1708934044916 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:04.916", + "timestampUnix": 1708934044916 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:04.916", + "timestampUnix": 1708934044916 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:03 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:04.916", + "timestampUnix": 1708934044916 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:04.916", + "timestampUnix": 1708934044916 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:04.916", + "timestampUnix": 1708934044916 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:04.916", + "timestampUnix": 1708934044916 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:04.916", + "timestampUnix": 1708934044916 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:04.916", + "timestampUnix": 1708934044916 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:04] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:04.917", + "timestampUnix": 1708934044917 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:05.907", + "timestampUnix": 1708934045907 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: ba144ac7a9dd250609e4dc491c4b27a7\\r\\nX-B3-SpanId: 2bfdbe7f840926eb\\r\\nX-B3-ParentSpanId: 09e4dc491c4b27a7\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 9faeb45d-45ca-9902-94f7-49dcb1e7cb13\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:05.915", + "timestampUnix": 1708934045915 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:05.915", + "timestampUnix": 1708934045915 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:05.915", + "timestampUnix": 1708934045915 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:05.915", + "timestampUnix": 1708934045915 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:05 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:05.915", + "timestampUnix": 1708934045915 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:05.915", + "timestampUnix": 1708934045915 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:05.915", + "timestampUnix": 1708934045915 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:05.915", + "timestampUnix": 1708934045915 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:05.920", + "timestampUnix": 1708934045920 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: ba144ac7a9dd250609e4dc491c4b27a7\\r\\nX-B3-SpanId: 2bfdbe7f840926eb\\r\\nX-B3-ParentSpanId: 09e4dc491c4b27a7\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 9faeb45d-45ca-9902-94f7-49dcb1e7cb13\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:05.926", + "timestampUnix": 1708934045926 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:05.926", + "timestampUnix": 1708934045926 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:05.926", + "timestampUnix": 1708934045926 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:05.926", + "timestampUnix": 1708934045926 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:05 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:05.926", + "timestampUnix": 1708934045926 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:05.926", + "timestampUnix": 1708934045926 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:05.926", + "timestampUnix": 1708934045926 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:05.926", + "timestampUnix": 1708934045926 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:05.926", + "timestampUnix": 1708934045926 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:05.926", + "timestampUnix": 1708934045926 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:05] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:05.927", + "timestampUnix": 1708934045927 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:06.906", + "timestampUnix": 1708934046906 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: b74a76ab7420f616f1cd2c1322f8f9fc\\r\\nX-B3-SpanId: 51e81df3a9553798\\r\\nX-B3-ParentSpanId: f1cd2c1322f8f9fc\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 7a1751c9-69b4-9c66-9b79-50b1126c6801\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:06.909", + "timestampUnix": 1708934046909 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:06.909", + "timestampUnix": 1708934046909 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:06.909", + "timestampUnix": 1708934046909 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:06.909", + "timestampUnix": 1708934046909 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:06 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:06.909", + "timestampUnix": 1708934046909 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:06.909", + "timestampUnix": 1708934046909 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:06.909", + "timestampUnix": 1708934046909 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:06.909", + "timestampUnix": 1708934046909 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:06.910", + "timestampUnix": 1708934046910 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: b74a76ab7420f616f1cd2c1322f8f9fc\\r\\nX-B3-SpanId: 51e81df3a9553798\\r\\nX-B3-ParentSpanId: f1cd2c1322f8f9fc\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 7a1751c9-69b4-9c66-9b79-50b1126c6801\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:06.915", + "timestampUnix": 1708934046915 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:06.915", + "timestampUnix": 1708934046915 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:06.915", + "timestampUnix": 1708934046915 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:06.915", + "timestampUnix": 1708934046915 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:05 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:06.915", + "timestampUnix": 1708934046915 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:06.915", + "timestampUnix": 1708934046915 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:06.915", + "timestampUnix": 1708934046915 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:06.915", + "timestampUnix": 1708934046915 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:06.915", + "timestampUnix": 1708934046915 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:06.915", + "timestampUnix": 1708934046915 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:06] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:06.916", + "timestampUnix": 1708934046916 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:07.903", + "timestampUnix": 1708934047903 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: c71e4c57e770a9af63cc5e3616cb3a8a\\r\\nX-B3-SpanId: 747d875d0513f15f\\r\\nX-B3-ParentSpanId: 63cc5e3616cb3a8a\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: e0bbf030-1c3c-943c-8f60-b0eaab73b70d\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:07.907", + "timestampUnix": 1708934047907 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:07.907", + "timestampUnix": 1708934047907 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:07.907", + "timestampUnix": 1708934047907 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:07.907", + "timestampUnix": 1708934047907 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:07 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:07.907", + "timestampUnix": 1708934047907 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:07.907", + "timestampUnix": 1708934047907 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:07.907", + "timestampUnix": 1708934047907 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:07.907", + "timestampUnix": 1708934047907 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:07.911", + "timestampUnix": 1708934047911 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: c71e4c57e770a9af63cc5e3616cb3a8a\\r\\nX-B3-SpanId: 747d875d0513f15f\\r\\nX-B3-ParentSpanId: 63cc5e3616cb3a8a\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: e0bbf030-1c3c-943c-8f60-b0eaab73b70d\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:07.917", + "timestampUnix": 1708934047917 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:07.917", + "timestampUnix": 1708934047917 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:07.917", + "timestampUnix": 1708934047917 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:07.917", + "timestampUnix": 1708934047917 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:07 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:07.917", + "timestampUnix": 1708934047917 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:07.917", + "timestampUnix": 1708934047917 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:07.917", + "timestampUnix": 1708934047917 + }, + { + "message": "header: x-envoy-upstream-service-time: 4", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:07.917", + "timestampUnix": 1708934047917 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:07.917", + "timestampUnix": 1708934047917 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:07.917", + "timestampUnix": 1708934047917 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:07] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:07.918", + "timestampUnix": 1708934047918 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.1 - - [26/Feb/2024 07:54:07] \"GET /metrics HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:07.982", + "timestampUnix": 1708934047982 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:08.903", + "timestampUnix": 1708934048903 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 18d87514ae923f3bf8be8a56b69c60d3\\r\\nX-B3-SpanId: a85d5ac2d417fa1a\\r\\nX-B3-ParentSpanId: f8be8a56b69c60d3\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 35b15d0c-cd39-92c2-b7a4-8f192e531ba8\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:08.906", + "timestampUnix": 1708934048906 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:08.906", + "timestampUnix": 1708934048906 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:08.906", + "timestampUnix": 1708934048906 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:08.906", + "timestampUnix": 1708934048906 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:08 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:08.906", + "timestampUnix": 1708934048906 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:08.906", + "timestampUnix": 1708934048906 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:08.906", + "timestampUnix": 1708934048906 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:08.906", + "timestampUnix": 1708934048906 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:08.908", + "timestampUnix": 1708934048908 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 18d87514ae923f3bf8be8a56b69c60d3\\r\\nX-B3-SpanId: a85d5ac2d417fa1a\\r\\nX-B3-ParentSpanId: f8be8a56b69c60d3\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 35b15d0c-cd39-92c2-b7a4-8f192e531ba8\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:08.912", + "timestampUnix": 1708934048912 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:08.912", + "timestampUnix": 1708934048912 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:08.912", + "timestampUnix": 1708934048912 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:08.912", + "timestampUnix": 1708934048912 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:08 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:08.912", + "timestampUnix": 1708934048912 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:08.912", + "timestampUnix": 1708934048912 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:08.912", + "timestampUnix": 1708934048912 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:08.912", + "timestampUnix": 1708934048912 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:08.912", + "timestampUnix": 1708934048912 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:08.912", + "timestampUnix": 1708934048912 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:08] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:08.913", + "timestampUnix": 1708934048913 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:09.907", + "timestampUnix": 1708934049907 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 19030674904e1e17b56d34f3273352b4\\r\\nX-B3-SpanId: ed54993bee1c89d6\\r\\nX-B3-ParentSpanId: b56d34f3273352b4\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 755ef7df-d612-9703-8d3e-13c0e4917269\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:09.914", + "timestampUnix": 1708934049914 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:09.914", + "timestampUnix": 1708934049914 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:09.914", + "timestampUnix": 1708934049914 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:09.914", + "timestampUnix": 1708934049914 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:09 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:09.914", + "timestampUnix": 1708934049914 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:09.914", + "timestampUnix": 1708934049914 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:09.914", + "timestampUnix": 1708934049914 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:09.914", + "timestampUnix": 1708934049914 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:09.916", + "timestampUnix": 1708934049916 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 19030674904e1e17b56d34f3273352b4\\r\\nX-B3-SpanId: ed54993bee1c89d6\\r\\nX-B3-ParentSpanId: b56d34f3273352b4\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 755ef7df-d612-9703-8d3e-13c0e4917269\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:09.919", + "timestampUnix": 1708934049919 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:09.919", + "timestampUnix": 1708934049919 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:09.919", + "timestampUnix": 1708934049919 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:09.919", + "timestampUnix": 1708934049919 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:09 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:09.919", + "timestampUnix": 1708934049919 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:09.919", + "timestampUnix": 1708934049919 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:09.919", + "timestampUnix": 1708934049919 + }, + { + "message": "header: x-envoy-upstream-service-time: 0", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:09.919", + "timestampUnix": 1708934049919 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:09.919", + "timestampUnix": 1708934049919 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:09.919", + "timestampUnix": 1708934049919 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:09] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:09.920", + "timestampUnix": 1708934049920 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:10.900", + "timestampUnix": 1708934050900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 61cf84148796c0a203b7f6bbceab2f3b\\r\\nX-B3-SpanId: e53c02b1409d6301\\r\\nX-B3-ParentSpanId: 03b7f6bbceab2f3b\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: bdb0590c-4893-9987-96ad-820c784d4289\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:10.902", + "timestampUnix": 1708934050902 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:10.902", + "timestampUnix": 1708934050902 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:10.902", + "timestampUnix": 1708934050902 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:10.902", + "timestampUnix": 1708934050902 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:10 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:10.902", + "timestampUnix": 1708934050902 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:10.902", + "timestampUnix": 1708934050902 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:10.902", + "timestampUnix": 1708934050902 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:10.902", + "timestampUnix": 1708934050902 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:10.904", + "timestampUnix": 1708934050904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 61cf84148796c0a203b7f6bbceab2f3b\\r\\nX-B3-SpanId: e53c02b1409d6301\\r\\nX-B3-ParentSpanId: 03b7f6bbceab2f3b\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: bdb0590c-4893-9987-96ad-820c784d4289\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:10.907", + "timestampUnix": 1708934050907 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:10.907", + "timestampUnix": 1708934050907 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:10.907", + "timestampUnix": 1708934050907 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:10.907", + "timestampUnix": 1708934050907 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:10 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:10.907", + "timestampUnix": 1708934050907 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:10.907", + "timestampUnix": 1708934050907 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:10.907", + "timestampUnix": 1708934050907 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:10.907", + "timestampUnix": 1708934050907 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:10.907", + "timestampUnix": 1708934050907 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:10.907", + "timestampUnix": 1708934050907 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:10] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:10.908", + "timestampUnix": 1708934050908 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:11.900", + "timestampUnix": 1708934051900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 7767458ac8f3bac5f55981fb526bd14e\\r\\nX-B3-SpanId: 107cf41741bd7c11\\r\\nX-B3-ParentSpanId: f55981fb526bd14e\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 68269792-2ea0-9837-98fd-a89aa0ab5286\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:11.902", + "timestampUnix": 1708934051902 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:11.902", + "timestampUnix": 1708934051902 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:11.902", + "timestampUnix": 1708934051902 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:11.902", + "timestampUnix": 1708934051902 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:11 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:11.902", + "timestampUnix": 1708934051902 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:11.902", + "timestampUnix": 1708934051902 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:11.902", + "timestampUnix": 1708934051902 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:11.902", + "timestampUnix": 1708934051902 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:11.904", + "timestampUnix": 1708934051904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 7767458ac8f3bac5f55981fb526bd14e\\r\\nX-B3-SpanId: 107cf41741bd7c11\\r\\nX-B3-ParentSpanId: f55981fb526bd14e\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 68269792-2ea0-9837-98fd-a89aa0ab5286\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:11.905", + "timestampUnix": 1708934051905 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:11.905", + "timestampUnix": 1708934051905 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:11.905", + "timestampUnix": 1708934051905 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:11.905", + "timestampUnix": 1708934051905 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:11 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:11.905", + "timestampUnix": 1708934051905 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:11.905", + "timestampUnix": 1708934051905 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:11.905", + "timestampUnix": 1708934051905 + }, + { + "message": "header: x-envoy-upstream-service-time: 0", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:11.905", + "timestampUnix": 1708934051905 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:11.905", + "timestampUnix": 1708934051905 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:11.905", + "timestampUnix": 1708934051905 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:11] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:11.906", + "timestampUnix": 1708934051906 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:12.900", + "timestampUnix": 1708934052900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: bdcce49f5fa0103ad51864b60abbec86\\r\\nX-B3-SpanId: 81baed9e818890d1\\r\\nX-B3-ParentSpanId: d51864b60abbec86\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 0909cddf-6dd6-9845-a12d-8b1e1e4f4a28\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:12.902", + "timestampUnix": 1708934052902 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:12.902", + "timestampUnix": 1708934052902 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:12.902", + "timestampUnix": 1708934052902 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:12.902", + "timestampUnix": 1708934052902 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:12 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:12.902", + "timestampUnix": 1708934052902 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:12.902", + "timestampUnix": 1708934052902 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:12.902", + "timestampUnix": 1708934052902 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:12.902", + "timestampUnix": 1708934052902 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:12.904", + "timestampUnix": 1708934052904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: bdcce49f5fa0103ad51864b60abbec86\\r\\nX-B3-SpanId: 81baed9e818890d1\\r\\nX-B3-ParentSpanId: d51864b60abbec86\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 0909cddf-6dd6-9845-a12d-8b1e1e4f4a28\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:12.906", + "timestampUnix": 1708934052906 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:12.906", + "timestampUnix": 1708934052906 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:12.906", + "timestampUnix": 1708934052906 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:12.906", + "timestampUnix": 1708934052906 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:11 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:12.906", + "timestampUnix": 1708934052906 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:12.906", + "timestampUnix": 1708934052906 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:12.906", + "timestampUnix": 1708934052906 + }, + { + "message": "header: x-envoy-upstream-service-time: 0", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:12.906", + "timestampUnix": 1708934052906 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:12.906", + "timestampUnix": 1708934052906 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:12.906", + "timestampUnix": 1708934052906 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:12] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:12.906", + "timestampUnix": 1708934052906 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:13.901", + "timestampUnix": 1708934053901 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 2c45e3249b3bddc5da5205fe8d07cff4\\r\\nX-B3-SpanId: 861de15fc8fa7254\\r\\nX-B3-ParentSpanId: da5205fe8d07cff4\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 2490ae7a-2f3f-9294-8387-64dae3bea3a6\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:13.903", + "timestampUnix": 1708934053903 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:13.903", + "timestampUnix": 1708934053903 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:13.903", + "timestampUnix": 1708934053903 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:13.903", + "timestampUnix": 1708934053903 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:13 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:13.903", + "timestampUnix": 1708934053903 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:13.903", + "timestampUnix": 1708934053903 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:13.903", + "timestampUnix": 1708934053903 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:13.903", + "timestampUnix": 1708934053903 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:13.904", + "timestampUnix": 1708934053904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 2c45e3249b3bddc5da5205fe8d07cff4\\r\\nX-B3-SpanId: 861de15fc8fa7254\\r\\nX-B3-ParentSpanId: da5205fe8d07cff4\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 2490ae7a-2f3f-9294-8387-64dae3bea3a6\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:13.908", + "timestampUnix": 1708934053908 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:13.908", + "timestampUnix": 1708934053908 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:13.908", + "timestampUnix": 1708934053908 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:13.908", + "timestampUnix": 1708934053908 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:13 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:13.908", + "timestampUnix": 1708934053908 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:13.908", + "timestampUnix": 1708934053908 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:13.908", + "timestampUnix": 1708934053908 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:13.908", + "timestampUnix": 1708934053908 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:13.908", + "timestampUnix": 1708934053908 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:13.908", + "timestampUnix": 1708934053908 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:13] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:13.909", + "timestampUnix": 1708934053909 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:14.906", + "timestampUnix": 1708934054906 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: cd40377206eb5ff305518b3a94a51987\\r\\nX-B3-SpanId: 469a326c0b708eb0\\r\\nX-B3-ParentSpanId: 05518b3a94a51987\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: edae774c-dd90-9678-83db-768cb621e6ef\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:14.909", + "timestampUnix": 1708934054909 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:14.909", + "timestampUnix": 1708934054909 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:14.909", + "timestampUnix": 1708934054909 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:14.909", + "timestampUnix": 1708934054909 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:14 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:14.909", + "timestampUnix": 1708934054909 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:14.909", + "timestampUnix": 1708934054909 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:14.909", + "timestampUnix": 1708934054909 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:14.909", + "timestampUnix": 1708934054909 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:14.911", + "timestampUnix": 1708934054911 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: cd40377206eb5ff305518b3a94a51987\\r\\nX-B3-SpanId: 469a326c0b708eb0\\r\\nX-B3-ParentSpanId: 05518b3a94a51987\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: edae774c-dd90-9678-83db-768cb621e6ef\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:14.915", + "timestampUnix": 1708934054915 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:14.915", + "timestampUnix": 1708934054915 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:14.915", + "timestampUnix": 1708934054915 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:14.915", + "timestampUnix": 1708934054915 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:14 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:14.915", + "timestampUnix": 1708934054915 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:14.915", + "timestampUnix": 1708934054915 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:14.915", + "timestampUnix": 1708934054915 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:14.915", + "timestampUnix": 1708934054915 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:14.915", + "timestampUnix": 1708934054915 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:14.915", + "timestampUnix": 1708934054915 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:14] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:14.916", + "timestampUnix": 1708934054916 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:15.900", + "timestampUnix": 1708934055900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: f9c1cd8295cc0b7b0cd552458fc0844d\\r\\nX-B3-SpanId: eb32461f87e16251\\r\\nX-B3-ParentSpanId: 0cd552458fc0844d\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 41381e70-f3b4-9299-b359-291fcc677358\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:15.903", + "timestampUnix": 1708934055903 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:15.903", + "timestampUnix": 1708934055903 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:15.903", + "timestampUnix": 1708934055903 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:15.903", + "timestampUnix": 1708934055903 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:15 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:15.903", + "timestampUnix": 1708934055903 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:15.903", + "timestampUnix": 1708934055903 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:15.903", + "timestampUnix": 1708934055903 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:15.903", + "timestampUnix": 1708934055903 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:15.905", + "timestampUnix": 1708934055905 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: f9c1cd8295cc0b7b0cd552458fc0844d\\r\\nX-B3-SpanId: eb32461f87e16251\\r\\nX-B3-ParentSpanId: 0cd552458fc0844d\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 41381e70-f3b4-9299-b359-291fcc677358\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:15.909", + "timestampUnix": 1708934055909 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:15.909", + "timestampUnix": 1708934055909 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:15.909", + "timestampUnix": 1708934055909 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:15.909", + "timestampUnix": 1708934055909 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:14 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:15.909", + "timestampUnix": 1708934055909 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:15.909", + "timestampUnix": 1708934055909 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:15.909", + "timestampUnix": 1708934055909 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:15.909", + "timestampUnix": 1708934055909 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:15.909", + "timestampUnix": 1708934055909 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:15.909", + "timestampUnix": 1708934055909 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:15] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:15.910", + "timestampUnix": 1708934055910 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:16.900", + "timestampUnix": 1708934056900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 24da92f4c0f79863b77cdfcf38de448e\\r\\nX-B3-SpanId: f34ed54da3fd8d39\\r\\nX-B3-ParentSpanId: b77cdfcf38de448e\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 67c58083-46a1-908d-ad03-9412257e2f11\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:16.903", + "timestampUnix": 1708934056903 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:16.903", + "timestampUnix": 1708934056903 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:16.903", + "timestampUnix": 1708934056903 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:16.903", + "timestampUnix": 1708934056903 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:16 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:16.903", + "timestampUnix": 1708934056903 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:16.903", + "timestampUnix": 1708934056903 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:16.903", + "timestampUnix": 1708934056903 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:16.903", + "timestampUnix": 1708934056903 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:16.904", + "timestampUnix": 1708934056904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 24da92f4c0f79863b77cdfcf38de448e\\r\\nX-B3-SpanId: f34ed54da3fd8d39\\r\\nX-B3-ParentSpanId: b77cdfcf38de448e\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 67c58083-46a1-908d-ad03-9412257e2f11\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:16.909", + "timestampUnix": 1708934056909 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:16.909", + "timestampUnix": 1708934056909 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:16.909", + "timestampUnix": 1708934056909 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:16.909", + "timestampUnix": 1708934056909 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:16 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:16.909", + "timestampUnix": 1708934056909 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:16.909", + "timestampUnix": 1708934056909 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:16.909", + "timestampUnix": 1708934056909 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:16.909", + "timestampUnix": 1708934056909 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:16.909", + "timestampUnix": 1708934056909 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:16.909", + "timestampUnix": 1708934056909 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:16] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:16.910", + "timestampUnix": 1708934056910 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:17.901", + "timestampUnix": 1708934057901 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: a848076196e4954fa9e9c6b4e9de932c\\r\\nX-B3-SpanId: 777b5d68ca878b88\\r\\nX-B3-ParentSpanId: a9e9c6b4e9de932c\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 088456af-cac9-9c43-a1a0-30b79244a993\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:17.903", + "timestampUnix": 1708934057903 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:17.903", + "timestampUnix": 1708934057903 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:17.903", + "timestampUnix": 1708934057903 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:17.903", + "timestampUnix": 1708934057903 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:17 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:17.903", + "timestampUnix": 1708934057903 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:17.903", + "timestampUnix": 1708934057903 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:17.903", + "timestampUnix": 1708934057903 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:17.903", + "timestampUnix": 1708934057903 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:17.905", + "timestampUnix": 1708934057905 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: a848076196e4954fa9e9c6b4e9de932c\\r\\nX-B3-SpanId: 777b5d68ca878b88\\r\\nX-B3-ParentSpanId: a9e9c6b4e9de932c\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 088456af-cac9-9c43-a1a0-30b79244a993\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:17.909", + "timestampUnix": 1708934057909 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:17.909", + "timestampUnix": 1708934057909 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:17.909", + "timestampUnix": 1708934057909 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:17.909", + "timestampUnix": 1708934057909 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:17 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:17.909", + "timestampUnix": 1708934057909 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:17.909", + "timestampUnix": 1708934057909 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:17.909", + "timestampUnix": 1708934057909 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:17.909", + "timestampUnix": 1708934057909 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:17.909", + "timestampUnix": 1708934057909 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:17.909", + "timestampUnix": 1708934057909 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:17] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:17.910", + "timestampUnix": 1708934057910 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:18.906", + "timestampUnix": 1708934058906 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 2e674b4890f1127c5c2f48044b2a2594\\r\\nX-B3-SpanId: 17b1ceae97f486e6\\r\\nX-B3-ParentSpanId: 5c2f48044b2a2594\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: f6f0206b-be41-9716-a668-2d8b739f328b\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:18.909", + "timestampUnix": 1708934058909 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:18.909", + "timestampUnix": 1708934058909 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:18.909", + "timestampUnix": 1708934058909 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:18.909", + "timestampUnix": 1708934058909 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:18 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:18.909", + "timestampUnix": 1708934058909 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:18.909", + "timestampUnix": 1708934058909 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:18.909", + "timestampUnix": 1708934058909 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:18.909", + "timestampUnix": 1708934058909 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:18.911", + "timestampUnix": 1708934058911 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 2e674b4890f1127c5c2f48044b2a2594\\r\\nX-B3-SpanId: 17b1ceae97f486e6\\r\\nX-B3-ParentSpanId: 5c2f48044b2a2594\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: f6f0206b-be41-9716-a668-2d8b739f328b\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:18.914", + "timestampUnix": 1708934058914 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:18.914", + "timestampUnix": 1708934058914 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:18.914", + "timestampUnix": 1708934058914 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:18.914", + "timestampUnix": 1708934058914 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:18 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:18.914", + "timestampUnix": 1708934058914 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:18.914", + "timestampUnix": 1708934058914 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:18.914", + "timestampUnix": 1708934058914 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:18.914", + "timestampUnix": 1708934058914 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:18.914", + "timestampUnix": 1708934058914 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:18.914", + "timestampUnix": 1708934058914 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:18] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:18.915", + "timestampUnix": 1708934058915 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:19.903", + "timestampUnix": 1708934059903 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 65f510c13dfe119b16d9b9c115fed10f\\r\\nX-B3-SpanId: d39c36a5a80f6004\\r\\nX-B3-ParentSpanId: 16d9b9c115fed10f\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 6183ecef-13c2-9205-9f65-52d7721eb4dc\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:19.909", + "timestampUnix": 1708934059909 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:19.909", + "timestampUnix": 1708934059909 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:19.909", + "timestampUnix": 1708934059909 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:19.909", + "timestampUnix": 1708934059909 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:19 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:19.909", + "timestampUnix": 1708934059909 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:19.909", + "timestampUnix": 1708934059909 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:19.909", + "timestampUnix": 1708934059909 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:19.909", + "timestampUnix": 1708934059909 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:19.914", + "timestampUnix": 1708934059914 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 65f510c13dfe119b16d9b9c115fed10f\\r\\nX-B3-SpanId: d39c36a5a80f6004\\r\\nX-B3-ParentSpanId: 16d9b9c115fed10f\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 6183ecef-13c2-9205-9f65-52d7721eb4dc\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:19.926", + "timestampUnix": 1708934059926 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:19.926", + "timestampUnix": 1708934059926 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:19.926", + "timestampUnix": 1708934059926 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:19.926", + "timestampUnix": 1708934059926 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:19 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:19.926", + "timestampUnix": 1708934059926 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:19.926", + "timestampUnix": 1708934059926 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:19.926", + "timestampUnix": 1708934059926 + }, + { + "message": "header: x-envoy-upstream-service-time: 8", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:19.926", + "timestampUnix": 1708934059926 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:19.926", + "timestampUnix": 1708934059926 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:19.926", + "timestampUnix": 1708934059926 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:19] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:19.930", + "timestampUnix": 1708934059930 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:20.908", + "timestampUnix": 1708934060908 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 6f58c1756bfc2ebfa39ff5dc4ac08d2c\\r\\nX-B3-SpanId: e54374d1731b7bbd\\r\\nX-B3-ParentSpanId: a39ff5dc4ac08d2c\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: f5388967-7ad8-9335-a3cb-063b262e4db8\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:20.911", + "timestampUnix": 1708934060911 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:20.911", + "timestampUnix": 1708934060911 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:20.911", + "timestampUnix": 1708934060911 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:20.911", + "timestampUnix": 1708934060911 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:20 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:20.911", + "timestampUnix": 1708934060911 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:20.911", + "timestampUnix": 1708934060911 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:20.911", + "timestampUnix": 1708934060911 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:20.911", + "timestampUnix": 1708934060911 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:20.913", + "timestampUnix": 1708934060913 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 6f58c1756bfc2ebfa39ff5dc4ac08d2c\\r\\nX-B3-SpanId: e54374d1731b7bbd\\r\\nX-B3-ParentSpanId: a39ff5dc4ac08d2c\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: f5388967-7ad8-9335-a3cb-063b262e4db8\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:20.917", + "timestampUnix": 1708934060917 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:20.917", + "timestampUnix": 1708934060917 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:20.917", + "timestampUnix": 1708934060917 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:20.917", + "timestampUnix": 1708934060917 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:20 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:20.917", + "timestampUnix": 1708934060917 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:20.917", + "timestampUnix": 1708934060917 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:20.917", + "timestampUnix": 1708934060917 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:20.917", + "timestampUnix": 1708934060917 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:20.917", + "timestampUnix": 1708934060917 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:20.917", + "timestampUnix": 1708934060917 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:20] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:20.918", + "timestampUnix": 1708934060918 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:21.900", + "timestampUnix": 1708934061900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: f835cea30539db6f0363967e027d3b02\\r\\nX-B3-SpanId: 3749e3fa016e97f4\\r\\nX-B3-ParentSpanId: 0363967e027d3b02\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: ada1eedc-5037-9401-80b8-3baa141c7d86\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:21.902", + "timestampUnix": 1708934061902 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:21.902", + "timestampUnix": 1708934061902 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:21.902", + "timestampUnix": 1708934061902 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:21.902", + "timestampUnix": 1708934061902 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:21 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:21.902", + "timestampUnix": 1708934061902 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:21.902", + "timestampUnix": 1708934061902 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:21.902", + "timestampUnix": 1708934061902 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:21.902", + "timestampUnix": 1708934061902 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:21.903", + "timestampUnix": 1708934061903 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: f835cea30539db6f0363967e027d3b02\\r\\nX-B3-SpanId: 3749e3fa016e97f4\\r\\nX-B3-ParentSpanId: 0363967e027d3b02\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: ada1eedc-5037-9401-80b8-3baa141c7d86\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:21.905", + "timestampUnix": 1708934061905 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:21.905", + "timestampUnix": 1708934061905 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:21.905", + "timestampUnix": 1708934061905 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:21.905", + "timestampUnix": 1708934061905 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:21 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:21.905", + "timestampUnix": 1708934061905 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:21.905", + "timestampUnix": 1708934061905 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:21.905", + "timestampUnix": 1708934061905 + }, + { + "message": "header: x-envoy-upstream-service-time: 0", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:21.905", + "timestampUnix": 1708934061905 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:21.905", + "timestampUnix": 1708934061905 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:21.905", + "timestampUnix": 1708934061905 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:21] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:21.906", + "timestampUnix": 1708934061906 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:22.907", + "timestampUnix": 1708934062907 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: ccb1076b6bfd87e0af7a82ce9c0b5880\\r\\nX-B3-SpanId: e1da23fbaae06961\\r\\nX-B3-ParentSpanId: af7a82ce9c0b5880\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: f8b9fd63-5553-9e0a-9cad-b9cb476a2040\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:22.914", + "timestampUnix": 1708934062914 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:22.914", + "timestampUnix": 1708934062914 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:22.914", + "timestampUnix": 1708934062914 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:22.914", + "timestampUnix": 1708934062914 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:22 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:22.915", + "timestampUnix": 1708934062915 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:22.915", + "timestampUnix": 1708934062915 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:22.915", + "timestampUnix": 1708934062915 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:22.915", + "timestampUnix": 1708934062915 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:22.920", + "timestampUnix": 1708934062920 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: ccb1076b6bfd87e0af7a82ce9c0b5880\\r\\nX-B3-SpanId: e1da23fbaae06961\\r\\nX-B3-ParentSpanId: af7a82ce9c0b5880\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: f8b9fd63-5553-9e0a-9cad-b9cb476a2040\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:22.931", + "timestampUnix": 1708934062931 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:22.931", + "timestampUnix": 1708934062931 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:22.931", + "timestampUnix": 1708934062931 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:22.931", + "timestampUnix": 1708934062931 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:22 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:22.931", + "timestampUnix": 1708934062931 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:22.931", + "timestampUnix": 1708934062931 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:22.931", + "timestampUnix": 1708934062931 + }, + { + "message": "header: x-envoy-upstream-service-time: 8", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:22.931", + "timestampUnix": 1708934062931 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:22.931", + "timestampUnix": 1708934062931 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:22.931", + "timestampUnix": 1708934062931 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:22] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:22.932", + "timestampUnix": 1708934062932 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.1 - - [26/Feb/2024 07:54:22] \"GET /metrics HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:22.984", + "timestampUnix": 1708934062984 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:23.900", + "timestampUnix": 1708934063900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: dfd15d38ec4b1b2b1416a7fa1e6d5de7\\r\\nX-B3-SpanId: 6b3e2c0d4093c81d\\r\\nX-B3-ParentSpanId: 1416a7fa1e6d5de7\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: a18bf8f3-7ea4-9221-a200-391cc8290488\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:23.903", + "timestampUnix": 1708934063903 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:23.903", + "timestampUnix": 1708934063903 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:23.903", + "timestampUnix": 1708934063903 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:23.903", + "timestampUnix": 1708934063903 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:23 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:23.903", + "timestampUnix": 1708934063903 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:23.903", + "timestampUnix": 1708934063903 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:23.903", + "timestampUnix": 1708934063903 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:23.903", + "timestampUnix": 1708934063903 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:23.904", + "timestampUnix": 1708934063904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: dfd15d38ec4b1b2b1416a7fa1e6d5de7\\r\\nX-B3-SpanId: 6b3e2c0d4093c81d\\r\\nX-B3-ParentSpanId: 1416a7fa1e6d5de7\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: a18bf8f3-7ea4-9221-a200-391cc8290488\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:23.906", + "timestampUnix": 1708934063906 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:23.906", + "timestampUnix": 1708934063906 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:23.906", + "timestampUnix": 1708934063906 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:23.906", + "timestampUnix": 1708934063906 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:23 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:23.906", + "timestampUnix": 1708934063906 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:23.906", + "timestampUnix": 1708934063906 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:23.906", + "timestampUnix": 1708934063906 + }, + { + "message": "header: x-envoy-upstream-service-time: 0", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:23.906", + "timestampUnix": 1708934063906 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:23.906", + "timestampUnix": 1708934063906 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:23.906", + "timestampUnix": 1708934063906 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:23] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:23.907", + "timestampUnix": 1708934063907 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:24.900", + "timestampUnix": 1708934064900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 5615419b1d639c3ae5a504e039341bd9\\r\\nX-B3-SpanId: bcb666a913244817\\r\\nX-B3-ParentSpanId: e5a504e039341bd9\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 4d4b0f6b-466a-9a21-9306-02ebdb4ba708\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:24.903", + "timestampUnix": 1708934064903 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:24.903", + "timestampUnix": 1708934064903 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:24.903", + "timestampUnix": 1708934064903 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:24.903", + "timestampUnix": 1708934064903 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:24 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:24.903", + "timestampUnix": 1708934064903 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:24.903", + "timestampUnix": 1708934064903 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:24.903", + "timestampUnix": 1708934064903 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:24.903", + "timestampUnix": 1708934064903 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:24.904", + "timestampUnix": 1708934064904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 5615419b1d639c3ae5a504e039341bd9\\r\\nX-B3-SpanId: bcb666a913244817\\r\\nX-B3-ParentSpanId: e5a504e039341bd9\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 4d4b0f6b-466a-9a21-9306-02ebdb4ba708\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:24.908", + "timestampUnix": 1708934064908 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:24.908", + "timestampUnix": 1708934064908 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:24.908", + "timestampUnix": 1708934064908 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:24.908", + "timestampUnix": 1708934064908 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:24 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:24.908", + "timestampUnix": 1708934064908 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:24.908", + "timestampUnix": 1708934064908 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:24.908", + "timestampUnix": 1708934064908 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:24.908", + "timestampUnix": 1708934064908 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:24.908", + "timestampUnix": 1708934064908 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:24.908", + "timestampUnix": 1708934064908 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:24] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:24.909", + "timestampUnix": 1708934064909 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:25.900", + "timestampUnix": 1708934065900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: a41363cfb228485461413339239aae07\\r\\nX-B3-SpanId: 44a997b8008bb412\\r\\nX-B3-ParentSpanId: 61413339239aae07\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 54b490e8-e813-9094-9b10-5dcd7667e9ec\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:25.903", + "timestampUnix": 1708934065903 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:25.903", + "timestampUnix": 1708934065903 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:25.903", + "timestampUnix": 1708934065903 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:25.903", + "timestampUnix": 1708934065903 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:25 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:25.903", + "timestampUnix": 1708934065903 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:25.903", + "timestampUnix": 1708934065903 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:25.903", + "timestampUnix": 1708934065903 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:25.903", + "timestampUnix": 1708934065903 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:25.904", + "timestampUnix": 1708934065904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: a41363cfb228485461413339239aae07\\r\\nX-B3-SpanId: 44a997b8008bb412\\r\\nX-B3-ParentSpanId: 61413339239aae07\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 54b490e8-e813-9094-9b10-5dcd7667e9ec\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:25.906", + "timestampUnix": 1708934065906 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:25.906", + "timestampUnix": 1708934065906 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:25.906", + "timestampUnix": 1708934065906 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:25.906", + "timestampUnix": 1708934065906 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:25 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:25.906", + "timestampUnix": 1708934065906 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:25.906", + "timestampUnix": 1708934065906 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:25.906", + "timestampUnix": 1708934065906 + }, + { + "message": "header: x-envoy-upstream-service-time: 0", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:25.906", + "timestampUnix": 1708934065906 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:25.906", + "timestampUnix": 1708934065906 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:25.906", + "timestampUnix": 1708934065906 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:25] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:25.907", + "timestampUnix": 1708934065907 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:26.900", + "timestampUnix": 1708934066900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: f9d6a37ae02f97752d40aa472f52f8ac\\r\\nX-B3-SpanId: c49e4657694908b8\\r\\nX-B3-ParentSpanId: 2d40aa472f52f8ac\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 73eda33a-efa9-9571-afdf-d6d64d9ee03a\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:26.902", + "timestampUnix": 1708934066902 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:26.902", + "timestampUnix": 1708934066902 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:26.902", + "timestampUnix": 1708934066902 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:26.902", + "timestampUnix": 1708934066902 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:26 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:26.902", + "timestampUnix": 1708934066902 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:26.902", + "timestampUnix": 1708934066902 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:26.902", + "timestampUnix": 1708934066902 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:26.902", + "timestampUnix": 1708934066902 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:26.904", + "timestampUnix": 1708934066904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: f9d6a37ae02f97752d40aa472f52f8ac\\r\\nX-B3-SpanId: c49e4657694908b8\\r\\nX-B3-ParentSpanId: 2d40aa472f52f8ac\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 73eda33a-efa9-9571-afdf-d6d64d9ee03a\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:26.905", + "timestampUnix": 1708934066905 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:26.905", + "timestampUnix": 1708934066905 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:26.905", + "timestampUnix": 1708934066905 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:26.905", + "timestampUnix": 1708934066905 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:25 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:26.905", + "timestampUnix": 1708934066905 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:26.905", + "timestampUnix": 1708934066905 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:26.905", + "timestampUnix": 1708934066905 + }, + { + "message": "header: x-envoy-upstream-service-time: 0", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:26.905", + "timestampUnix": 1708934066905 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:26.905", + "timestampUnix": 1708934066905 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:26.905", + "timestampUnix": 1708934066905 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:26] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:26.906", + "timestampUnix": 1708934066906 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:27.900", + "timestampUnix": 1708934067900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 92336a597aff8e3bf290efd2ac7e04ff\\r\\nX-B3-SpanId: d922e9d2b60ff81e\\r\\nX-B3-ParentSpanId: f290efd2ac7e04ff\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: cb7ac49b-2e09-9ef7-aa66-aba4c6d3e98a\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:27.902", + "timestampUnix": 1708934067902 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:27.902", + "timestampUnix": 1708934067902 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:27.902", + "timestampUnix": 1708934067902 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:27.902", + "timestampUnix": 1708934067902 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:27 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:27.902", + "timestampUnix": 1708934067902 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:27.902", + "timestampUnix": 1708934067902 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:27.902", + "timestampUnix": 1708934067902 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:27.902", + "timestampUnix": 1708934067902 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:27.904", + "timestampUnix": 1708934067904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 92336a597aff8e3bf290efd2ac7e04ff\\r\\nX-B3-SpanId: d922e9d2b60ff81e\\r\\nX-B3-ParentSpanId: f290efd2ac7e04ff\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: cb7ac49b-2e09-9ef7-aa66-aba4c6d3e98a\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:27.907", + "timestampUnix": 1708934067907 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:27.907", + "timestampUnix": 1708934067907 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:27.907", + "timestampUnix": 1708934067907 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:27.907", + "timestampUnix": 1708934067907 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:27 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:27.907", + "timestampUnix": 1708934067907 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:27.907", + "timestampUnix": 1708934067907 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:27.907", + "timestampUnix": 1708934067907 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:27.907", + "timestampUnix": 1708934067907 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:27.907", + "timestampUnix": 1708934067907 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:27.907", + "timestampUnix": 1708934067907 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:27] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:27.908", + "timestampUnix": 1708934067908 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:28.900", + "timestampUnix": 1708934068900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 504fb14bfb2975e2770636e13708943d\\r\\nX-B3-SpanId: ee4c7e5f2b736aab\\r\\nX-B3-ParentSpanId: 770636e13708943d\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: b5ec0d2c-f087-945a-a6c7-a2e36517b06d\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:28.903", + "timestampUnix": 1708934068903 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:28.903", + "timestampUnix": 1708934068903 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:28.903", + "timestampUnix": 1708934068903 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:28.903", + "timestampUnix": 1708934068903 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:28 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:28.903", + "timestampUnix": 1708934068903 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:28.903", + "timestampUnix": 1708934068903 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:28.903", + "timestampUnix": 1708934068903 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:28.903", + "timestampUnix": 1708934068903 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:28.904", + "timestampUnix": 1708934068904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 504fb14bfb2975e2770636e13708943d\\r\\nX-B3-SpanId: ee4c7e5f2b736aab\\r\\nX-B3-ParentSpanId: 770636e13708943d\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: b5ec0d2c-f087-945a-a6c7-a2e36517b06d\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:28.906", + "timestampUnix": 1708934068906 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:28.906", + "timestampUnix": 1708934068906 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:28.906", + "timestampUnix": 1708934068906 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:28.906", + "timestampUnix": 1708934068906 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:28 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:28.906", + "timestampUnix": 1708934068906 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:28.906", + "timestampUnix": 1708934068906 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:28.906", + "timestampUnix": 1708934068906 + }, + { + "message": "header: x-envoy-upstream-service-time: 0", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:28.906", + "timestampUnix": 1708934068906 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:28.906", + "timestampUnix": 1708934068906 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:28.906", + "timestampUnix": 1708934068906 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:28] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:28.906", + "timestampUnix": 1708934068906 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:29.900", + "timestampUnix": 1708934069900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 7e9e877abe9d4b59b0bb50b78481e086\\r\\nX-B3-SpanId: b0024f987c569de5\\r\\nX-B3-ParentSpanId: b0bb50b78481e086\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: c9a3a5b1-73df-9d55-adbf-246aef0503ad\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:29.903", + "timestampUnix": 1708934069903 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:29.903", + "timestampUnix": 1708934069903 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:29.903", + "timestampUnix": 1708934069903 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:29.903", + "timestampUnix": 1708934069903 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:29 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:29.903", + "timestampUnix": 1708934069903 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:29.903", + "timestampUnix": 1708934069903 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:29.903", + "timestampUnix": 1708934069903 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:29.903", + "timestampUnix": 1708934069903 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:29.904", + "timestampUnix": 1708934069904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 7e9e877abe9d4b59b0bb50b78481e086\\r\\nX-B3-SpanId: b0024f987c569de5\\r\\nX-B3-ParentSpanId: b0bb50b78481e086\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: c9a3a5b1-73df-9d55-adbf-246aef0503ad\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:29.909", + "timestampUnix": 1708934069909 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:29.909", + "timestampUnix": 1708934069909 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:29.909", + "timestampUnix": 1708934069909 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:29.909", + "timestampUnix": 1708934069909 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:29 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:29.909", + "timestampUnix": 1708934069909 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:29.909", + "timestampUnix": 1708934069909 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:29.909", + "timestampUnix": 1708934069909 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:29.909", + "timestampUnix": 1708934069909 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:29.909", + "timestampUnix": 1708934069909 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:29.909", + "timestampUnix": 1708934069909 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:29] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:29.911", + "timestampUnix": 1708934069911 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:30.904", + "timestampUnix": 1708934070904 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: be31c6798b68a6e040461ec4f25ccff5\\r\\nX-B3-SpanId: 14a599a736241495\\r\\nX-B3-ParentSpanId: 40461ec4f25ccff5\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: dba4b638-1679-98a4-a259-b743746a06a4\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:30.908", + "timestampUnix": 1708934070908 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:30.908", + "timestampUnix": 1708934070908 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:30.908", + "timestampUnix": 1708934070908 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:30.908", + "timestampUnix": 1708934070908 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:30 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:30.908", + "timestampUnix": 1708934070908 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:30.908", + "timestampUnix": 1708934070908 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:30.908", + "timestampUnix": 1708934070908 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:30.908", + "timestampUnix": 1708934070908 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:30.910", + "timestampUnix": 1708934070910 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: be31c6798b68a6e040461ec4f25ccff5\\r\\nX-B3-SpanId: 14a599a736241495\\r\\nX-B3-ParentSpanId: 40461ec4f25ccff5\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: dba4b638-1679-98a4-a259-b743746a06a4\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:30.915", + "timestampUnix": 1708934070915 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:30.915", + "timestampUnix": 1708934070915 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:30.915", + "timestampUnix": 1708934070915 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:30.915", + "timestampUnix": 1708934070915 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:30 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:30.915", + "timestampUnix": 1708934070915 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:30.915", + "timestampUnix": 1708934070915 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:30.915", + "timestampUnix": 1708934070915 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:30.915", + "timestampUnix": 1708934070915 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:30.915", + "timestampUnix": 1708934070915 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:30.915", + "timestampUnix": 1708934070915 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:30] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:30.916", + "timestampUnix": 1708934070916 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:31.902", + "timestampUnix": 1708934071902 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 9322cc69c7d4ed4507aabb50cbbd4798\\r\\nX-B3-SpanId: 942a4f45b8ff2fa4\\r\\nX-B3-ParentSpanId: 07aabb50cbbd4798\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 51c89d62-75f5-9533-8a00-4ba14c94f94a\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:31.906", + "timestampUnix": 1708934071906 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:31.906", + "timestampUnix": 1708934071906 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:31.907", + "timestampUnix": 1708934071907 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:31.907", + "timestampUnix": 1708934071907 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:31 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:31.907", + "timestampUnix": 1708934071907 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:31.907", + "timestampUnix": 1708934071907 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:31.907", + "timestampUnix": 1708934071907 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:31.907", + "timestampUnix": 1708934071907 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:31.910", + "timestampUnix": 1708934071910 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 9322cc69c7d4ed4507aabb50cbbd4798\\r\\nX-B3-SpanId: 942a4f45b8ff2fa4\\r\\nX-B3-ParentSpanId: 07aabb50cbbd4798\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 51c89d62-75f5-9533-8a00-4ba14c94f94a\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:31.913", + "timestampUnix": 1708934071913 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:31.913", + "timestampUnix": 1708934071913 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:31.913", + "timestampUnix": 1708934071913 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:31.913", + "timestampUnix": 1708934071913 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:31 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:31.913", + "timestampUnix": 1708934071913 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:31.913", + "timestampUnix": 1708934071913 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:31.913", + "timestampUnix": 1708934071913 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:31.913", + "timestampUnix": 1708934071913 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:31.914", + "timestampUnix": 1708934071914 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:31.914", + "timestampUnix": 1708934071914 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:31] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:31.914", + "timestampUnix": 1708934071914 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:32.902", + "timestampUnix": 1708934072902 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 4b673eefaaddac5fcea23e2c2452a58\\r\\nX-B3-SpanId: cfd5d2e5bfd38635\\r\\nX-B3-ParentSpanId: fcea23e2c2452a58\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 125f9aed-3f16-9b5d-ad80-1047ba58ad5a\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:32.906", + "timestampUnix": 1708934072906 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:32.907", + "timestampUnix": 1708934072907 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:32.907", + "timestampUnix": 1708934072907 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:32.907", + "timestampUnix": 1708934072907 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:32 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:32.907", + "timestampUnix": 1708934072907 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:32.907", + "timestampUnix": 1708934072907 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:32.907", + "timestampUnix": 1708934072907 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:32.907", + "timestampUnix": 1708934072907 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:32.910", + "timestampUnix": 1708934072910 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 4b673eefaaddac5fcea23e2c2452a58\\r\\nX-B3-SpanId: cfd5d2e5bfd38635\\r\\nX-B3-ParentSpanId: fcea23e2c2452a58\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 125f9aed-3f16-9b5d-ad80-1047ba58ad5a\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:32.915", + "timestampUnix": 1708934072915 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:32.915", + "timestampUnix": 1708934072915 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:32.915", + "timestampUnix": 1708934072915 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:32.915", + "timestampUnix": 1708934072915 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:31 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:32.915", + "timestampUnix": 1708934072915 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:32.915", + "timestampUnix": 1708934072915 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:32.915", + "timestampUnix": 1708934072915 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:32.915", + "timestampUnix": 1708934072915 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:32.915", + "timestampUnix": 1708934072915 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:32.915", + "timestampUnix": 1708934072915 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:32] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:32.917", + "timestampUnix": 1708934072917 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:33.906", + "timestampUnix": 1708934073906 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 67f0c28ba116019f73db339cbaac8d85\\r\\nX-B3-SpanId: 62f8e5a4d84e0b3c\\r\\nX-B3-ParentSpanId: 73db339cbaac8d85\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: c668eade-62f7-9bc9-9171-f0c81165fab2\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:33.909", + "timestampUnix": 1708934073909 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:33.909", + "timestampUnix": 1708934073909 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:33.909", + "timestampUnix": 1708934073909 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:33.909", + "timestampUnix": 1708934073909 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:33 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:33.909", + "timestampUnix": 1708934073909 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:33.909", + "timestampUnix": 1708934073909 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:33.909", + "timestampUnix": 1708934073909 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:33.909", + "timestampUnix": 1708934073909 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:33.911", + "timestampUnix": 1708934073911 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 67f0c28ba116019f73db339cbaac8d85\\r\\nX-B3-SpanId: 62f8e5a4d84e0b3c\\r\\nX-B3-ParentSpanId: 73db339cbaac8d85\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: c668eade-62f7-9bc9-9171-f0c81165fab2\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:33.916", + "timestampUnix": 1708934073916 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:33.916", + "timestampUnix": 1708934073916 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:33.916", + "timestampUnix": 1708934073916 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:33.916", + "timestampUnix": 1708934073916 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:33 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:33.916", + "timestampUnix": 1708934073916 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:33.916", + "timestampUnix": 1708934073916 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:33.917", + "timestampUnix": 1708934073917 + }, + { + "message": "header: x-envoy-upstream-service-time: 4", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:33.917", + "timestampUnix": 1708934073917 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:33.917", + "timestampUnix": 1708934073917 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:33.917", + "timestampUnix": 1708934073917 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:33] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:33.918", + "timestampUnix": 1708934073918 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:34.907", + "timestampUnix": 1708934074907 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 3b24bb4935202f314ad6cfc9aea9809e\\r\\nX-B3-SpanId: d10295ee6e258d07\\r\\nX-B3-ParentSpanId: 4ad6cfc9aea9809e\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: cf0ccbc5-d3eb-9bf3-8111-08ef7c792497\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:34.914", + "timestampUnix": 1708934074914 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:34.914", + "timestampUnix": 1708934074914 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:34.914", + "timestampUnix": 1708934074914 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:34.914", + "timestampUnix": 1708934074914 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:34 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:34.914", + "timestampUnix": 1708934074914 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:34.914", + "timestampUnix": 1708934074914 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:34.914", + "timestampUnix": 1708934074914 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:34.914", + "timestampUnix": 1708934074914 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:34.920", + "timestampUnix": 1708934074920 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 3b24bb4935202f314ad6cfc9aea9809e\\r\\nX-B3-SpanId: d10295ee6e258d07\\r\\nX-B3-ParentSpanId: 4ad6cfc9aea9809e\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: cf0ccbc5-d3eb-9bf3-8111-08ef7c792497\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:34.933", + "timestampUnix": 1708934074933 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:34.933", + "timestampUnix": 1708934074933 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:34.933", + "timestampUnix": 1708934074933 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:34.933", + "timestampUnix": 1708934074933 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:34 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:34.933", + "timestampUnix": 1708934074933 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:34.933", + "timestampUnix": 1708934074933 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:34.933", + "timestampUnix": 1708934074933 + }, + { + "message": "header: x-envoy-upstream-service-time: 8", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:34.933", + "timestampUnix": 1708934074933 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:34.933", + "timestampUnix": 1708934074933 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:34.933", + "timestampUnix": 1708934074933 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:34] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:34.935", + "timestampUnix": 1708934074935 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:35.907", + "timestampUnix": 1708934075907 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 9dea317ad42a933d97809ca9e60fa5ae\\r\\nX-B3-SpanId: 82f6ad7d919e4844\\r\\nX-B3-ParentSpanId: 97809ca9e60fa5ae\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: aa858f93-3b1f-97a9-af81-9c6a74261dcd\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:35.915", + "timestampUnix": 1708934075915 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:35.915", + "timestampUnix": 1708934075915 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:35.915", + "timestampUnix": 1708934075915 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:35.915", + "timestampUnix": 1708934075915 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:35 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:35.915", + "timestampUnix": 1708934075915 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:35.915", + "timestampUnix": 1708934075915 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:35.915", + "timestampUnix": 1708934075915 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:35.915", + "timestampUnix": 1708934075915 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:35.920", + "timestampUnix": 1708934075920 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 9dea317ad42a933d97809ca9e60fa5ae\\r\\nX-B3-SpanId: 82f6ad7d919e4844\\r\\nX-B3-ParentSpanId: 97809ca9e60fa5ae\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: aa858f93-3b1f-97a9-af81-9c6a74261dcd\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:35.934", + "timestampUnix": 1708934075934 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:35.934", + "timestampUnix": 1708934075934 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:35.934", + "timestampUnix": 1708934075934 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:35.934", + "timestampUnix": 1708934075934 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:34 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:35.934", + "timestampUnix": 1708934075934 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:35.934", + "timestampUnix": 1708934075934 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:35.934", + "timestampUnix": 1708934075934 + }, + { + "message": "header: x-envoy-upstream-service-time: 9", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:35.934", + "timestampUnix": 1708934075934 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:35.934", + "timestampUnix": 1708934075934 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:35.934", + "timestampUnix": 1708934075934 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:35] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:35.937", + "timestampUnix": 1708934075937 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:36.907", + "timestampUnix": 1708934076907 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: bf2d5caac96ec2cc690ef7ce3e1a2e95\\r\\nX-B3-SpanId: 18e1ba447608f2d2\\r\\nX-B3-ParentSpanId: 690ef7ce3e1a2e95\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 67b6f5f3-f329-9af5-bbbc-e21376934fb7\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:36.914", + "timestampUnix": 1708934076914 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:36.914", + "timestampUnix": 1708934076914 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:36.914", + "timestampUnix": 1708934076914 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:36.914", + "timestampUnix": 1708934076914 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:36 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:36.914", + "timestampUnix": 1708934076914 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:36.914", + "timestampUnix": 1708934076914 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:36.914", + "timestampUnix": 1708934076914 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:36.914", + "timestampUnix": 1708934076914 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:36.920", + "timestampUnix": 1708934076920 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: bf2d5caac96ec2cc690ef7ce3e1a2e95\\r\\nX-B3-SpanId: 18e1ba447608f2d2\\r\\nX-B3-ParentSpanId: 690ef7ce3e1a2e95\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 67b6f5f3-f329-9af5-bbbc-e21376934fb7\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:36.932", + "timestampUnix": 1708934076932 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:36.932", + "timestampUnix": 1708934076932 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:36.932", + "timestampUnix": 1708934076932 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:36.932", + "timestampUnix": 1708934076932 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:36 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:36.932", + "timestampUnix": 1708934076932 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:36.932", + "timestampUnix": 1708934076932 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:36.932", + "timestampUnix": 1708934076932 + }, + { + "message": "header: x-envoy-upstream-service-time: 8", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:36.932", + "timestampUnix": 1708934076932 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:36.932", + "timestampUnix": 1708934076932 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:36.932", + "timestampUnix": 1708934076932 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:36] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:36.935", + "timestampUnix": 1708934076935 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:37.907", + "timestampUnix": 1708934077907 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 368631c550a3637cc9cc2ef3582711a2\\r\\nX-B3-SpanId: ae2cf5fc69462918\\r\\nX-B3-ParentSpanId: c9cc2ef3582711a2\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: a53de773-7422-9470-8e4d-e256ca1db7ee\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:37.915", + "timestampUnix": 1708934077915 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:37.915", + "timestampUnix": 1708934077915 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:37.915", + "timestampUnix": 1708934077915 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:37.915", + "timestampUnix": 1708934077915 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:37 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:37.915", + "timestampUnix": 1708934077915 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:37.915", + "timestampUnix": 1708934077915 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:37.915", + "timestampUnix": 1708934077915 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:37.915", + "timestampUnix": 1708934077915 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:37.921", + "timestampUnix": 1708934077921 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 368631c550a3637cc9cc2ef3582711a2\\r\\nX-B3-SpanId: ae2cf5fc69462918\\r\\nX-B3-ParentSpanId: c9cc2ef3582711a2\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: a53de773-7422-9470-8e4d-e256ca1db7ee\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:37.928", + "timestampUnix": 1708934077928 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:37.928", + "timestampUnix": 1708934077928 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:37.928", + "timestampUnix": 1708934077928 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:37.928", + "timestampUnix": 1708934077928 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:37 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:37.928", + "timestampUnix": 1708934077928 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:37.928", + "timestampUnix": 1708934077928 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:37.928", + "timestampUnix": 1708934077928 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:37.928", + "timestampUnix": 1708934077928 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:37.928", + "timestampUnix": 1708934077928 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:37.928", + "timestampUnix": 1708934077928 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:37] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:37.931", + "timestampUnix": 1708934077931 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.1 - - [26/Feb/2024 07:54:37] \"GET /metrics HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:37.992", + "timestampUnix": 1708934077992 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:38.902", + "timestampUnix": 1708934078902 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 63781df7da80c12a5d81d49da63e83d4\\r\\nX-B3-SpanId: 837751072c11e68c\\r\\nX-B3-ParentSpanId: 5d81d49da63e83d4\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 87e712d8-b081-9ece-8a18-01a2c19e2fc1\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:38.907", + "timestampUnix": 1708934078907 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:38.907", + "timestampUnix": 1708934078907 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:38.907", + "timestampUnix": 1708934078907 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:38.907", + "timestampUnix": 1708934078907 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:38 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:38.907", + "timestampUnix": 1708934078907 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:38.907", + "timestampUnix": 1708934078907 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:38.907", + "timestampUnix": 1708934078907 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:38.907", + "timestampUnix": 1708934078907 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:38.910", + "timestampUnix": 1708934078910 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 63781df7da80c12a5d81d49da63e83d4\\r\\nX-B3-SpanId: 837751072c11e68c\\r\\nX-B3-ParentSpanId: 5d81d49da63e83d4\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 87e712d8-b081-9ece-8a18-01a2c19e2fc1\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:38.913", + "timestampUnix": 1708934078913 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:38.913", + "timestampUnix": 1708934078913 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:38.913", + "timestampUnix": 1708934078913 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:38.914", + "timestampUnix": 1708934078914 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:38 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:38.914", + "timestampUnix": 1708934078914 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:38.914", + "timestampUnix": 1708934078914 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:38.914", + "timestampUnix": 1708934078914 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:38.914", + "timestampUnix": 1708934078914 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:38.914", + "timestampUnix": 1708934078914 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:38.914", + "timestampUnix": 1708934078914 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:38] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:38.914", + "timestampUnix": 1708934078914 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:39.900", + "timestampUnix": 1708934079900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 211662d6d8a0c004801a86cac9976720\\r\\nX-B3-SpanId: 3d0450eb9bb03aac\\r\\nX-B3-ParentSpanId: 801a86cac9976720\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 8b30f4e9-0149-9755-87d0-a43546821b92\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:39.903", + "timestampUnix": 1708934079903 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:39.903", + "timestampUnix": 1708934079903 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:39.903", + "timestampUnix": 1708934079903 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:39.903", + "timestampUnix": 1708934079903 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:39 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:39.903", + "timestampUnix": 1708934079903 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:39.903", + "timestampUnix": 1708934079903 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:39.903", + "timestampUnix": 1708934079903 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:39.903", + "timestampUnix": 1708934079903 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:39.904", + "timestampUnix": 1708934079904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 211662d6d8a0c004801a86cac9976720\\r\\nX-B3-SpanId: 3d0450eb9bb03aac\\r\\nX-B3-ParentSpanId: 801a86cac9976720\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 8b30f4e9-0149-9755-87d0-a43546821b92\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:39.908", + "timestampUnix": 1708934079908 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:39.908", + "timestampUnix": 1708934079908 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:39.908", + "timestampUnix": 1708934079908 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:39.908", + "timestampUnix": 1708934079908 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:38 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:39.908", + "timestampUnix": 1708934079908 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:39.908", + "timestampUnix": 1708934079908 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:39.908", + "timestampUnix": 1708934079908 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:39.908", + "timestampUnix": 1708934079908 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:39.908", + "timestampUnix": 1708934079908 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:39.908", + "timestampUnix": 1708934079908 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:39] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:39.909", + "timestampUnix": 1708934079909 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:40.906", + "timestampUnix": 1708934080906 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 2c4cfeee60ef9e88c4fb3ab856d9257f\\r\\nX-B3-SpanId: 9900a04a77b60565\\r\\nX-B3-ParentSpanId: c4fb3ab856d9257f\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 1c1806d2-f455-9165-bca4-f2e740f567e6\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:40.910", + "timestampUnix": 1708934080910 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:40.910", + "timestampUnix": 1708934080910 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:40.910", + "timestampUnix": 1708934080910 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:40.910", + "timestampUnix": 1708934080910 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:40 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:40.910", + "timestampUnix": 1708934080910 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:40.910", + "timestampUnix": 1708934080910 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:40.910", + "timestampUnix": 1708934080910 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:40.910", + "timestampUnix": 1708934080910 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:40.912", + "timestampUnix": 1708934080912 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 2c4cfeee60ef9e88c4fb3ab856d9257f\\r\\nX-B3-SpanId: 9900a04a77b60565\\r\\nX-B3-ParentSpanId: c4fb3ab856d9257f\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 1c1806d2-f455-9165-bca4-f2e740f567e6\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:40.917", + "timestampUnix": 1708934080917 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:40.917", + "timestampUnix": 1708934080917 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:40.917", + "timestampUnix": 1708934080917 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:40.917", + "timestampUnix": 1708934080917 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:40 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:40.917", + "timestampUnix": 1708934080917 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:40.917", + "timestampUnix": 1708934080917 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:40.917", + "timestampUnix": 1708934080917 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:40.917", + "timestampUnix": 1708934080917 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:40.917", + "timestampUnix": 1708934080917 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:40.917", + "timestampUnix": 1708934080917 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:40] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:40.918", + "timestampUnix": 1708934080918 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:41.900", + "timestampUnix": 1708934081900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 7985a915733620e2fc7f2655d19fa02\\r\\nX-B3-SpanId: 1bf1d27e6fa87610\\r\\nX-B3-ParentSpanId: 2fc7f2655d19fa02\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: a80a6daa-524d-90e6-bdf1-a181748830df\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:41.902", + "timestampUnix": 1708934081902 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:41.902", + "timestampUnix": 1708934081902 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:41.902", + "timestampUnix": 1708934081902 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:41.902", + "timestampUnix": 1708934081902 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:41 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:41.902", + "timestampUnix": 1708934081902 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:41.902", + "timestampUnix": 1708934081902 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:41.902", + "timestampUnix": 1708934081902 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:41.902", + "timestampUnix": 1708934081902 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:41.904", + "timestampUnix": 1708934081904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 7985a915733620e2fc7f2655d19fa02\\r\\nX-B3-SpanId: 1bf1d27e6fa87610\\r\\nX-B3-ParentSpanId: 2fc7f2655d19fa02\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: a80a6daa-524d-90e6-bdf1-a181748830df\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:41.907", + "timestampUnix": 1708934081907 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:41.907", + "timestampUnix": 1708934081907 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:41.907", + "timestampUnix": 1708934081907 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:41.907", + "timestampUnix": 1708934081907 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:40 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:41.907", + "timestampUnix": 1708934081907 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:41.907", + "timestampUnix": 1708934081907 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:41.907", + "timestampUnix": 1708934081907 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:41.907", + "timestampUnix": 1708934081907 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:41.907", + "timestampUnix": 1708934081907 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:41.907", + "timestampUnix": 1708934081907 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:41] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:41.908", + "timestampUnix": 1708934081908 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:42.900", + "timestampUnix": 1708934082900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 18203dfddec72bf2689c11409904591f\\r\\nX-B3-SpanId: 1d6bb7da92932325\\r\\nX-B3-ParentSpanId: 689c11409904591f\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 321d3422-0aa4-9a06-8db5-6a4aa37901c9\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:42.902", + "timestampUnix": 1708934082902 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:42.902", + "timestampUnix": 1708934082902 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:42.902", + "timestampUnix": 1708934082902 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:42.902", + "timestampUnix": 1708934082902 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:42 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:42.902", + "timestampUnix": 1708934082902 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:42.902", + "timestampUnix": 1708934082902 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:42.902", + "timestampUnix": 1708934082902 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:42.902", + "timestampUnix": 1708934082902 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:42.904", + "timestampUnix": 1708934082904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 18203dfddec72bf2689c11409904591f\\r\\nX-B3-SpanId: 1d6bb7da92932325\\r\\nX-B3-ParentSpanId: 689c11409904591f\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 321d3422-0aa4-9a06-8db5-6a4aa37901c9\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:42.906", + "timestampUnix": 1708934082906 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:42.906", + "timestampUnix": 1708934082906 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:42.906", + "timestampUnix": 1708934082906 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:42.906", + "timestampUnix": 1708934082906 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:42 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:42.906", + "timestampUnix": 1708934082906 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:42.906", + "timestampUnix": 1708934082906 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:42.906", + "timestampUnix": 1708934082906 + }, + { + "message": "header: x-envoy-upstream-service-time: 0", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:42.906", + "timestampUnix": 1708934082906 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:42.906", + "timestampUnix": 1708934082906 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:42.906", + "timestampUnix": 1708934082906 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:42] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:42.907", + "timestampUnix": 1708934082907 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:43.900", + "timestampUnix": 1708934083900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 596bc37210e1bf73c6aa813d849278b0\\r\\nX-B3-SpanId: b2f7bab495a58781\\r\\nX-B3-ParentSpanId: c6aa813d849278b0\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 26e1dc68-8d54-9cc7-beb4-8e7d8c8e9a23\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:43.902", + "timestampUnix": 1708934083902 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:43.902", + "timestampUnix": 1708934083902 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:43.902", + "timestampUnix": 1708934083902 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:43.902", + "timestampUnix": 1708934083902 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:43 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:43.902", + "timestampUnix": 1708934083902 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:43.902", + "timestampUnix": 1708934083902 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:43.902", + "timestampUnix": 1708934083902 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:43.902", + "timestampUnix": 1708934083902 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:43.904", + "timestampUnix": 1708934083904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 596bc37210e1bf73c6aa813d849278b0\\r\\nX-B3-SpanId: b2f7bab495a58781\\r\\nX-B3-ParentSpanId: c6aa813d849278b0\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 26e1dc68-8d54-9cc7-beb4-8e7d8c8e9a23\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:43.908", + "timestampUnix": 1708934083908 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:43.908", + "timestampUnix": 1708934083908 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:43.908", + "timestampUnix": 1708934083908 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:43.908", + "timestampUnix": 1708934083908 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:43 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:43.908", + "timestampUnix": 1708934083908 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:43.908", + "timestampUnix": 1708934083908 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:43.908", + "timestampUnix": 1708934083908 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:43.908", + "timestampUnix": 1708934083908 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:43.908", + "timestampUnix": 1708934083908 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:43.908", + "timestampUnix": 1708934083908 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:43] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:43.909", + "timestampUnix": 1708934083909 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:44.907", + "timestampUnix": 1708934084907 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: e36b6f748e44da28033d9321da888046\\r\\nX-B3-SpanId: 4ed3730dbd878934\\r\\nX-B3-ParentSpanId: 033d9321da888046\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 56dce819-1f94-92a8-989c-3315f971b4d7\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:44.915", + "timestampUnix": 1708934084915 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:44.915", + "timestampUnix": 1708934084915 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:44.915", + "timestampUnix": 1708934084915 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:44.915", + "timestampUnix": 1708934084915 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:44 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:44.915", + "timestampUnix": 1708934084915 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:44.915", + "timestampUnix": 1708934084915 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:44.915", + "timestampUnix": 1708934084915 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:44.915", + "timestampUnix": 1708934084915 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:44.922", + "timestampUnix": 1708934084922 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: e36b6f748e44da28033d9321da888046\\r\\nX-B3-SpanId: 4ed3730dbd878934\\r\\nX-B3-ParentSpanId: 033d9321da888046\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 56dce819-1f94-92a8-989c-3315f971b4d7\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:44.927", + "timestampUnix": 1708934084927 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:44.927", + "timestampUnix": 1708934084927 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:44.927", + "timestampUnix": 1708934084927 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:44.927", + "timestampUnix": 1708934084927 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:44 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:44.927", + "timestampUnix": 1708934084927 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:44.927", + "timestampUnix": 1708934084927 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:44.927", + "timestampUnix": 1708934084927 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:44.927", + "timestampUnix": 1708934084927 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:44.927", + "timestampUnix": 1708934084927 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:44.927", + "timestampUnix": 1708934084927 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:44] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:44.927", + "timestampUnix": 1708934084927 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:45.906", + "timestampUnix": 1708934085906 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 233a71d529438bfa85c540b3d16f00e9\\r\\nX-B3-SpanId: df2196a2acad4c21\\r\\nX-B3-ParentSpanId: 85c540b3d16f00e9\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: c6bd373c-4fe0-9cce-b0c3-7102252f5e37\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:45.908", + "timestampUnix": 1708934085908 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:45.908", + "timestampUnix": 1708934085908 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:45.908", + "timestampUnix": 1708934085908 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:45.908", + "timestampUnix": 1708934085908 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:45 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:45.908", + "timestampUnix": 1708934085908 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:45.908", + "timestampUnix": 1708934085908 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:45.908", + "timestampUnix": 1708934085908 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:45.908", + "timestampUnix": 1708934085908 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:45.910", + "timestampUnix": 1708934085910 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 233a71d529438bfa85c540b3d16f00e9\\r\\nX-B3-SpanId: df2196a2acad4c21\\r\\nX-B3-ParentSpanId: 85c540b3d16f00e9\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: c6bd373c-4fe0-9cce-b0c3-7102252f5e37\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:45.915", + "timestampUnix": 1708934085915 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:45.915", + "timestampUnix": 1708934085915 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:45.915", + "timestampUnix": 1708934085915 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:45.915", + "timestampUnix": 1708934085915 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:44 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:45.915", + "timestampUnix": 1708934085915 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:45.915", + "timestampUnix": 1708934085915 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:45.915", + "timestampUnix": 1708934085915 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:45.915", + "timestampUnix": 1708934085915 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:45.915", + "timestampUnix": 1708934085915 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:45.915", + "timestampUnix": 1708934085915 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:45] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:45.916", + "timestampUnix": 1708934085916 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:46.903", + "timestampUnix": 1708934086903 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: d67da21b1b3b362b69ec886017660b40\\r\\nX-B3-SpanId: ff4d0bf77479beac\\r\\nX-B3-ParentSpanId: 69ec886017660b40\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 7ab30f22-f278-9909-9228-ab825021ff52\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:46.907", + "timestampUnix": 1708934086907 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:46.907", + "timestampUnix": 1708934086907 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:46.907", + "timestampUnix": 1708934086907 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:46.907", + "timestampUnix": 1708934086907 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:46 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:46.907", + "timestampUnix": 1708934086907 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:46.907", + "timestampUnix": 1708934086907 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:46.907", + "timestampUnix": 1708934086907 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:46.907", + "timestampUnix": 1708934086907 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:46.910", + "timestampUnix": 1708934086910 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: d67da21b1b3b362b69ec886017660b40\\r\\nX-B3-SpanId: ff4d0bf77479beac\\r\\nX-B3-ParentSpanId: 69ec886017660b40\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 7ab30f22-f278-9909-9228-ab825021ff52\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:46.916", + "timestampUnix": 1708934086916 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:46.916", + "timestampUnix": 1708934086916 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:46.916", + "timestampUnix": 1708934086916 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:46.916", + "timestampUnix": 1708934086916 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:46 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:46.916", + "timestampUnix": 1708934086916 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:46.916", + "timestampUnix": 1708934086916 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:46.916", + "timestampUnix": 1708934086916 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:46.916", + "timestampUnix": 1708934086916 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:46.916", + "timestampUnix": 1708934086916 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:46.916", + "timestampUnix": 1708934086916 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:46] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:46.919", + "timestampUnix": 1708934086919 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:47.900", + "timestampUnix": 1708934087900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 7d00d83c46c405c9fdca3e94abd09b80\\r\\nX-B3-SpanId: 1b45750f13d7412b\\r\\nX-B3-ParentSpanId: fdca3e94abd09b80\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: c7a4163c-73d6-9529-92e1-216201c0e70b\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:47.902", + "timestampUnix": 1708934087902 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:47.902", + "timestampUnix": 1708934087902 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:47.902", + "timestampUnix": 1708934087902 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:47.902", + "timestampUnix": 1708934087902 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:47 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:47.902", + "timestampUnix": 1708934087902 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:47.902", + "timestampUnix": 1708934087902 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:47.902", + "timestampUnix": 1708934087902 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:47.902", + "timestampUnix": 1708934087902 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:47.904", + "timestampUnix": 1708934087904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 7d00d83c46c405c9fdca3e94abd09b80\\r\\nX-B3-SpanId: 1b45750f13d7412b\\r\\nX-B3-ParentSpanId: fdca3e94abd09b80\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: c7a4163c-73d6-9529-92e1-216201c0e70b\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:47.908", + "timestampUnix": 1708934087908 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:47.908", + "timestampUnix": 1708934087908 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:47.908", + "timestampUnix": 1708934087908 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:47.908", + "timestampUnix": 1708934087908 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:47 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:47.908", + "timestampUnix": 1708934087908 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:47.908", + "timestampUnix": 1708934087908 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:47.908", + "timestampUnix": 1708934087908 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:47.908", + "timestampUnix": 1708934087908 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:47.908", + "timestampUnix": 1708934087908 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:47.908", + "timestampUnix": 1708934087908 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:47] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:47.909", + "timestampUnix": 1708934087909 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:48.907", + "timestampUnix": 1708934088907 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 3a932a224d27b3156ae6151a3b21b436\\r\\nX-B3-SpanId: fe9ade6e03e3ab3c\\r\\nX-B3-ParentSpanId: 6ae6151a3b21b436\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 37c66060-a013-9e12-8dd3-b41fe8964ffb\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:48.915", + "timestampUnix": 1708934088915 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:48.915", + "timestampUnix": 1708934088915 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:48.915", + "timestampUnix": 1708934088915 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:48.915", + "timestampUnix": 1708934088915 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:48 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:48.915", + "timestampUnix": 1708934088915 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:48.915", + "timestampUnix": 1708934088915 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:48.915", + "timestampUnix": 1708934088915 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:48.915", + "timestampUnix": 1708934088915 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:48.920", + "timestampUnix": 1708934088920 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 3a932a224d27b3156ae6151a3b21b436\\r\\nX-B3-SpanId: fe9ade6e03e3ab3c\\r\\nX-B3-ParentSpanId: 6ae6151a3b21b436\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 37c66060-a013-9e12-8dd3-b41fe8964ffb\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:48.926", + "timestampUnix": 1708934088926 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:48.926", + "timestampUnix": 1708934088926 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:48.926", + "timestampUnix": 1708934088926 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:48.926", + "timestampUnix": 1708934088926 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:48 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:48.926", + "timestampUnix": 1708934088926 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:48.926", + "timestampUnix": 1708934088926 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:48.926", + "timestampUnix": 1708934088926 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:48.926", + "timestampUnix": 1708934088926 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:48.926", + "timestampUnix": 1708934088926 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:48.926", + "timestampUnix": 1708934088926 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:48] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:48.927", + "timestampUnix": 1708934088927 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:49.907", + "timestampUnix": 1708934089907 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: dc990014a577481764dac83f7ac8c345\\r\\nX-B3-SpanId: c3a2e5a1e0f8a187\\r\\nX-B3-ParentSpanId: 64dac83f7ac8c345\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: dba42f68-b2b4-93f4-991f-e71e4b086fc7\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:49.914", + "timestampUnix": 1708934089914 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:49.914", + "timestampUnix": 1708934089914 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:49.914", + "timestampUnix": 1708934089914 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:49.914", + "timestampUnix": 1708934089914 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:49 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:49.914", + "timestampUnix": 1708934089914 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:49.914", + "timestampUnix": 1708934089914 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:49.914", + "timestampUnix": 1708934089914 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:49.914", + "timestampUnix": 1708934089914 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:49.919", + "timestampUnix": 1708934089919 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: dc990014a577481764dac83f7ac8c345\\r\\nX-B3-SpanId: c3a2e5a1e0f8a187\\r\\nX-B3-ParentSpanId: 64dac83f7ac8c345\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: dba42f68-b2b4-93f4-991f-e71e4b086fc7\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:49.924", + "timestampUnix": 1708934089924 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:49.924", + "timestampUnix": 1708934089924 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:49.924", + "timestampUnix": 1708934089924 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:49.924", + "timestampUnix": 1708934089924 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:49 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:49.924", + "timestampUnix": 1708934089924 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:49.924", + "timestampUnix": 1708934089924 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:49.924", + "timestampUnix": 1708934089924 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:49.924", + "timestampUnix": 1708934089924 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:49.924", + "timestampUnix": 1708934089924 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:49.924", + "timestampUnix": 1708934089924 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:49] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:49.925", + "timestampUnix": 1708934089925 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:50.907", + "timestampUnix": 1708934090907 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: bc157436ef9ace709d9008aaa8746edd\\r\\nX-B3-SpanId: b7db75206d6f2d75\\r\\nX-B3-ParentSpanId: 9d9008aaa8746edd\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: bb7dd724-b247-960a-ad48-074a302f7ff9\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:50.910", + "timestampUnix": 1708934090910 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:50.910", + "timestampUnix": 1708934090910 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:50.910", + "timestampUnix": 1708934090910 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:50.910", + "timestampUnix": 1708934090910 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:50 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:50.910", + "timestampUnix": 1708934090910 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:50.911", + "timestampUnix": 1708934090911 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:50.911", + "timestampUnix": 1708934090911 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:50.911", + "timestampUnix": 1708934090911 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:50.912", + "timestampUnix": 1708934090912 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: bc157436ef9ace709d9008aaa8746edd\\r\\nX-B3-SpanId: b7db75206d6f2d75\\r\\nX-B3-ParentSpanId: 9d9008aaa8746edd\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: bb7dd724-b247-960a-ad48-074a302f7ff9\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:50.914", + "timestampUnix": 1708934090914 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:50.914", + "timestampUnix": 1708934090914 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:50.914", + "timestampUnix": 1708934090914 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:50.914", + "timestampUnix": 1708934090914 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:50 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:50.914", + "timestampUnix": 1708934090914 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:50.914", + "timestampUnix": 1708934090914 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:50.914", + "timestampUnix": 1708934090914 + }, + { + "message": "header: x-envoy-upstream-service-time: 0", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:50.914", + "timestampUnix": 1708934090914 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:50.914", + "timestampUnix": 1708934090914 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:50.914", + "timestampUnix": 1708934090914 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:50] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:50.915", + "timestampUnix": 1708934090915 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:51.900", + "timestampUnix": 1708934091900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 7885a5f5830c65ff47295891062dc400\\r\\nX-B3-SpanId: de738abb2e50bc5e\\r\\nX-B3-ParentSpanId: 47295891062dc400\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 1c39849c-a10c-9504-94c3-2952506a5c42\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:51.902", + "timestampUnix": 1708934091902 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:51.902", + "timestampUnix": 1708934091902 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:51.902", + "timestampUnix": 1708934091902 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:51.902", + "timestampUnix": 1708934091902 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:51 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:51.902", + "timestampUnix": 1708934091902 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:51.902", + "timestampUnix": 1708934091902 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:51.902", + "timestampUnix": 1708934091902 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:51.902", + "timestampUnix": 1708934091902 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:51.903", + "timestampUnix": 1708934091903 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 7885a5f5830c65ff47295891062dc400\\r\\nX-B3-SpanId: de738abb2e50bc5e\\r\\nX-B3-ParentSpanId: 47295891062dc400\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 1c39849c-a10c-9504-94c3-2952506a5c42\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:51.905", + "timestampUnix": 1708934091905 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:51.905", + "timestampUnix": 1708934091905 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:51.905", + "timestampUnix": 1708934091905 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:51.905", + "timestampUnix": 1708934091905 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:50 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:51.905", + "timestampUnix": 1708934091905 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:51.905", + "timestampUnix": 1708934091905 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:51.905", + "timestampUnix": 1708934091905 + }, + { + "message": "header: x-envoy-upstream-service-time: 0", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:51.905", + "timestampUnix": 1708934091905 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:51.905", + "timestampUnix": 1708934091905 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:51.905", + "timestampUnix": 1708934091905 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:51] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:51.906", + "timestampUnix": 1708934091906 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:52.900", + "timestampUnix": 1708934092900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: a65f13e86e5bdbb87c77637386fa3c39\\r\\nX-B3-SpanId: fdba6348a4f608ff\\r\\nX-B3-ParentSpanId: 7c77637386fa3c39\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: f9b98b9d-fd8b-9f59-93f8-18ae54587679\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:52.903", + "timestampUnix": 1708934092903 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:52.903", + "timestampUnix": 1708934092903 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:52.903", + "timestampUnix": 1708934092903 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:52.903", + "timestampUnix": 1708934092903 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:52 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:52.903", + "timestampUnix": 1708934092903 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:52.903", + "timestampUnix": 1708934092903 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:52.903", + "timestampUnix": 1708934092903 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:52.903", + "timestampUnix": 1708934092903 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:52.904", + "timestampUnix": 1708934092904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: a65f13e86e5bdbb87c77637386fa3c39\\r\\nX-B3-SpanId: fdba6348a4f608ff\\r\\nX-B3-ParentSpanId: 7c77637386fa3c39\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: f9b98b9d-fd8b-9f59-93f8-18ae54587679\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:52.906", + "timestampUnix": 1708934092906 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:52.906", + "timestampUnix": 1708934092906 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:52.906", + "timestampUnix": 1708934092906 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:52.906", + "timestampUnix": 1708934092906 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:52 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:52.906", + "timestampUnix": 1708934092906 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:52.906", + "timestampUnix": 1708934092906 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:52.906", + "timestampUnix": 1708934092906 + }, + { + "message": "header: x-envoy-upstream-service-time: 0", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:52.906", + "timestampUnix": 1708934092906 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:52.906", + "timestampUnix": 1708934092906 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:52.906", + "timestampUnix": 1708934092906 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:52] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:52.907", + "timestampUnix": 1708934092907 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.1 - - [26/Feb/2024 07:54:52] \"GET /metrics HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:52.982", + "timestampUnix": 1708934092982 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:53.900", + "timestampUnix": 1708934093900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 268ef305188eca50050c2390e4f7c791\\r\\nX-B3-SpanId: c39c0b250f79f3ba\\r\\nX-B3-ParentSpanId: 050c2390e4f7c791\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 0c5e1b6f-a0c4-96ce-a6af-feaccca52090\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:53.903", + "timestampUnix": 1708934093903 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:53.903", + "timestampUnix": 1708934093903 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:53.903", + "timestampUnix": 1708934093903 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:53.903", + "timestampUnix": 1708934093903 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:53 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:53.903", + "timestampUnix": 1708934093903 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:53.903", + "timestampUnix": 1708934093903 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:53.903", + "timestampUnix": 1708934093903 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:53.903", + "timestampUnix": 1708934093903 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:53.905", + "timestampUnix": 1708934093905 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 268ef305188eca50050c2390e4f7c791\\r\\nX-B3-SpanId: c39c0b250f79f3ba\\r\\nX-B3-ParentSpanId: 050c2390e4f7c791\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 0c5e1b6f-a0c4-96ce-a6af-feaccca52090\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:53.909", + "timestampUnix": 1708934093909 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:53.909", + "timestampUnix": 1708934093909 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:53.909", + "timestampUnix": 1708934093909 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:53.909", + "timestampUnix": 1708934093909 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:53 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:53.909", + "timestampUnix": 1708934093909 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:53.909", + "timestampUnix": 1708934093909 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:53.909", + "timestampUnix": 1708934093909 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:53.909", + "timestampUnix": 1708934093909 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:53.909", + "timestampUnix": 1708934093909 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:53.909", + "timestampUnix": 1708934093909 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:53] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:53.910", + "timestampUnix": 1708934093910 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:54.901", + "timestampUnix": 1708934094901 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 1251421b910d13d838ffcff2b52cf51d\\r\\nX-B3-SpanId: 7f031ff1b81e722c\\r\\nX-B3-ParentSpanId: 38ffcff2b52cf51d\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 7061eba9-b890-9d84-8ca8-a687333728b5\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:54.903", + "timestampUnix": 1708934094903 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:54.903", + "timestampUnix": 1708934094903 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:54.903", + "timestampUnix": 1708934094903 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:54.903", + "timestampUnix": 1708934094903 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:54 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:54.903", + "timestampUnix": 1708934094903 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:54.903", + "timestampUnix": 1708934094903 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:54.903", + "timestampUnix": 1708934094903 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:54.903", + "timestampUnix": 1708934094903 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:54.905", + "timestampUnix": 1708934094905 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 1251421b910d13d838ffcff2b52cf51d\\r\\nX-B3-SpanId: 7f031ff1b81e722c\\r\\nX-B3-ParentSpanId: 38ffcff2b52cf51d\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 7061eba9-b890-9d84-8ca8-a687333728b5\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:54.909", + "timestampUnix": 1708934094909 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:54.909", + "timestampUnix": 1708934094909 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:54.909", + "timestampUnix": 1708934094909 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:54.909", + "timestampUnix": 1708934094909 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:54 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:54.909", + "timestampUnix": 1708934094909 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:54.909", + "timestampUnix": 1708934094909 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:54.909", + "timestampUnix": 1708934094909 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:54.909", + "timestampUnix": 1708934094909 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:54.909", + "timestampUnix": 1708934094909 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:54.909", + "timestampUnix": 1708934094909 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:54] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:54.910", + "timestampUnix": 1708934094910 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:55.907", + "timestampUnix": 1708934095907 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 2e7d2366c6ac9b0b44e7fbd5d44326d4\\r\\nX-B3-SpanId: 62f168995c298f05\\r\\nX-B3-ParentSpanId: 44e7fbd5d44326d4\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 1c344ad9-f46c-9c5d-afef-2b92c97cdc7a\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:55.917", + "timestampUnix": 1708934095917 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:55.917", + "timestampUnix": 1708934095917 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:55.917", + "timestampUnix": 1708934095917 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:55.917", + "timestampUnix": 1708934095917 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:55 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:55.917", + "timestampUnix": 1708934095917 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:55.917", + "timestampUnix": 1708934095917 + }, + { + "message": "header: x-envoy-upstream-service-time: 5", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:55.917", + "timestampUnix": 1708934095917 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:55.917", + "timestampUnix": 1708934095917 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:55.923", + "timestampUnix": 1708934095923 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 2e7d2366c6ac9b0b44e7fbd5d44326d4\\r\\nX-B3-SpanId: 62f168995c298f05\\r\\nX-B3-ParentSpanId: 44e7fbd5d44326d4\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 1c344ad9-f46c-9c5d-afef-2b92c97cdc7a\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:55.930", + "timestampUnix": 1708934095930 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:55.930", + "timestampUnix": 1708934095930 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:55.930", + "timestampUnix": 1708934095930 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:55.930", + "timestampUnix": 1708934095930 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:55 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:55.930", + "timestampUnix": 1708934095930 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:55.930", + "timestampUnix": 1708934095930 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:55.930", + "timestampUnix": 1708934095930 + }, + { + "message": "header: x-envoy-upstream-service-time: 4", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:55.930", + "timestampUnix": 1708934095930 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:55.930", + "timestampUnix": 1708934095930 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:55.930", + "timestampUnix": 1708934095930 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:55] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:55.931", + "timestampUnix": 1708934095931 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:56.900", + "timestampUnix": 1708934096900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 7ede05cf43abbb872dccca110c4c0aab\\r\\nX-B3-SpanId: 48370c933463d02b\\r\\nX-B3-ParentSpanId: 2dccca110c4c0aab\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: abba82a6-360d-9754-84ed-34d4ec98b282\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:56.903", + "timestampUnix": 1708934096903 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:56.903", + "timestampUnix": 1708934096903 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:56.903", + "timestampUnix": 1708934096903 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:56.903", + "timestampUnix": 1708934096903 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:56 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:56.903", + "timestampUnix": 1708934096903 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:56.903", + "timestampUnix": 1708934096903 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:56.903", + "timestampUnix": 1708934096903 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:56.903", + "timestampUnix": 1708934096903 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:56.904", + "timestampUnix": 1708934096904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 7ede05cf43abbb872dccca110c4c0aab\\r\\nX-B3-SpanId: 48370c933463d02b\\r\\nX-B3-ParentSpanId: 2dccca110c4c0aab\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: abba82a6-360d-9754-84ed-34d4ec98b282\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:56.908", + "timestampUnix": 1708934096908 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:56.908", + "timestampUnix": 1708934096908 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:56.908", + "timestampUnix": 1708934096908 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:56.908", + "timestampUnix": 1708934096908 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:55 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:56.908", + "timestampUnix": 1708934096908 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:56.908", + "timestampUnix": 1708934096908 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:56.908", + "timestampUnix": 1708934096908 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:56.908", + "timestampUnix": 1708934096908 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:56.908", + "timestampUnix": 1708934096908 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:56.908", + "timestampUnix": 1708934096908 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:56] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:56.909", + "timestampUnix": 1708934096909 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:57.900", + "timestampUnix": 1708934097900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 45c4907c00e1e56217861a90b9a7caa8\\r\\nX-B3-SpanId: e5643dd933db0afd\\r\\nX-B3-ParentSpanId: 17861a90b9a7caa8\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 86c69917-0718-913b-b214-78296f28e625\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:57.902", + "timestampUnix": 1708934097902 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:57.902", + "timestampUnix": 1708934097902 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:57.902", + "timestampUnix": 1708934097902 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:57.902", + "timestampUnix": 1708934097902 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:57 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:57.902", + "timestampUnix": 1708934097902 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:57.902", + "timestampUnix": 1708934097902 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:57.902", + "timestampUnix": 1708934097902 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:57.902", + "timestampUnix": 1708934097902 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:57.904", + "timestampUnix": 1708934097904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 45c4907c00e1e56217861a90b9a7caa8\\r\\nX-B3-SpanId: e5643dd933db0afd\\r\\nX-B3-ParentSpanId: 17861a90b9a7caa8\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 86c69917-0718-913b-b214-78296f28e625\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:57.906", + "timestampUnix": 1708934097906 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:57.906", + "timestampUnix": 1708934097906 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:57.906", + "timestampUnix": 1708934097906 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:57.906", + "timestampUnix": 1708934097906 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:57 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:57.906", + "timestampUnix": 1708934097906 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:57.906", + "timestampUnix": 1708934097906 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:57.906", + "timestampUnix": 1708934097906 + }, + { + "message": "header: x-envoy-upstream-service-time: 0", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:57.906", + "timestampUnix": 1708934097906 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:57.906", + "timestampUnix": 1708934097906 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:57.906", + "timestampUnix": 1708934097906 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:57] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:57.907", + "timestampUnix": 1708934097907 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:58.900", + "timestampUnix": 1708934098900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 58b41ee958ccbf9069b4e693c863e8d1\\r\\nX-B3-SpanId: e4e60106a869d2d3\\r\\nX-B3-ParentSpanId: 69b4e693c863e8d1\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: d349eb2f-8a72-910d-8cb0-2cca31a6df8d\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:58.903", + "timestampUnix": 1708934098903 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:58.903", + "timestampUnix": 1708934098903 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:58.903", + "timestampUnix": 1708934098903 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:58.903", + "timestampUnix": 1708934098903 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:58 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:58.903", + "timestampUnix": 1708934098903 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:58.903", + "timestampUnix": 1708934098903 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:58.903", + "timestampUnix": 1708934098903 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:58.903", + "timestampUnix": 1708934098903 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:58.904", + "timestampUnix": 1708934098904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 58b41ee958ccbf9069b4e693c863e8d1\\r\\nX-B3-SpanId: e4e60106a869d2d3\\r\\nX-B3-ParentSpanId: 69b4e693c863e8d1\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: d349eb2f-8a72-910d-8cb0-2cca31a6df8d\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:58.908", + "timestampUnix": 1708934098908 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:58.908", + "timestampUnix": 1708934098908 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:58.908", + "timestampUnix": 1708934098908 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:58.908", + "timestampUnix": 1708934098908 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:58 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:58.908", + "timestampUnix": 1708934098908 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:58.908", + "timestampUnix": 1708934098908 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:58.908", + "timestampUnix": 1708934098908 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:58.908", + "timestampUnix": 1708934098908 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:58.908", + "timestampUnix": 1708934098908 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:58.908", + "timestampUnix": 1708934098908 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:58] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:58.909", + "timestampUnix": 1708934098909 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:59.908", + "timestampUnix": 1708934099908 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: a73ac51cc3e531b603a69c2b7bf21849\\r\\nX-B3-SpanId: 56a473a5d1bfd4e9\\r\\nX-B3-ParentSpanId: 03a69c2b7bf21849\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 68c04835-67fa-94cb-97dc-48066d7db2cc\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:59.915", + "timestampUnix": 1708934099915 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:59.915", + "timestampUnix": 1708934099915 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:59.915", + "timestampUnix": 1708934099915 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:59.915", + "timestampUnix": 1708934099915 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:59 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:59.915", + "timestampUnix": 1708934099915 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:59.915", + "timestampUnix": 1708934099915 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:59.915", + "timestampUnix": 1708934099915 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:59.915", + "timestampUnix": 1708934099915 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:59.920", + "timestampUnix": 1708934099920 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: a73ac51cc3e531b603a69c2b7bf21849\\r\\nX-B3-SpanId: 56a473a5d1bfd4e9\\r\\nX-B3-ParentSpanId: 03a69c2b7bf21849\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 68c04835-67fa-94cb-97dc-48066d7db2cc\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:54:59.926", + "timestampUnix": 1708934099926 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:59.926", + "timestampUnix": 1708934099926 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:59.926", + "timestampUnix": 1708934099926 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:59.926", + "timestampUnix": 1708934099926 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:59 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:59.926", + "timestampUnix": 1708934099926 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:59.926", + "timestampUnix": 1708934099926 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:59.926", + "timestampUnix": 1708934099926 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:59.926", + "timestampUnix": 1708934099926 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:59.926", + "timestampUnix": 1708934099926 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:54:59.926", + "timestampUnix": 1708934099926 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:54:59] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:54:59.929", + "timestampUnix": 1708934099929 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:00.903", + "timestampUnix": 1708934100903 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 2426b66406fe85e541a4163074a3703b\\r\\nX-B3-SpanId: 0db2753859ae24a4\\r\\nX-B3-ParentSpanId: 41a4163074a3703b\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: f998a9cb-4d81-9b1f-8f37-7bda81e59215\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:00.911", + "timestampUnix": 1708934100911 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:00.911", + "timestampUnix": 1708934100911 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:00.911", + "timestampUnix": 1708934100911 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:00.911", + "timestampUnix": 1708934100911 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:00 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:00.911", + "timestampUnix": 1708934100911 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:00.911", + "timestampUnix": 1708934100911 + }, + { + "message": "header: x-envoy-upstream-service-time: 4", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:00.911", + "timestampUnix": 1708934100911 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:00.911", + "timestampUnix": 1708934100911 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:00.917", + "timestampUnix": 1708934100917 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 2426b66406fe85e541a4163074a3703b\\r\\nX-B3-SpanId: 0db2753859ae24a4\\r\\nX-B3-ParentSpanId: 41a4163074a3703b\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: f998a9cb-4d81-9b1f-8f37-7bda81e59215\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:00.925", + "timestampUnix": 1708934100925 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:00.925", + "timestampUnix": 1708934100925 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:00.925", + "timestampUnix": 1708934100925 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:00.925", + "timestampUnix": 1708934100925 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:54:59 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:00.925", + "timestampUnix": 1708934100925 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:00.925", + "timestampUnix": 1708934100925 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:00.925", + "timestampUnix": 1708934100925 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:00.925", + "timestampUnix": 1708934100925 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:00.925", + "timestampUnix": 1708934100925 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:00.925", + "timestampUnix": 1708934100925 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:55:00] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:00.928", + "timestampUnix": 1708934100928 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:01.902", + "timestampUnix": 1708934101902 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 90f03478080586c694b659760c3f7f9c\\r\\nX-B3-SpanId: 8773232d8eab2a95\\r\\nX-B3-ParentSpanId: 94b659760c3f7f9c\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: b361cec2-562a-9f16-a013-1d826750ca44\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:01.904", + "timestampUnix": 1708934101904 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:01.904", + "timestampUnix": 1708934101904 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:01.904", + "timestampUnix": 1708934101904 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:01.904", + "timestampUnix": 1708934101904 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:01 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:01.904", + "timestampUnix": 1708934101904 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:01.904", + "timestampUnix": 1708934101904 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:01.904", + "timestampUnix": 1708934101904 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:01.904", + "timestampUnix": 1708934101904 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:01.906", + "timestampUnix": 1708934101906 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 90f03478080586c694b659760c3f7f9c\\r\\nX-B3-SpanId: 8773232d8eab2a95\\r\\nX-B3-ParentSpanId: 94b659760c3f7f9c\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: b361cec2-562a-9f16-a013-1d826750ca44\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:01.911", + "timestampUnix": 1708934101911 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:01.911", + "timestampUnix": 1708934101911 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:01.911", + "timestampUnix": 1708934101911 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:01.911", + "timestampUnix": 1708934101911 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:01 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:01.911", + "timestampUnix": 1708934101911 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:01.911", + "timestampUnix": 1708934101911 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:01.911", + "timestampUnix": 1708934101911 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:01.911", + "timestampUnix": 1708934101911 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:01.911", + "timestampUnix": 1708934101911 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:01.911", + "timestampUnix": 1708934101911 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:55:01] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:01.912", + "timestampUnix": 1708934101912 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:02.900", + "timestampUnix": 1708934102900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 8b00c887138f7273298ec2573088e1c4\\r\\nX-B3-SpanId: f69786051652c2bc\\r\\nX-B3-ParentSpanId: 298ec2573088e1c4\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: fa427326-5151-9b02-b2cc-30930490fb83\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:02.902", + "timestampUnix": 1708934102902 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:02.902", + "timestampUnix": 1708934102902 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:02.902", + "timestampUnix": 1708934102902 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:02.902", + "timestampUnix": 1708934102902 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:02 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:02.902", + "timestampUnix": 1708934102902 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:02.902", + "timestampUnix": 1708934102902 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:02.902", + "timestampUnix": 1708934102902 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:02.902", + "timestampUnix": 1708934102902 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:02.904", + "timestampUnix": 1708934102904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 8b00c887138f7273298ec2573088e1c4\\r\\nX-B3-SpanId: f69786051652c2bc\\r\\nX-B3-ParentSpanId: 298ec2573088e1c4\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: fa427326-5151-9b02-b2cc-30930490fb83\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:02.908", + "timestampUnix": 1708934102908 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:02.908", + "timestampUnix": 1708934102908 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:02.908", + "timestampUnix": 1708934102908 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:02.908", + "timestampUnix": 1708934102908 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:01 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:02.908", + "timestampUnix": 1708934102908 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:02.908", + "timestampUnix": 1708934102908 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:02.908", + "timestampUnix": 1708934102908 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:02.908", + "timestampUnix": 1708934102908 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:02.908", + "timestampUnix": 1708934102908 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:02.908", + "timestampUnix": 1708934102908 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:55:02] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:02.909", + "timestampUnix": 1708934102909 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:03.906", + "timestampUnix": 1708934103906 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: fafde31dadb6560e5c8b6e71917eb368\\r\\nX-B3-SpanId: 75a1eeda2790f411\\r\\nX-B3-ParentSpanId: 5c8b6e71917eb368\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: a9daa48d-74e4-907a-bb78-818161293e2e\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:03.908", + "timestampUnix": 1708934103908 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:03.908", + "timestampUnix": 1708934103908 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:03.908", + "timestampUnix": 1708934103908 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:03.908", + "timestampUnix": 1708934103908 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:03 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:03.908", + "timestampUnix": 1708934103908 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:03.908", + "timestampUnix": 1708934103908 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:03.908", + "timestampUnix": 1708934103908 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:03.908", + "timestampUnix": 1708934103908 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:03.910", + "timestampUnix": 1708934103910 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: fafde31dadb6560e5c8b6e71917eb368\\r\\nX-B3-SpanId: 75a1eeda2790f411\\r\\nX-B3-ParentSpanId: 5c8b6e71917eb368\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: a9daa48d-74e4-907a-bb78-818161293e2e\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:03.912", + "timestampUnix": 1708934103912 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:03.912", + "timestampUnix": 1708934103912 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:03.912", + "timestampUnix": 1708934103912 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:03.912", + "timestampUnix": 1708934103912 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:03 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:03.912", + "timestampUnix": 1708934103912 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:03.912", + "timestampUnix": 1708934103912 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:03.912", + "timestampUnix": 1708934103912 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:03.912", + "timestampUnix": 1708934103912 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:03.912", + "timestampUnix": 1708934103912 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:03.912", + "timestampUnix": 1708934103912 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:55:03] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:03.913", + "timestampUnix": 1708934103913 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:04.907", + "timestampUnix": 1708934104907 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: d8659b58acc827c1e2d9612e844009f2\\r\\nX-B3-SpanId: 814e0902438d9967\\r\\nX-B3-ParentSpanId: e2d9612e844009f2\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 35d5df2f-c147-9504-8332-4750ad90fc52\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:04.914", + "timestampUnix": 1708934104914 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:04.915", + "timestampUnix": 1708934104915 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:04.915", + "timestampUnix": 1708934104915 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:04.915", + "timestampUnix": 1708934104915 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:04 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:04.915", + "timestampUnix": 1708934104915 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:04.915", + "timestampUnix": 1708934104915 + }, + { + "message": "header: x-envoy-upstream-service-time: 4", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:04.915", + "timestampUnix": 1708934104915 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:04.915", + "timestampUnix": 1708934104915 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:04.920", + "timestampUnix": 1708934104920 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: d8659b58acc827c1e2d9612e844009f2\\r\\nX-B3-SpanId: 814e0902438d9967\\r\\nX-B3-ParentSpanId: e2d9612e844009f2\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 35d5df2f-c147-9504-8332-4750ad90fc52\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:04.933", + "timestampUnix": 1708934104933 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:04.933", + "timestampUnix": 1708934104933 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:04.933", + "timestampUnix": 1708934104933 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:04.933", + "timestampUnix": 1708934104933 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:04 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:04.933", + "timestampUnix": 1708934104933 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:04.933", + "timestampUnix": 1708934104933 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:04.933", + "timestampUnix": 1708934104933 + }, + { + "message": "header: x-envoy-upstream-service-time: 9", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:04.933", + "timestampUnix": 1708934104933 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:04.933", + "timestampUnix": 1708934104933 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:04.933", + "timestampUnix": 1708934104933 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:55:04] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:04.937", + "timestampUnix": 1708934104937 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:05.900", + "timestampUnix": 1708934105900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 80eee6fbe7782501782db1010b9c5e2d\\r\\nX-B3-SpanId: a39b4ae162e3d9ad\\r\\nX-B3-ParentSpanId: 782db1010b9c5e2d\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 8f13bb93-0a9e-9b44-8c18-5ea53b8bf3ce\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:05.903", + "timestampUnix": 1708934105903 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:05.903", + "timestampUnix": 1708934105903 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:05.903", + "timestampUnix": 1708934105903 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:05.903", + "timestampUnix": 1708934105903 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:05 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:05.903", + "timestampUnix": 1708934105903 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:05.903", + "timestampUnix": 1708934105903 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:05.903", + "timestampUnix": 1708934105903 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:05.903", + "timestampUnix": 1708934105903 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:05.904", + "timestampUnix": 1708934105904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 80eee6fbe7782501782db1010b9c5e2d\\r\\nX-B3-SpanId: a39b4ae162e3d9ad\\r\\nX-B3-ParentSpanId: 782db1010b9c5e2d\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 8f13bb93-0a9e-9b44-8c18-5ea53b8bf3ce\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:05.909", + "timestampUnix": 1708934105909 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:05.909", + "timestampUnix": 1708934105909 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:05.909", + "timestampUnix": 1708934105909 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:05.909", + "timestampUnix": 1708934105909 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:05 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:05.909", + "timestampUnix": 1708934105909 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:05.909", + "timestampUnix": 1708934105909 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:05.909", + "timestampUnix": 1708934105909 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:05.909", + "timestampUnix": 1708934105909 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:05.909", + "timestampUnix": 1708934105909 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:05.909", + "timestampUnix": 1708934105909 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:55:05] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:05.910", + "timestampUnix": 1708934105910 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:06.903", + "timestampUnix": 1708934106903 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 677ce522bbdfc8b8b7e8c0336a35109\\r\\nX-B3-SpanId: f36a5da030454c80\\r\\nX-B3-ParentSpanId: 8b7e8c0336a35109\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 990f1f91-98fe-92eb-8986-a9bcc9c42a85\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:06.906", + "timestampUnix": 1708934106906 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:06.906", + "timestampUnix": 1708934106906 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:06.906", + "timestampUnix": 1708934106906 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:06.906", + "timestampUnix": 1708934106906 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:06 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:06.906", + "timestampUnix": 1708934106906 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:06.906", + "timestampUnix": 1708934106906 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:06.906", + "timestampUnix": 1708934106906 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:06.906", + "timestampUnix": 1708934106906 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:06.908", + "timestampUnix": 1708934106908 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 677ce522bbdfc8b8b7e8c0336a35109\\r\\nX-B3-SpanId: f36a5da030454c80\\r\\nX-B3-ParentSpanId: 8b7e8c0336a35109\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 990f1f91-98fe-92eb-8986-a9bcc9c42a85\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:06.911", + "timestampUnix": 1708934106911 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:06.911", + "timestampUnix": 1708934106911 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:06.911", + "timestampUnix": 1708934106911 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:06.911", + "timestampUnix": 1708934106911 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:06 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:06.911", + "timestampUnix": 1708934106911 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:06.911", + "timestampUnix": 1708934106911 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:06.911", + "timestampUnix": 1708934106911 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:06.911", + "timestampUnix": 1708934106911 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:06.911", + "timestampUnix": 1708934106911 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:06.911", + "timestampUnix": 1708934106911 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:55:06] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:06.912", + "timestampUnix": 1708934106912 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:07.902", + "timestampUnix": 1708934107902 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: b61ea142139e33c159ecafcade305cc7\\r\\nX-B3-SpanId: d45dcf0ce1b3f2d2\\r\\nX-B3-ParentSpanId: 59ecafcade305cc7\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 055f7072-fafd-98c7-897e-b9d3ef96d178\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:07.905", + "timestampUnix": 1708934107905 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:07.905", + "timestampUnix": 1708934107905 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:07.905", + "timestampUnix": 1708934107905 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:07.905", + "timestampUnix": 1708934107905 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:07 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:07.905", + "timestampUnix": 1708934107905 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:07.905", + "timestampUnix": 1708934107905 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:07.905", + "timestampUnix": 1708934107905 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:07.905", + "timestampUnix": 1708934107905 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:07.907", + "timestampUnix": 1708934107907 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: b61ea142139e33c159ecafcade305cc7\\r\\nX-B3-SpanId: d45dcf0ce1b3f2d2\\r\\nX-B3-ParentSpanId: 59ecafcade305cc7\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 055f7072-fafd-98c7-897e-b9d3ef96d178\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:07.911", + "timestampUnix": 1708934107911 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:07.911", + "timestampUnix": 1708934107911 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:07.911", + "timestampUnix": 1708934107911 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:07.911", + "timestampUnix": 1708934107911 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:07 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:07.911", + "timestampUnix": 1708934107911 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:07.911", + "timestampUnix": 1708934107911 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:07.911", + "timestampUnix": 1708934107911 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:07.911", + "timestampUnix": 1708934107911 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:07.911", + "timestampUnix": 1708934107911 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:07.911", + "timestampUnix": 1708934107911 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:55:07] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:07.913", + "timestampUnix": 1708934107913 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.1 - - [26/Feb/2024 07:55:07] \"GET /metrics HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:07.992", + "timestampUnix": 1708934107992 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:08.900", + "timestampUnix": 1708934108900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 1b0419b94630d3a72e4173d0e2a973a7\\r\\nX-B3-SpanId: 51de0e1b5007c110\\r\\nX-B3-ParentSpanId: 2e4173d0e2a973a7\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: fb6a93f5-d683-9d43-a045-afd531a02295\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:08.903", + "timestampUnix": 1708934108903 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:08.903", + "timestampUnix": 1708934108903 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:08.903", + "timestampUnix": 1708934108903 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:08.903", + "timestampUnix": 1708934108903 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:08 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:08.903", + "timestampUnix": 1708934108903 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:08.903", + "timestampUnix": 1708934108903 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:08.903", + "timestampUnix": 1708934108903 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:08.903", + "timestampUnix": 1708934108903 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:08.904", + "timestampUnix": 1708934108904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 1b0419b94630d3a72e4173d0e2a973a7\\r\\nX-B3-SpanId: 51de0e1b5007c110\\r\\nX-B3-ParentSpanId: 2e4173d0e2a973a7\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: fb6a93f5-d683-9d43-a045-afd531a02295\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:08.906", + "timestampUnix": 1708934108906 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:08.906", + "timestampUnix": 1708934108906 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:08.906", + "timestampUnix": 1708934108906 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:08.906", + "timestampUnix": 1708934108906 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:08 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:08.906", + "timestampUnix": 1708934108906 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:08.906", + "timestampUnix": 1708934108906 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:08.906", + "timestampUnix": 1708934108906 + }, + { + "message": "header: x-envoy-upstream-service-time: 0", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:08.906", + "timestampUnix": 1708934108906 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:08.906", + "timestampUnix": 1708934108906 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:08.906", + "timestampUnix": 1708934108906 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:55:08] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:08.907", + "timestampUnix": 1708934108907 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:09.906", + "timestampUnix": 1708934109906 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: da1597c05b04a0930d6e1d9615bef8ed\\r\\nX-B3-SpanId: e5ae76441eaf3e69\\r\\nX-B3-ParentSpanId: 0d6e1d9615bef8ed\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: d979297a-f217-917f-a7c1-4c179789a9f3\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:09.913", + "timestampUnix": 1708934109913 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:09.913", + "timestampUnix": 1708934109913 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:09.913", + "timestampUnix": 1708934109913 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:09.913", + "timestampUnix": 1708934109913 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:09 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:09.913", + "timestampUnix": 1708934109913 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:09.913", + "timestampUnix": 1708934109913 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:09.913", + "timestampUnix": 1708934109913 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:09.913", + "timestampUnix": 1708934109913 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:09.919", + "timestampUnix": 1708934109919 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: da1597c05b04a0930d6e1d9615bef8ed\\r\\nX-B3-SpanId: e5ae76441eaf3e69\\r\\nX-B3-ParentSpanId: 0d6e1d9615bef8ed\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: d979297a-f217-917f-a7c1-4c179789a9f3\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:09.931", + "timestampUnix": 1708934109931 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:09.931", + "timestampUnix": 1708934109931 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:09.931", + "timestampUnix": 1708934109931 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:09.931", + "timestampUnix": 1708934109931 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:09 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:09.931", + "timestampUnix": 1708934109931 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:09.931", + "timestampUnix": 1708934109931 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:09.931", + "timestampUnix": 1708934109931 + }, + { + "message": "header: x-envoy-upstream-service-time: 8", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:09.931", + "timestampUnix": 1708934109931 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:09.931", + "timestampUnix": 1708934109931 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:09.931", + "timestampUnix": 1708934109931 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:55:09] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:09.934", + "timestampUnix": 1708934109934 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:10.907", + "timestampUnix": 1708934110907 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: a28a8182d03fd6f7f082449914cf2eb8\\r\\nX-B3-SpanId: c2e9e6e7692833c4\\r\\nX-B3-ParentSpanId: f082449914cf2eb8\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: d60b2a5d-5139-962a-bf42-6fae04128ff3\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:10.916", + "timestampUnix": 1708934110916 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:10.916", + "timestampUnix": 1708934110916 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:10.916", + "timestampUnix": 1708934110916 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:10.916", + "timestampUnix": 1708934110916 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:10 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:10.916", + "timestampUnix": 1708934110916 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:10.917", + "timestampUnix": 1708934110917 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:10.917", + "timestampUnix": 1708934110917 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:10.917", + "timestampUnix": 1708934110917 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:10.919", + "timestampUnix": 1708934110919 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: a28a8182d03fd6f7f082449914cf2eb8\\r\\nX-B3-SpanId: c2e9e6e7692833c4\\r\\nX-B3-ParentSpanId: f082449914cf2eb8\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: d60b2a5d-5139-962a-bf42-6fae04128ff3\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:10.924", + "timestampUnix": 1708934110924 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:10.924", + "timestampUnix": 1708934110924 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:10.924", + "timestampUnix": 1708934110924 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:10.924", + "timestampUnix": 1708934110924 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:10 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:10.924", + "timestampUnix": 1708934110924 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:10.924", + "timestampUnix": 1708934110924 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:10.924", + "timestampUnix": 1708934110924 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:10.924", + "timestampUnix": 1708934110924 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:10.924", + "timestampUnix": 1708934110924 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:10.924", + "timestampUnix": 1708934110924 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:55:10] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:10.925", + "timestampUnix": 1708934110925 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:11.900", + "timestampUnix": 1708934111900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: d5c020bb496b178b41c5b4ef5bc6ecb\\r\\nX-B3-SpanId: c02393929fc169d6\\r\\nX-B3-ParentSpanId: b41c5b4ef5bc6ecb\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: ef443d76-2e1c-92a8-8c4a-ed91d8f70bb7\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:11.902", + "timestampUnix": 1708934111902 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:11.902", + "timestampUnix": 1708934111902 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:11.902", + "timestampUnix": 1708934111902 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:11.902", + "timestampUnix": 1708934111902 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:11 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:11.902", + "timestampUnix": 1708934111902 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:11.902", + "timestampUnix": 1708934111902 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:11.902", + "timestampUnix": 1708934111902 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:11.902", + "timestampUnix": 1708934111902 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:11.903", + "timestampUnix": 1708934111903 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: d5c020bb496b178b41c5b4ef5bc6ecb\\r\\nX-B3-SpanId: c02393929fc169d6\\r\\nX-B3-ParentSpanId: b41c5b4ef5bc6ecb\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: ef443d76-2e1c-92a8-8c4a-ed91d8f70bb7\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:11.905", + "timestampUnix": 1708934111905 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:11.905", + "timestampUnix": 1708934111905 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:11.905", + "timestampUnix": 1708934111905 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:11.905", + "timestampUnix": 1708934111905 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:11 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:11.905", + "timestampUnix": 1708934111905 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:11.905", + "timestampUnix": 1708934111905 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:11.905", + "timestampUnix": 1708934111905 + }, + { + "message": "header: x-envoy-upstream-service-time: 0", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:11.905", + "timestampUnix": 1708934111905 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:11.905", + "timestampUnix": 1708934111905 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:11.905", + "timestampUnix": 1708934111905 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:55:11] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:11.906", + "timestampUnix": 1708934111906 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:12.907", + "timestampUnix": 1708934112907 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: cd533df551511ab20a2b2366f1f02b61\\r\\nX-B3-SpanId: 2daf60181ad59755\\r\\nX-B3-ParentSpanId: 0a2b2366f1f02b61\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 7c44805b-94de-95f1-ae3c-691a8d18ce84\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:12.911", + "timestampUnix": 1708934112911 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:12.911", + "timestampUnix": 1708934112911 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:12.911", + "timestampUnix": 1708934112911 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:12.911", + "timestampUnix": 1708934112911 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:12 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:12.911", + "timestampUnix": 1708934112911 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:12.911", + "timestampUnix": 1708934112911 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:12.911", + "timestampUnix": 1708934112911 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:12.911", + "timestampUnix": 1708934112911 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:12.913", + "timestampUnix": 1708934112913 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: cd533df551511ab20a2b2366f1f02b61\\r\\nX-B3-SpanId: 2daf60181ad59755\\r\\nX-B3-ParentSpanId: 0a2b2366f1f02b61\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 7c44805b-94de-95f1-ae3c-691a8d18ce84\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:12.915", + "timestampUnix": 1708934112915 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:12.915", + "timestampUnix": 1708934112915 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:12.915", + "timestampUnix": 1708934112915 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:12.915", + "timestampUnix": 1708934112915 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:12 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:12.915", + "timestampUnix": 1708934112915 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:12.915", + "timestampUnix": 1708934112915 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:12.915", + "timestampUnix": 1708934112915 + }, + { + "message": "header: x-envoy-upstream-service-time: 0", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:12.915", + "timestampUnix": 1708934112915 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:12.915", + "timestampUnix": 1708934112915 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:12.915", + "timestampUnix": 1708934112915 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:55:12] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:12.916", + "timestampUnix": 1708934112916 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:13.901", + "timestampUnix": 1708934113901 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: f68543bdb220c37740ef1fa0e36e94ee\\r\\nX-B3-SpanId: 1189d30c480edf25\\r\\nX-B3-ParentSpanId: 40ef1fa0e36e94ee\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 712bd469-dfe8-9bd2-b790-32e18c0041c1\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:13.903", + "timestampUnix": 1708934113903 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:13.903", + "timestampUnix": 1708934113903 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:13.903", + "timestampUnix": 1708934113903 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:13.903", + "timestampUnix": 1708934113903 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:13 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:13.903", + "timestampUnix": 1708934113903 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:13.903", + "timestampUnix": 1708934113903 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:13.903", + "timestampUnix": 1708934113903 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:13.903", + "timestampUnix": 1708934113903 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:13.905", + "timestampUnix": 1708934113905 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: f68543bdb220c37740ef1fa0e36e94ee\\r\\nX-B3-SpanId: 1189d30c480edf25\\r\\nX-B3-ParentSpanId: 40ef1fa0e36e94ee\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 712bd469-dfe8-9bd2-b790-32e18c0041c1\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:13.909", + "timestampUnix": 1708934113909 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:13.909", + "timestampUnix": 1708934113909 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:13.909", + "timestampUnix": 1708934113909 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:13.909", + "timestampUnix": 1708934113909 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:13 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:13.909", + "timestampUnix": 1708934113909 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:13.909", + "timestampUnix": 1708934113909 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:13.909", + "timestampUnix": 1708934113909 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:13.909", + "timestampUnix": 1708934113909 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:13.909", + "timestampUnix": 1708934113909 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:13.909", + "timestampUnix": 1708934113909 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:55:13] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:13.910", + "timestampUnix": 1708934113910 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:14.907", + "timestampUnix": 1708934114907 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 874671ebec7a1ea14a7c5f1ebde87029\\r\\nX-B3-SpanId: 5b396c03b4308d69\\r\\nX-B3-ParentSpanId: 4a7c5f1ebde87029\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: f5e16ce2-00fd-9a8d-bb75-43bc7e978d9a\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:14.914", + "timestampUnix": 1708934114914 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:14.914", + "timestampUnix": 1708934114914 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:14.914", + "timestampUnix": 1708934114914 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:14.914", + "timestampUnix": 1708934114914 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:14 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:14.914", + "timestampUnix": 1708934114914 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:14.914", + "timestampUnix": 1708934114914 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:14.914", + "timestampUnix": 1708934114914 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:14.914", + "timestampUnix": 1708934114914 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:14.920", + "timestampUnix": 1708934114920 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 874671ebec7a1ea14a7c5f1ebde87029\\r\\nX-B3-SpanId: 5b396c03b4308d69\\r\\nX-B3-ParentSpanId: 4a7c5f1ebde87029\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: f5e16ce2-00fd-9a8d-bb75-43bc7e978d9a\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:14.933", + "timestampUnix": 1708934114933 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:14.933", + "timestampUnix": 1708934114933 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:14.933", + "timestampUnix": 1708934114933 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:14.933", + "timestampUnix": 1708934114933 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:14 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:14.933", + "timestampUnix": 1708934114933 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:14.933", + "timestampUnix": 1708934114933 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:14.933", + "timestampUnix": 1708934114933 + }, + { + "message": "header: x-envoy-upstream-service-time: 8", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:14.933", + "timestampUnix": 1708934114933 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:14.933", + "timestampUnix": 1708934114933 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:14.933", + "timestampUnix": 1708934114933 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:55:14] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:14.936", + "timestampUnix": 1708934114936 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:15.902", + "timestampUnix": 1708934115902 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 2ee1522a044dec7f84276b5ecf8db5cb\\r\\nX-B3-SpanId: 2495e832674777df\\r\\nX-B3-ParentSpanId: 84276b5ecf8db5cb\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: eb8dcfaa-263c-9cac-ab76-03a5e35d05cb\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:15.906", + "timestampUnix": 1708934115906 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:15.906", + "timestampUnix": 1708934115906 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:15.906", + "timestampUnix": 1708934115906 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:15.906", + "timestampUnix": 1708934115906 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:15 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:15.906", + "timestampUnix": 1708934115906 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:15.906", + "timestampUnix": 1708934115906 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:15.906", + "timestampUnix": 1708934115906 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:15.906", + "timestampUnix": 1708934115906 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:15.911", + "timestampUnix": 1708934115911 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 2ee1522a044dec7f84276b5ecf8db5cb\\r\\nX-B3-SpanId: 2495e832674777df\\r\\nX-B3-ParentSpanId: 84276b5ecf8db5cb\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: eb8dcfaa-263c-9cac-ab76-03a5e35d05cb\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:15.914", + "timestampUnix": 1708934115914 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:15.914", + "timestampUnix": 1708934115914 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:15.914", + "timestampUnix": 1708934115914 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:15.914", + "timestampUnix": 1708934115914 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:15 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:15.914", + "timestampUnix": 1708934115914 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:15.914", + "timestampUnix": 1708934115914 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:15.914", + "timestampUnix": 1708934115914 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:15.914", + "timestampUnix": 1708934115914 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:15.914", + "timestampUnix": 1708934115914 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:15.914", + "timestampUnix": 1708934115914 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:55:15] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:15.915", + "timestampUnix": 1708934115915 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:16.901", + "timestampUnix": 1708934116901 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 53d842512a3ce59f2b862041acbc1561\\r\\nX-B3-SpanId: 39cf892154a2e438\\r\\nX-B3-ParentSpanId: 2b862041acbc1561\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 51ce602e-4d3d-957b-b1e9-b1863ce7989b\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:16.903", + "timestampUnix": 1708934116903 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:16.903", + "timestampUnix": 1708934116903 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:16.903", + "timestampUnix": 1708934116903 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:16.903", + "timestampUnix": 1708934116903 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:16 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:16.903", + "timestampUnix": 1708934116903 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:16.903", + "timestampUnix": 1708934116903 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:16.903", + "timestampUnix": 1708934116903 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:16.903", + "timestampUnix": 1708934116903 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:16.905", + "timestampUnix": 1708934116905 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 53d842512a3ce59f2b862041acbc1561\\r\\nX-B3-SpanId: 39cf892154a2e438\\r\\nX-B3-ParentSpanId: 2b862041acbc1561\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 51ce602e-4d3d-957b-b1e9-b1863ce7989b\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:16.906", + "timestampUnix": 1708934116906 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:16.907", + "timestampUnix": 1708934116907 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:16.907", + "timestampUnix": 1708934116907 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:16.907", + "timestampUnix": 1708934116907 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:15 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:16.907", + "timestampUnix": 1708934116907 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:16.907", + "timestampUnix": 1708934116907 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:16.907", + "timestampUnix": 1708934116907 + }, + { + "message": "header: x-envoy-upstream-service-time: 0", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:16.907", + "timestampUnix": 1708934116907 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:16.907", + "timestampUnix": 1708934116907 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:16.907", + "timestampUnix": 1708934116907 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:55:16] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:16.907", + "timestampUnix": 1708934116907 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:17.903", + "timestampUnix": 1708934117903 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 9d940866a02b7aaae0b190b749aab3dd\\r\\nX-B3-SpanId: 83ac7435bc35bbfe\\r\\nX-B3-ParentSpanId: e0b190b749aab3dd\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 424e9ba6-8d40-99c4-a42d-91f05ea4fe2c\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:17.906", + "timestampUnix": 1708934117906 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:17.906", + "timestampUnix": 1708934117906 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:17.906", + "timestampUnix": 1708934117906 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:17.906", + "timestampUnix": 1708934117906 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:17 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:17.906", + "timestampUnix": 1708934117906 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:17.906", + "timestampUnix": 1708934117906 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:17.906", + "timestampUnix": 1708934117906 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:17.906", + "timestampUnix": 1708934117906 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:17.908", + "timestampUnix": 1708934117908 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 9d940866a02b7aaae0b190b749aab3dd\\r\\nX-B3-SpanId: 83ac7435bc35bbfe\\r\\nX-B3-ParentSpanId: e0b190b749aab3dd\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 424e9ba6-8d40-99c4-a42d-91f05ea4fe2c\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:17.912", + "timestampUnix": 1708934117912 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:17.912", + "timestampUnix": 1708934117912 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:17.912", + "timestampUnix": 1708934117912 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:17.912", + "timestampUnix": 1708934117912 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:17 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:17.912", + "timestampUnix": 1708934117912 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:17.912", + "timestampUnix": 1708934117912 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:17.912", + "timestampUnix": 1708934117912 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:17.912", + "timestampUnix": 1708934117912 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:17.912", + "timestampUnix": 1708934117912 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:17.912", + "timestampUnix": 1708934117912 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:55:17] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:17.913", + "timestampUnix": 1708934117913 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:18.906", + "timestampUnix": 1708934118906 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 85f276006f2fa4fc3b969cd970b7b9a3\\r\\nX-B3-SpanId: a94d571790c3d966\\r\\nX-B3-ParentSpanId: 3b969cd970b7b9a3\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 9e790545-f790-9142-bb81-afce783cfdf1\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:18.909", + "timestampUnix": 1708934118909 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:18.909", + "timestampUnix": 1708934118909 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:18.909", + "timestampUnix": 1708934118909 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:18.909", + "timestampUnix": 1708934118909 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:18 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:18.909", + "timestampUnix": 1708934118909 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:18.909", + "timestampUnix": 1708934118909 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:18.909", + "timestampUnix": 1708934118909 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:18.909", + "timestampUnix": 1708934118909 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:18.911", + "timestampUnix": 1708934118911 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 85f276006f2fa4fc3b969cd970b7b9a3\\r\\nX-B3-SpanId: a94d571790c3d966\\r\\nX-B3-ParentSpanId: 3b969cd970b7b9a3\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 9e790545-f790-9142-bb81-afce783cfdf1\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:18.913", + "timestampUnix": 1708934118913 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:18.913", + "timestampUnix": 1708934118913 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:18.913", + "timestampUnix": 1708934118913 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:18.913", + "timestampUnix": 1708934118913 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:18 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:18.913", + "timestampUnix": 1708934118913 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:18.913", + "timestampUnix": 1708934118913 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:18.913", + "timestampUnix": 1708934118913 + }, + { + "message": "header: x-envoy-upstream-service-time: 0", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:18.913", + "timestampUnix": 1708934118913 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:18.913", + "timestampUnix": 1708934118913 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:18.913", + "timestampUnix": 1708934118913 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:55:18] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:18.914", + "timestampUnix": 1708934118914 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:19.907", + "timestampUnix": 1708934119907 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 394291731e892b6c400cf6fa215a5144\\r\\nX-B3-SpanId: 83d7def7eae7605f\\r\\nX-B3-ParentSpanId: 400cf6fa215a5144\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: cd853d23-1c7d-99b5-a954-b1ad27bf10a5\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:19.914", + "timestampUnix": 1708934119914 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:19.914", + "timestampUnix": 1708934119914 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:19.914", + "timestampUnix": 1708934119914 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:19.914", + "timestampUnix": 1708934119914 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:19 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:19.914", + "timestampUnix": 1708934119914 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:19.914", + "timestampUnix": 1708934119914 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:19.914", + "timestampUnix": 1708934119914 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:19.914", + "timestampUnix": 1708934119914 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:19.920", + "timestampUnix": 1708934119920 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 394291731e892b6c400cf6fa215a5144\\r\\nX-B3-SpanId: 83d7def7eae7605f\\r\\nX-B3-ParentSpanId: 400cf6fa215a5144\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: cd853d23-1c7d-99b5-a954-b1ad27bf10a5\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:19.931", + "timestampUnix": 1708934119931 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:19.932", + "timestampUnix": 1708934119932 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:19.932", + "timestampUnix": 1708934119932 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:19.932", + "timestampUnix": 1708934119932 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:19 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:19.932", + "timestampUnix": 1708934119932 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:19.932", + "timestampUnix": 1708934119932 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:19.932", + "timestampUnix": 1708934119932 + }, + { + "message": "header: x-envoy-upstream-service-time: 8", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:19.932", + "timestampUnix": 1708934119932 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:19.932", + "timestampUnix": 1708934119932 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:19.932", + "timestampUnix": 1708934119932 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:55:19] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:19.935", + "timestampUnix": 1708934119935 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:20.907", + "timestampUnix": 1708934120907 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: e973f6e762dc4f7d1579d1e7dbf56c03\\r\\nX-B3-SpanId: 62f1f7a1bb12d687\\r\\nX-B3-ParentSpanId: 1579d1e7dbf56c03\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: adba79fc-9ed7-9f59-9e43-44eccff759a6\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:20.916", + "timestampUnix": 1708934120916 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:20.916", + "timestampUnix": 1708934120916 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:20.916", + "timestampUnix": 1708934120916 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:20.916", + "timestampUnix": 1708934120916 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:20 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:20.916", + "timestampUnix": 1708934120916 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:20.916", + "timestampUnix": 1708934120916 + }, + { + "message": "header: x-envoy-upstream-service-time: 5", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:20.916", + "timestampUnix": 1708934120916 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:20.916", + "timestampUnix": 1708934120916 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:20.919", + "timestampUnix": 1708934120919 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: e973f6e762dc4f7d1579d1e7dbf56c03\\r\\nX-B3-SpanId: 62f1f7a1bb12d687\\r\\nX-B3-ParentSpanId: 1579d1e7dbf56c03\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: adba79fc-9ed7-9f59-9e43-44eccff759a6\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:20.924", + "timestampUnix": 1708934120924 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:20.924", + "timestampUnix": 1708934120924 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:20.924", + "timestampUnix": 1708934120924 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:20.924", + "timestampUnix": 1708934120924 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:20 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:20.924", + "timestampUnix": 1708934120924 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:20.924", + "timestampUnix": 1708934120924 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:20.924", + "timestampUnix": 1708934120924 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:20.924", + "timestampUnix": 1708934120924 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:20.924", + "timestampUnix": 1708934120924 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:20.924", + "timestampUnix": 1708934120924 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:55:20] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:20.925", + "timestampUnix": 1708934120925 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:21.900", + "timestampUnix": 1708934121900 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: b6798dca15eb661032d1c8ce5eb75ad3\\r\\nX-B3-SpanId: 6bd07c4cda030fbf\\r\\nX-B3-ParentSpanId: 32d1c8ce5eb75ad3\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 1fc30058-55e7-9832-824b-63c80ddbce14\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:21.903", + "timestampUnix": 1708934121903 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:21.903", + "timestampUnix": 1708934121903 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:21.903", + "timestampUnix": 1708934121903 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:21.903", + "timestampUnix": 1708934121903 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:21 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:21.903", + "timestampUnix": 1708934121903 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:21.903", + "timestampUnix": 1708934121903 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:21.903", + "timestampUnix": 1708934121903 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:21.903", + "timestampUnix": 1708934121903 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:21.904", + "timestampUnix": 1708934121904 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: b6798dca15eb661032d1c8ce5eb75ad3\\r\\nX-B3-SpanId: 6bd07c4cda030fbf\\r\\nX-B3-ParentSpanId: 32d1c8ce5eb75ad3\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 1fc30058-55e7-9832-824b-63c80ddbce14\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:21.908", + "timestampUnix": 1708934121908 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:21.908", + "timestampUnix": 1708934121908 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:21.908", + "timestampUnix": 1708934121908 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:21.908", + "timestampUnix": 1708934121908 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:21 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:21.908", + "timestampUnix": 1708934121908 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:21.908", + "timestampUnix": 1708934121908 + }, + { + "message": "header: content-length: 437", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:21.908", + "timestampUnix": 1708934121908 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:21.908", + "timestampUnix": 1708934121908 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:21.908", + "timestampUnix": 1708934121908 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 437", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:21.908", + "timestampUnix": 1708934121908 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:55:21] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:21.909", + "timestampUnix": 1708934121909 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:22.902", + "timestampUnix": 1708934122902 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 92c848ae9313cff5f29c97d7ca1056b2\\r\\nX-B3-SpanId: 16ddc10921c7306d\\r\\nX-B3-ParentSpanId: f29c97d7ca1056b2\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 0a735a1a-91b3-96d5-bca4-254ac5fcc91e\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:22.904", + "timestampUnix": 1708934122904 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:22.904", + "timestampUnix": 1708934122904 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:22.904", + "timestampUnix": 1708934122904 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:22.904", + "timestampUnix": 1708934122904 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:22 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:22.904", + "timestampUnix": 1708934122904 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:22.904", + "timestampUnix": 1708934122904 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:22.904", + "timestampUnix": 1708934122904 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:22.904", + "timestampUnix": 1708934122904 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:22.906", + "timestampUnix": 1708934122906 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 92c848ae9313cff5f29c97d7ca1056b2\\r\\nX-B3-SpanId: 16ddc10921c7306d\\r\\nX-B3-ParentSpanId: f29c97d7ca1056b2\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 0a735a1a-91b3-96d5-bca4-254ac5fcc91e\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:22.908", + "timestampUnix": 1708934122908 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:22.908", + "timestampUnix": 1708934122908 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:22.908", + "timestampUnix": 1708934122908 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:22.908", + "timestampUnix": 1708934122908 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:22 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:22.908", + "timestampUnix": 1708934122908 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:22.908", + "timestampUnix": 1708934122908 + }, + { + "message": "header: content-length: 358", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:22.908", + "timestampUnix": 1708934122908 + }, + { + "message": "header: x-envoy-upstream-service-time: 0", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:22.908", + "timestampUnix": 1708934122908 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:22.908", + "timestampUnix": 1708934122908 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 358", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:22.908", + "timestampUnix": 1708934122908 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:55:22] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:22.908", + "timestampUnix": 1708934122908 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.1 - - [26/Feb/2024 07:55:22] \"GET /metrics HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:22.988", + "timestampUnix": 1708934122988 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:23.907", + "timestampUnix": 1708934123907 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: c1024e4cb11c203805c657150ca86a03\\r\\nX-B3-SpanId: 4d906ee2c97baaae\\r\\nX-B3-ParentSpanId: 05c657150ca86a03\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 8e12c832-20c4-9ac3-8fa0-b3886ae4321b\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:23.911", + "timestampUnix": 1708934123911 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:23.911", + "timestampUnix": 1708934123911 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:23.911", + "timestampUnix": 1708934123911 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:23.911", + "timestampUnix": 1708934123911 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:23 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:23.911", + "timestampUnix": 1708934123911 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:23.911", + "timestampUnix": 1708934123911 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:23.911", + "timestampUnix": 1708934123911 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:23.911", + "timestampUnix": 1708934123911 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:23.913", + "timestampUnix": 1708934123913 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: c1024e4cb11c203805c657150ca86a03\\r\\nX-B3-SpanId: 4d906ee2c97baaae\\r\\nX-B3-ParentSpanId: 05c657150ca86a03\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 8e12c832-20c4-9ac3-8fa0-b3886ae4321b\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:23.917", + "timestampUnix": 1708934123917 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:23.917", + "timestampUnix": 1708934123917 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:23.917", + "timestampUnix": 1708934123917 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:23.917", + "timestampUnix": 1708934123917 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:23 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:23.917", + "timestampUnix": 1708934123917 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:23.917", + "timestampUnix": 1708934123917 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:23.917", + "timestampUnix": 1708934123917 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:23.917", + "timestampUnix": 1708934123917 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:23.917", + "timestampUnix": 1708934123917 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:23.917", + "timestampUnix": 1708934123917 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:55:23] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:23.918", + "timestampUnix": 1708934123918 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:24.907", + "timestampUnix": 1708934124907 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: f2f1e92b2f29618f041aecfbf1835760\\r\\nX-B3-SpanId: fd2b2439c6836212\\r\\nX-B3-ParentSpanId: 041aecfbf1835760\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: b0a9468b-d1a4-9ba9-8757-bc9e140b6c48\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:24.912", + "timestampUnix": 1708934124912 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:24.912", + "timestampUnix": 1708934124912 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:24.912", + "timestampUnix": 1708934124912 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:24.912", + "timestampUnix": 1708934124912 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:24 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:24.912", + "timestampUnix": 1708934124912 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:24.912", + "timestampUnix": 1708934124912 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:24.912", + "timestampUnix": 1708934124912 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:24.912", + "timestampUnix": 1708934124912 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:24.913", + "timestampUnix": 1708934124913 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: f2f1e92b2f29618f041aecfbf1835760\\r\\nX-B3-SpanId: fd2b2439c6836212\\r\\nX-B3-ParentSpanId: 041aecfbf1835760\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: b0a9468b-d1a4-9ba9-8757-bc9e140b6c48\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:24.918", + "timestampUnix": 1708934124918 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:24.918", + "timestampUnix": 1708934124918 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:24.918", + "timestampUnix": 1708934124918 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:24.918", + "timestampUnix": 1708934124918 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:24 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:24.918", + "timestampUnix": 1708934124918 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:24.918", + "timestampUnix": 1708934124918 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:24.918", + "timestampUnix": 1708934124918 + }, + { + "message": "header: x-envoy-upstream-service-time: 2", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:24.918", + "timestampUnix": 1708934124918 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:24.918", + "timestampUnix": 1708934124918 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://reviews:9080 \"GET /reviews/0 HTTP/1.1\" 200 442", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:24.918", + "timestampUnix": 1708934124918 + }, + { + "message": "INFO:werkzeug:::ffff:127.0.0.6 - - [26/Feb/2024 07:55:24] \"GET /productpage HTTP/1.1\" 200 -", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:24.919", + "timestampUnix": 1708934124919 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): details:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:25.906", + "timestampUnix": 1708934125906 + }, + { + "message": "send: b'GET /details/0 HTTP/1.1\\r\\nHost: details:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 47a549be7bc753a4e83f0c8145b11fc\\r\\nX-B3-SpanId: d21954076ea5389b\\r\\nX-B3-ParentSpanId: 4e83f0c8145b11fc\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 9512c57c-9db7-9b7c-87c6-3c89aba0136e\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:25.908", + "timestampUnix": 1708934125908 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:25.908", + "timestampUnix": 1708934125908 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:25.908", + "timestampUnix": 1708934125908 + }, + { + "message": "header: server: envoy", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:25.908", + "timestampUnix": 1708934125908 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:25 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:25.908", + "timestampUnix": 1708934125908 + }, + { + "message": "header: content-length: 178", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:25.908", + "timestampUnix": 1708934125908 + }, + { + "message": "header: x-envoy-upstream-service-time: 1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:25.908", + "timestampUnix": 1708934125908 + }, + { + "message": "DEBUG:urllib3.connectionpool:http://details:9080 \"GET /details/0 HTTP/1.1\" 200 178", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:25.908", + "timestampUnix": 1708934125908 + }, + { + "message": "DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): reviews:9080", + "severity": "DEBUG", + "timestamp": "2024-02-26 07:55:25.910", + "timestampUnix": 1708934125910 + }, + { + "message": "send: b'GET /reviews/0 HTTP/1.1\\r\\nHost: reviews:9080\\r\\nuser-agent: Go-http-client/1.1\\r\\nAccept-Encoding: gzip, deflate\\r\\nAccept: */*\\r\\nConnection: keep-alive\\r\\nX-B3-TraceId: 47a549be7bc753a4e83f0c8145b11fc\\r\\nX-B3-SpanId: d21954076ea5389b\\r\\nX-B3-ParentSpanId: 4e83f0c8145b11fc\\r\\nX-B3-Sampled: 1\\r\\nx-request-id: 9512c57c-9db7-9b7c-87c6-3c89aba0136e\\r\\n\\r\\n'", + "severity": "TRACE", + "timestamp": "2024-02-26 07:55:25.915", + "timestampUnix": 1708934125915 + }, + { + "message": "reply: 'HTTP/1.1 200 OK\\r\\n'", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:25.915", + "timestampUnix": 1708934125915 + }, + { + "message": "header: x-powered-by: Servlet/3.1", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:25.915", + "timestampUnix": 1708934125915 + }, + { + "message": "header: content-type: application/json", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:25.915", + "timestampUnix": 1708934125915 + }, + { + "message": "header: date: Mon, 26 Feb 2024 07:55:24 GMT", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:25.915", + "timestampUnix": 1708934125915 + }, + { + "message": "header: content-language: en-US", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:25.915", + "timestampUnix": 1708934125915 + }, + { + "message": "header: content-length: 442", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:25.915", + "timestampUnix": 1708934125915 + }, + { + "message": "header: x-envoy-upstream-service-time: 3", + "severity": "INFO", + "timestamp": "2024-02-26 07:55:25.915", + "timestampUnix": 1708934125915 + } + ], + "linesTruncated": true +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/meshCanaryStatus.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/meshCanaryStatus.json new file mode 100644 index 0000000000..013e5deacf --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/meshCanaryStatus.json @@ -0,0 +1,6 @@ +{ + "currentVersion": "1.3", + "upgradeVersion": "1.4", + "migratedNamespaces": ["bookinfo"], + "pendingNamespaces": ["travel-agency"] +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/meshIstioResurceThresholds.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/meshIstioResurceThresholds.json new file mode 100644 index 0000000000..87399806fe --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/meshIstioResurceThresholds.json @@ -0,0 +1 @@ +{ "memory": 64, "cpu": 8 } diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/meshTls.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/meshTls.json new file mode 100644 index 0000000000..f2e07308dd --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/meshTls.json @@ -0,0 +1 @@ +{ "status": "MTLS_NOT_ENABLED", "autoMTLSEnabled": true, "minTLS": "N/A" } diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/namespaces.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/namespaces.json new file mode 100644 index 0000000000..a1615edc99 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/namespaces.json @@ -0,0 +1,146 @@ +[ + { + "name": "bookinfo", + "cluster": "Kubernetes", + "isAmbient": false, + "labels": { + "istio-injection": "enabled", + "kubernetes.io/metadata.name": "bookinfo", + "pod-security.kubernetes.io/audit": "privileged", + "pod-security.kubernetes.io/audit-version": "v1.24", + "pod-security.kubernetes.io/warn": "privileged", + "pod-security.kubernetes.io/warn-version": "v1.24" + }, + "annotations": { + "openshift.io/description": "", + "openshift.io/display-name": "", + "openshift.io/requester": "kubeadmin", + "openshift.io/sa.scc.mcs": "s0:c26,c10", + "openshift.io/sa.scc.supplemental-groups": "1000670000/10000", + "openshift.io/sa.scc.uid-range": "1000670000/10000" + } + }, + { + "name": "default", + "cluster": "Kubernetes", + "isAmbient": false, + "labels": { + "kubernetes.io/metadata.name": "default" + }, + "annotations": { + "openshift.io/sa.scc.mcs": "s0:c1,c0", + "openshift.io/sa.scc.supplemental-groups": "1000000000/10000", + "openshift.io/sa.scc.uid-range": "1000000000/10000" + } + }, + { + "name": "hostpath-provisioner", + "cluster": "Kubernetes", + "isAmbient": false, + "labels": { + "kubernetes.io/metadata.name": "hostpath-provisioner", + "pod-security.kubernetes.io/audit": "privileged", + "pod-security.kubernetes.io/audit-version": "v1.24", + "pod-security.kubernetes.io/warn": "privileged", + "pod-security.kubernetes.io/warn-version": "v1.24" + }, + "annotations": { + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"v1\",\"kind\":\"Namespace\",\"metadata\":{\"annotations\":{},\"name\":\"hostpath-provisioner\"}}\n", + "openshift.io/sa.scc.mcs": "s0:c25,c20", + "openshift.io/sa.scc.supplemental-groups": "1000640000/10000", + "openshift.io/sa.scc.uid-range": "1000640000/10000" + } + }, + { + "name": "istio-system", + "cluster": "Kubernetes", + "isAmbient": false, + "labels": { + "kubernetes.io/metadata.name": "istio-system", + "pod-security.kubernetes.io/audit": "privileged", + "pod-security.kubernetes.io/audit-version": "v1.24", + "pod-security.kubernetes.io/warn": "privileged", + "pod-security.kubernetes.io/warn-version": "v1.24", + "topology.istio.io/network": "" + }, + "annotations": { + "openshift.io/description": "", + "openshift.io/display-name": "", + "openshift.io/requester": "kubeadmin", + "openshift.io/sa.scc.mcs": "s0:c26,c0", + "openshift.io/sa.scc.supplemental-groups": "1000650000/10000", + "openshift.io/sa.scc.uid-range": "1000650000/10000" + } + }, + { + "name": "kiali", + "cluster": "Kubernetes", + "isAmbient": false, + "labels": { + "kubernetes.io/metadata.name": "kiali", + "pod-security.kubernetes.io/audit": "restricted", + "pod-security.kubernetes.io/audit-version": "v1.24", + "pod-security.kubernetes.io/warn": "restricted", + "pod-security.kubernetes.io/warn-version": "v1.24" + }, + "annotations": { + "openshift.io/sa.scc.mcs": "s0:c27,c4", + "openshift.io/sa.scc.supplemental-groups": "1000710000/10000", + "openshift.io/sa.scc.uid-range": "1000710000/10000" + } + }, + { + "name": "travel-agency", + "cluster": "Kubernetes", + "isAmbient": false, + "labels": { + "istio-injection": "enabled", + "kubernetes.io/metadata.name": "travel-agency", + "pod-security.kubernetes.io/audit": "privileged", + "pod-security.kubernetes.io/audit-version": "v1.24", + "pod-security.kubernetes.io/warn": "privileged", + "pod-security.kubernetes.io/warn-version": "v1.24" + }, + "annotations": { + "openshift.io/sa.scc.mcs": "s0:c27,c14", + "openshift.io/sa.scc.supplemental-groups": "1000730000/10000", + "openshift.io/sa.scc.uid-range": "1000730000/10000" + } + }, + { + "name": "travel-control", + "cluster": "Kubernetes", + "isAmbient": false, + "labels": { + "istio-injection": "enabled", + "kubernetes.io/metadata.name": "travel-control", + "pod-security.kubernetes.io/audit": "privileged", + "pod-security.kubernetes.io/audit-version": "v1.24", + "pod-security.kubernetes.io/warn": "privileged", + "pod-security.kubernetes.io/warn-version": "v1.24" + }, + "annotations": { + "openshift.io/sa.scc.mcs": "s0:c27,c24", + "openshift.io/sa.scc.supplemental-groups": "1000750000/10000", + "openshift.io/sa.scc.uid-range": "1000750000/10000" + } + }, + { + "name": "travel-portal", + "cluster": "Kubernetes", + "isAmbient": false, + "labels": { + "istio-injection": "enabled", + "kubernetes.io/metadata.name": "travel-portal", + "pod-security.kubernetes.io/audit": "privileged", + "pod-security.kubernetes.io/audit-version": "v1.24", + "pod-security.kubernetes.io/warn": "privileged", + "pod-security.kubernetes.io/warn-version": "v1.24" + }, + "annotations": { + "openshift.io/sa.scc.mcs": "s0:c27,c19", + "openshift.io/sa.scc.supplemental-groups": "1000740000/10000", + "openshift.io/sa.scc.uid-range": "1000740000/10000" + } + } +] diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/outbound_traffic_policy_mode.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/outbound_traffic_policy_mode.json new file mode 100644 index 0000000000..b6f01c27d1 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/outbound_traffic_policy_mode.json @@ -0,0 +1 @@ +{ "mode": "ALLOW_ANY" } diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/status.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/status.json new file mode 100644 index 0000000000..56bb026b74 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/status.json @@ -0,0 +1,35 @@ +{ + "status": { + "Kiali commit hash": "c17d0550cfb033900c392ff5813368c1185954f1", + "Kiali container version": "v1.74.0-SNAPSHOT", + "Kiali state": "running", + "Kiali version": "v1.74.0-SNAPSHOT", + "Mesh name": "Istio", + "Mesh version": "1.18.2" + }, + "externalServices": [ + { + "name": "Istio", + "version": "1.18.2" + }, + { + "name": "Prometheus", + "version": "2.41.0" + }, + { + "name": "Kubernetes", + "version": "v1.26.3+b404935" + }, + { + "name": "Grafana" + }, + { + "name": "Jaeger" + } + ], + "warningMessages": [], + "istioEnvironment": { + "isMaistra": false, + "istioAPIEnabled": true + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/statusError.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/statusError.json new file mode 100644 index 0000000000..0050767002 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/general/statusError.json @@ -0,0 +1,7 @@ +{ + "verify": false, + "missingAttributes": ["serviceAccountToken"], + "message": "Attribute 'serviceAccountToken' is not in the backstage configuration", + "helper": "For more information follow the steps in https://github.com/backstage/community-plugins/blob/main/workspaces/kiali/README.md", + "authData": { "strategy": "token", "sessionInfo": {} } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/index.ts b/workspaces/kiali/plugins/kiali/dev/__fixtures__/index.ts new file mode 100644 index 0000000000..d2454890e1 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/index.ts @@ -0,0 +1,399 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ + +import anonymousAuth from './general/auth_info_anonymous.json'; +import configData from './general/config.json'; +/** Metrics **/ +import crippledFeatures from './general/crippledFeatures.json'; +import grafanaInfo from './general/grafana.json'; +import bookinfoGraph from './general/graph.json'; +import istioCertsInfo from './general/istioCertsInfo.json'; +import istioConfig from './general/istioConfig.json'; +import istioContainerLogs from './general/istioLogs.json'; +import istioStatus from './general/istioStatus.json'; +import istioValidations from './general/istioValidations.json'; +import containerLogs from './general/logs.json'; +import spanLogs from './general/logSpan.json'; +import meshCanaryStatus from './general/meshCanaryStatus.json'; +import meshIstioResourceThresholds from './general/meshIstioResurceThresholds.json'; +import meshTls from './general/meshTls.json'; +import namespacesData from './general/namespaces.json'; +import outboundTrafficPolicy from './general/outbound_traffic_policy_mode.json'; +import status from './general/status.json'; +import bookinfoApps from './namespaces/bookinfo/apps.json'; +import detailsApp from './namespaces/bookinfo/apps/details.json'; +import kialiTrafficGeneratorApp from './namespaces/bookinfo/apps/kiali_traffic_generator.json'; +import productpageApp from './namespaces/bookinfo/apps/productpage.json'; +import ratingsApp from './namespaces/bookinfo/apps/ratings.json'; +import reviewsApp from './namespaces/bookinfo/apps/reviews.json'; +import bookinfoDashboard from './namespaces/bookinfo/dashboard.json'; +/** health **/ + +import bookinfoHealthApp from './namespaces/bookinfo/health/app.json'; +import bookinfoHealthService from './namespaces/bookinfo/health/service.json'; +import bookinfoHealthWorkload from './namespaces/bookinfo/health/workload.json'; +import bookinfoIstioConfig from './namespaces/bookinfo/istio_config.json'; +import bookinfoGateway from './namespaces/bookinfo/istio_configs/gateways/bookinfo-gateway.json'; +import bookinfoVirtualService from './namespaces/bookinfo/istio_configs/virtualservices/bookinfo.json'; +import bookInfoMetrics from './namespaces/bookinfo/metrics'; +import bookinfoServices from './namespaces/bookinfo/services.json'; +import detailsService from './namespaces/bookinfo/services/details.json'; +import productpageService from './namespaces/bookinfo/services/productpage.json'; +import ratingsService from './namespaces/bookinfo/services/ratings.json'; +import reviewsService from './namespaces/bookinfo/services/reviews.json'; +import bookinfoSpans from './namespaces/bookinfo/spans.json'; +/* bookinfo */ +import bookinfoTls from './namespaces/bookinfo/tls.json'; +/** Workloads **/ +import bookinfoWorkloads from './namespaces/bookinfo/workloads.json'; +import detailsWorkload from './namespaces/bookinfo/workloads/details_v1.json'; +import kialitrafficWorkload from './namespaces/bookinfo/workloads/kiali_traffic_generator.json'; +import productpagev1Workload from './namespaces/bookinfo/workloads/productpage_v1.json'; +import ratingsv1Workload from './namespaces/bookinfo/workloads/ratings_v1.json'; +import reviewsv1Workload from './namespaces/bookinfo/workloads/reviews_v1.json'; +import reviewsv2Workload from './namespaces/bookinfo/workloads/reviews_v2.json'; +import reviewsv3Workload from './namespaces/bookinfo/workloads/reviews_v3.json'; +import istioSystemApps from './namespaces/istio-system/apps.json'; +import istioegressgatewayApp from './namespaces/istio-system/apps/istio_egressgateway.json'; +import istioingressgatewayApp from './namespaces/istio-system/apps/istio_ingressgateway.json'; +import istiodApp from './namespaces/istio-system/apps/istiod.json'; +import jaegerApp from './namespaces/istio-system/apps/jaeger.json'; +import kialiApp from './namespaces/istio-system/apps/kiali.json'; +import istioDashboard from './namespaces/istio-system/dashboard.json'; +/** health **/ +import istioSystemHealthApp from './namespaces/istio-system/health/app.json'; +import istioSystemHealthService from './namespaces/istio-system/health/service.json'; +import istioSystemHealthWorkload from './namespaces/istio-system/health/workload.json'; +import istioSystemIstioConfig from './namespaces/istio-system/istio_config.json'; +import istioSystemMetrics from './namespaces/istio-system/metrics'; +import istioSystemServices from './namespaces/istio-system/services.json'; +import grafanaService from './namespaces/istio-system/services/grafana.json'; +import istioegressgatewayService from './namespaces/istio-system/services/istio_egressgateway.json'; +import istioingressgatewayService from './namespaces/istio-system/services/istio_ingressgateway.json'; +import istiodService from './namespaces/istio-system/services/istiod.json'; +import jaegerService from './namespaces/istio-system/services/jaeger_collector.json'; +import kialiService from './namespaces/istio-system/services/kiali.json'; +import prometheusService from './namespaces/istio-system/services/prometheus.json'; +import istioSpans from './namespaces/istio-system/spans.json'; +/* istio-system */ +import istioSystemTls from './namespaces/istio-system/tls.json'; +import istioSystemWorkloads from './namespaces/istio-system/workloads.json'; +import grafanaWorkload from './namespaces/istio-system/workloads/grafana.json'; +import istioegressgatewayWorkload from './namespaces/istio-system/workloads/istio_egressgateway.json'; +import istioingressgatewayWorkload from './namespaces/istio-system/workloads/istio_ingressgateway.json'; +import istiodWorkload from './namespaces/istio-system/workloads/istiod.json'; +import jaegerWorkload from './namespaces/istio-system/workloads/jaeger.json'; +import kialiWorkload from './namespaces/istio-system/workloads/kiali.json'; +import prometheusWorkload from './namespaces/istio-system/workloads/prometheus.json'; +import travelAgencyApps from './namespaces/travel-agency/apps.json'; +import carsApp from './namespaces/travel-agency/apps/cars.json'; +import discountsApp from './namespaces/travel-agency/apps/discounts.json'; +import flightsApp from './namespaces/travel-agency/apps/flights.json'; +import hotelsApp from './namespaces/travel-agency/apps/hotels.json'; +import insurancesApp from './namespaces/travel-agency/apps/insurances.json'; +import mysqldbApp from './namespaces/travel-agency/apps/mysqldb.json'; +import travelApp from './namespaces/travel-agency/apps/travels.json'; +import travelAgencyDashboard from './namespaces/travel-agency/dashboard.json'; +/** health **/ + +import travelAgencyHealthApp from './namespaces/travel-agency/health/app.json'; +import travelAgencyHealthService from './namespaces/travel-agency/health/service.json'; +import travelAgencyHealthWorkload from './namespaces/travel-agency/health/workload.json'; +import travelAgencyIstioConfig from './namespaces/travel-agency/istio_config.json'; +import travelAgencyMetrics from './namespaces/travel-agency/metrics'; +import travelAgencyServices from './namespaces/travel-agency/services.json'; +import carsService from './namespaces/travel-agency/services/cars.json'; +import discountsService from './namespaces/travel-agency/services/discounts.json'; +import flightsService from './namespaces/travel-agency/services/flights.json'; +import hotelsService from './namespaces/travel-agency/services/hotels.json'; +import insurancesService from './namespaces/travel-agency/services/insurances.json'; +import mysqldbService from './namespaces/travel-agency/services/mysqldb.json'; +import travelService from './namespaces/travel-agency/services/travels.json'; +import travelAgencySpans from './namespaces/travel-agency/spans.json'; +/* Travel agency */ +import travelAgencyTls from './namespaces/travel-agency/tls.json'; +import travelAgencyWorkloads from './namespaces/travel-agency/workloads.json'; +import carsv1Workload from './namespaces/travel-agency/workloads/cars_v1.json'; +import discountsv1Workload from './namespaces/travel-agency/workloads/discounts_v1.json'; +import flightsv1Workload from './namespaces/travel-agency/workloads/flights_v1.json'; +import hotelsv1Workload from './namespaces/travel-agency/workloads/hotels_v1.json'; +import insurancesv1Workload from './namespaces/travel-agency/workloads/insurances_v1.json'; +import mysqldbv1Workload from './namespaces/travel-agency/workloads/mysqldb_v1.json'; +import travelsv1Workload from './namespaces/travel-agency/workloads/travels_v1.json'; +import travelControlApps from './namespaces/travel-control/apps.json'; +import controlApp from './namespaces/travel-control/apps/control.json'; +import travelControlDashboard from './namespaces/travel-control/dashboard.json'; +/** health **/ + +import travelControlHealthApp from './namespaces/travel-control/health/app.json'; +import travelControlHealthService from './namespaces/travel-control/health/service.json'; +import travelControlHealthWorkload from './namespaces/travel-control/health/workload.json'; +import travelControlIstioConfig from './namespaces/travel-control/istio_config.json'; +import controlDR from './namespaces/travel-control/istio_configs/destinationrules/control.json'; +import controlGW from './namespaces/travel-control/istio_configs/gateways/control-gateway.json'; +import controlVR from './namespaces/travel-control/istio_configs/virtualservices/control.json'; +import travelControlMetrics from './namespaces/travel-control/metrics'; +import travelControlServices from './namespaces/travel-control/services.json'; +import controlService from './namespaces/travel-control/services/control.json'; +import travelControlSpans from './namespaces/travel-control/spans.json'; +/* Travel control */ +import travelControlTls from './namespaces/travel-control/tls.json'; +import travelControlWorkloads from './namespaces/travel-control/workloads.json'; +import travelControlWorkload from './namespaces/travel-control/workloads/control.json'; +import travelsApp from './namespaces/travel-portal/apps/travels.json'; +import viaggiApp from './namespaces/travel-portal/apps/viaggi.json'; +import voyagesApp from './namespaces/travel-portal/apps/voyages.json'; +import travelPortalDashboard from './namespaces/travel-portal/dashboard.json'; +/** health **/ + +import travelPortalHealthApp from './namespaces/travel-portal/health/app.json'; +import travelPortalHealthService from './namespaces/travel-portal/health/service.json'; +import travelPortalHealthWorkload from './namespaces/travel-portal/health/workload.json'; +import travelPortalIstioConfig from './namespaces/travel-portal/istio_config.json'; +import travelPortalMetrics from './namespaces/travel-portal/metrics'; +import travelPortalServices from './namespaces/travel-portal/services.json'; +import travelsService from './namespaces/travel-portal/services/travels.json'; +import viaggiService from './namespaces/travel-portal/services/viaggi.json'; +import voyagesService from './namespaces/travel-portal/services/voyages.json'; +import travelPortalSpans from './namespaces/travel-portal/spans.json'; +/* Travel portal */ +import travelPortalTls from './namespaces/travel-portal/tls.json'; +import travelPortalWorkloads from './namespaces/travel-portal/workloads.json'; +import travelPortalApps from './namespaces/travel-portal/workloads.json'; +import travelPortalTravels from './namespaces/travel-portal/workloads/travels.json'; +import travelPortalViaggi from './namespaces/travel-portal/workloads/viaggi.json'; +import travelPortalVoyages from './namespaces/travel-portal/workloads/voyages.json'; + +export const kialiData: { [index: string]: any } = { + auth: anonymousAuth, + config: configData, + namespaces: namespacesData, + meshTls: meshTls, + meshCanaryStatus: meshCanaryStatus, + meshIstioResourceThresholds: meshIstioResourceThresholds, + outboundTrafficPolicy: outboundTrafficPolicy, + istioValidations: istioValidations, + istioConfig: istioConfig, + istioStatus: istioStatus, + istioCertsInfo: istioCertsInfo, + graph: bookinfoGraph, + namespacesData: { + 'istio-system': { + tls: istioSystemTls, + metrics: istioSystemMetrics, + health: { + app: istioSystemHealthApp, + service: istioSystemHealthService, + workload: istioSystemHealthWorkload, + }, + workloads: { + grafana: grafanaWorkload, + istioegressgateway: istioegressgatewayWorkload, + istioingressgateway: istioingressgatewayWorkload, + istiod: istiodWorkload, + jaeger: jaegerWorkload, + kiali: kialiWorkload, + prometheus: prometheusWorkload, + }, + services: { + grafana: grafanaService, + istioegressgateway: istioegressgatewayService, + istioingressgateway: istioingressgatewayService, + istiod: istiodService, + jaeger: jaegerService, + kiali: kialiService, + prometheus: prometheusService, + }, + apps: { + istioegressgateway: istioegressgatewayApp, + istioingressgateway: istioingressgatewayApp, + istiod: istiodApp, + jaeger: jaegerApp, + kiali: kialiApp, + }, + istioConfigList: istioSystemIstioConfig, + dashboard: istioDashboard, + spans: istioSpans, + }, + bookinfo: { + tls: bookinfoTls, + metrics: bookInfoMetrics, + health: { + app: bookinfoHealthApp, + service: bookinfoHealthService, + workload: bookinfoHealthWorkload, + }, + workloads: { + detailsv1: detailsWorkload, + kialitrafficgenerator: kialitrafficWorkload, + productpagev1: productpagev1Workload, + ratingsv1: ratingsv1Workload, + reviewsv1: reviewsv1Workload, + reviewsv2: reviewsv2Workload, + reviewsv3: reviewsv3Workload, + }, + services: { + details: detailsService, + productpage: productpageService, + ratings: ratingsService, + reviews: reviewsService, + }, + apps: { + details: detailsApp, + productpage: productpageApp, + ratings: ratingsApp, + reviews: reviewsApp, + kialitrafficgenerator: kialiTrafficGeneratorApp, + }, + istioConfigDetails: { + gateways: { + 'bookinfo-gateway': bookinfoGateway, + }, + virtualservices: { + bookinfo: bookinfoVirtualService, + }, + }, + istioConfigList: bookinfoIstioConfig, + dashboard: bookinfoDashboard, + spans: bookinfoSpans, + }, + 'travel-control': { + tls: travelControlTls, + metrics: travelControlMetrics, + health: { + app: travelControlHealthApp, + service: travelControlHealthService, + workload: travelControlHealthWorkload, + }, + workloads: { + control: travelControlWorkload, + }, + services: { + control: controlService, + }, + apps: { + control: controlApp, + }, + istioConfigDetails: { + destinationrules: { + control: controlDR, + }, + virtualservices: { + control: controlVR, + }, + gateways: { + 'control-gateway': controlGW, + }, + }, + istioConfigList: travelControlIstioConfig, + dashboard: travelControlDashboard, + spans: travelControlSpans, + }, + 'travel-portal': { + tls: travelPortalTls, + metrics: travelPortalMetrics, + health: { + app: travelPortalHealthApp, + service: travelPortalHealthService, + workload: travelPortalHealthWorkload, + }, + workloads: { + travels: travelPortalTravels, + viaggi: travelPortalViaggi, + voyages: travelPortalVoyages, + }, + services: { + travels: travelsService, + viaggi: viaggiService, + voyages: voyagesService, + }, + apps: { + travels: travelsApp, + viaggi: viaggiApp, + voyages: voyagesApp, + }, + istioConfigList: travelPortalIstioConfig, + dashboard: travelPortalDashboard, + spans: travelPortalSpans, + }, + 'travel-agency': { + tls: travelAgencyTls, + metrics: travelAgencyMetrics, + health: { + app: travelAgencyHealthApp, + service: travelAgencyHealthService, + workload: travelAgencyHealthWorkload, + }, + workloads: { + carsv1: carsv1Workload, + discountsv1: discountsv1Workload, + flightsv1: flightsv1Workload, + hotelsv1: hotelsv1Workload, + insurancesv1: insurancesv1Workload, + mysqldbv1: mysqldbv1Workload, + travels: travelsv1Workload, + }, + services: { + cars: carsService, + discounts: discountsService, + flights: flightsService, + hotels: hotelsService, + insurances: insurancesService, + mysqldb: mysqldbService, + travels: travelService, + }, + apps: { + cars: carsApp, + discounts: discountsApp, + flights: flightsApp, + hotels: hotelsApp, + insurances: insurancesApp, + mysqldb: mysqldbApp, + travels: travelApp, + }, + istioConfigList: travelAgencyIstioConfig, + dashboard: travelAgencyDashboard, + spans: travelAgencySpans, + }, + }, + logs: containerLogs, + istioLogs: istioContainerLogs, + spanLogs: spanLogs, + workloads: { + 'istio-system': istioSystemWorkloads, + bookinfo: bookinfoWorkloads, + 'travel-portal': travelPortalWorkloads, + 'travel-agency': travelAgencyWorkloads, + 'travel-control': travelControlWorkloads, + }, + services: { + 'istio-system': istioSystemServices, + bookinfo: bookinfoServices, + 'travel-portal': travelPortalServices, + 'travel-agency': travelAgencyServices, + 'travel-control': travelControlServices, + }, + apps: { + 'istio-system': istioSystemApps, + bookinfo: bookinfoApps, + 'travel-portal': travelPortalApps, + 'travel-agency': travelAgencyApps, + 'travel-control': travelControlApps, + }, + status: status, + crippledFeatures: crippledFeatures, + grafanaInfo: grafanaInfo, +}; diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/apps.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/apps.json new file mode 100644 index 0000000000..ff716297c3 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/apps.json @@ -0,0 +1,223 @@ +{ + "namespace": { + "name": "bookinfo", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "cluster": "", + "applications": [ + { + "name": "details", + "cluster": "Kubernetes", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "details", + "service": "details", + "version": "v1" + }, + "istioReferences": [ + { + "objectType": "Gateway", + "name": "bookinfo-gateway", + "namespace": "bookinfo", + "cluster": "" + } + ], + "health": { + "workloadStatuses": [ + { + "name": "details-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": { + "http": { + "200": 0.9999999999999999 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "kiali-traffic-generator", + "cluster": "Kubernetes", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "kiali-traffic-generator", + "kiali-test": "traffic-generator" + }, + "istioReferences": [], + "health": { + "workloadStatuses": [ + { + "name": "kiali-traffic-generator", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "productpage", + "cluster": "Kubernetes", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "productpage", + "service": "productpage", + "version": "v1" + }, + "istioReferences": [ + { + "objectType": "VirtualService", + "name": "bookinfo", + "namespace": "bookinfo", + "cluster": "" + }, + { + "objectType": "Gateway", + "name": "bookinfo-gateway", + "namespace": "bookinfo", + "cluster": "" + } + ], + "health": { + "workloadStatuses": [ + { + "name": "productpage-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": { + "http": { + "200": 0.9999999999999999 + } + }, + "outbound": { + "http": { + "200": 1.9999999999999998 + } + }, + "healthAnnotations": {} + } + } + }, + { + "name": "ratings", + "cluster": "Kubernetes", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "ratings", + "service": "ratings", + "version": "v1" + }, + "istioReferences": [ + { + "objectType": "Gateway", + "name": "bookinfo-gateway", + "namespace": "bookinfo", + "cluster": "" + } + ], + "health": { + "workloadStatuses": [ + { + "name": "ratings-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": { + "http": { + "200": 0.6444444444444444 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "reviews", + "cluster": "Kubernetes", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "reviews", + "service": "reviews", + "version": "v1,v2,v3" + }, + "istioReferences": [ + { + "objectType": "Gateway", + "name": "bookinfo-gateway", + "namespace": "bookinfo", + "cluster": "" + } + ], + "health": { + "workloadStatuses": [ + { + "name": "reviews-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + { + "name": "reviews-v2", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + { + "name": "reviews-v3", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": { + "http": { + "200": 1.0222222222222221 + } + }, + "outbound": { + "http": { + "200": 0.5999999999999999 + } + }, + "healthAnnotations": {} + } + } + } + ] +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/apps/details.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/apps/details.json new file mode 100644 index 0000000000..89835031ce --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/apps/details.json @@ -0,0 +1,58 @@ +{ + "namespace": { + "name": "bookinfo", + "cluster": "Kubernetes", + "isAmbient": false, + "labels": { + "istio-injection": "enabled", + "kubernetes.io/metadata.name": "bookinfo" + }, + "annotations": null + }, + "name": "details", + "cluster": "Kubernetes", + "workloads": [ + { + "workloadName": "details-v1", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "details", + "version": "v1" + }, + "serviceAccountNames": ["bookinfo-details"] + } + ], + "serviceNames": ["details"], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "health": { + "workloadStatuses": [ + { + "name": "details-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": { + "http": { + "200": 0.9999999999999999 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/apps/kiali_traffic_generator.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/apps/kiali_traffic_generator.json new file mode 100644 index 0000000000..45a540cd11 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/apps/kiali_traffic_generator.json @@ -0,0 +1,54 @@ +{ + "namespace": { + "name": "bookinfo", + "cluster": "Kubernetes", + "isAmbient": false, + "labels": { + "istio-injection": "enabled", + "kubernetes.io/metadata.name": "bookinfo" + }, + "annotations": null + }, + "name": "kiali-traffic-generator", + "cluster": "Kubernetes", + "workloads": [ + { + "workloadName": "kiali-traffic-generator", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "kiali-traffic-generator", + "kiali-test": "traffic-generator" + }, + "serviceAccountNames": ["default"] + } + ], + "serviceNames": [], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "health": { + "workloadStatuses": [ + { + "name": "kiali-traffic-generator", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/apps/productpage.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/apps/productpage.json new file mode 100644 index 0000000000..1decb97e17 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/apps/productpage.json @@ -0,0 +1,62 @@ +{ + "namespace": { + "name": "bookinfo", + "cluster": "Kubernetes", + "isAmbient": false, + "labels": { + "istio-injection": "enabled", + "kubernetes.io/metadata.name": "bookinfo" + }, + "annotations": null + }, + "name": "productpage", + "cluster": "Kubernetes", + "workloads": [ + { + "workloadName": "productpage-v1", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "productpage", + "version": "v1" + }, + "serviceAccountNames": ["bookinfo-productpage"] + } + ], + "serviceNames": ["productpage"], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "health": { + "workloadStatuses": [ + { + "name": "productpage-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": { + "http": { + "200": 0.9999999999999999 + } + }, + "outbound": { + "http": { + "200": 1.9999999999999996 + } + }, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/apps/ratings.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/apps/ratings.json new file mode 100644 index 0000000000..491a6c62ee --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/apps/ratings.json @@ -0,0 +1,58 @@ +{ + "namespace": { + "name": "bookinfo", + "cluster": "Kubernetes", + "isAmbient": false, + "labels": { + "istio-injection": "enabled", + "kubernetes.io/metadata.name": "bookinfo" + }, + "annotations": null + }, + "name": "ratings", + "cluster": "Kubernetes", + "workloads": [ + { + "workloadName": "ratings-v1", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "ratings", + "version": "v1" + }, + "serviceAccountNames": ["bookinfo-ratings"] + } + ], + "serviceNames": ["ratings"], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "health": { + "workloadStatuses": [ + { + "name": "ratings-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": { + "http": { + "200": 0.6666666666666666 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/apps/reviews.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/apps/reviews.json new file mode 100644 index 0000000000..229f0bbb0c --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/apps/reviews.json @@ -0,0 +1,96 @@ +{ + "namespace": { + "name": "bookinfo", + "cluster": "Kubernetes", + "isAmbient": false, + "labels": { + "istio-injection": "enabled", + "kubernetes.io/metadata.name": "bookinfo" + }, + "annotations": null + }, + "name": "reviews", + "cluster": "Kubernetes", + "workloads": [ + { + "workloadName": "reviews-v1", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "reviews", + "version": "v1" + }, + "serviceAccountNames": ["bookinfo-reviews"] + }, + { + "workloadName": "reviews-v2", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "reviews", + "version": "v2" + }, + "serviceAccountNames": ["bookinfo-reviews"] + }, + { + "workloadName": "reviews-v3", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "reviews", + "version": "v3" + }, + "serviceAccountNames": ["bookinfo-reviews"] + } + ], + "serviceNames": ["reviews"], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "health": { + "workloadStatuses": [ + { + "name": "reviews-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + { + "name": "reviews-v2", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + { + "name": "reviews-v3", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": { + "http": { + "200": 1.0222222222222221 + } + }, + "outbound": { + "http": { + "200": 0.7555555555555555 + } + }, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/dashboard.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/dashboard.json new file mode 100644 index 0000000000..4d0db26de3 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/dashboard.json @@ -0,0 +1,347 @@ +{ + "name": "", + "title": "Inbound Metrics", + "charts": [ + { + "name": "Request volume", + "unit": "ops", + "spans": 3, + "startCollapsed": false, + "metrics": [ + { + "labels": { + "source_canonical_service": "productpage", + "source_workload_namespace": "bookinfo" + }, + "datapoints": [ + [1710326010, "0.9999333377774815"], + [1710326040, "1"], + [1710326070, "1"], + [1710326100, "1.0000666711114075"], + [1710326130, "1.0000666711114075"], + [1710326160, "1"], + [1710326190, "1"], + [1710326220, "1"], + [1710326250, "1.0000666711114075"], + [1710326280, "1"], + [1710326310, "0.9999333377774815"], + [1710326340, "1"], + [1710326370, "0.9999333377774815"], + [1710326400, "1"], + [1710326430, "1.0000666711114075"], + [1710326460, "1"], + [1710326490, "0.9999333377774815"], + [1710326520, "1"], + [1710326550, "0.9999333377774815"], + [1710326580, "0.9999333377774815"], + [1710326610, "1.0000666711114075"] + ], + "name": "request_count" + } + ], + "xAxis": null, + "error": "" + }, + { + "name": "Request duration", + "unit": "seconds", + "spans": 3, + "startCollapsed": false, + "metrics": [ + { + "labels": { + "source_canonical_service": "productpage", + "source_workload_namespace": "bookinfo" + }, + "datapoints": [ + [1710326010, "0"], + [1710326040, "0.00027666666666652115"], + [1710326070, "0.0005533333333332848"], + [1710326100, "0.00021000000000009702"], + [1710326130, "0.0010966666666667154"], + [1710326160, "0.00013999999999990298"], + [1710326190, "0.00006999999999995149"], + [1710326220, "0.0005533333333330423"], + [1710326250, "0.0002766666666667637"], + [1710326280, "0.0003466666666667152"], + [1710326310, "0.0006166666666669092"], + [1710326340, "0.00014000000000014551"], + [1710326370, "0.0007566666666668122"], + [1710326400, "0.00020666666666656968"], + [1710326430, "0.00014000000000014554"], + [1710326460, "0.0002800000000000485"], + [1710326490, "0.00027999999999980596"], + [1710326520, "0.0006933333333331878"], + [1710326550, "0.0002099999999998545"], + [1710326580, "0.0006866666666666181"], + [1710326610, "0.0004166666666666667"] + ], + "stat": "avg", + "name": "request_duration_millis" + } + ], + "xAxis": null, + "error": "" + }, + { + "name": "Request size", + "unit": "bytes", + "spans": 3, + "startCollapsed": false, + "metrics": [ + { + "labels": { + "source_canonical_service": "productpage", + "source_workload_namespace": "bookinfo" + }, + "datapoints": [ + [1710326010, "1249.9999999999998"], + [1710326040, "1250"], + [1710326070, "1250"], + [1710326100, "1250"], + [1710326130, "1250"], + [1710326160, "1250"], + [1710326190, "1250"], + [1710326220, "1250"], + [1710326250, "1250"], + [1710326280, "1250"], + [1710326310, "1249.9999999999998"], + [1710326340, "1250"], + [1710326370, "1249.9999999999998"], + [1710326400, "1250"], + [1710326430, "1250"], + [1710326460, "1250"], + [1710326490, "1249.9999999999998"], + [1710326520, "1250"], + [1710326550, "1249.9999999999998"], + [1710326580, "1249.9999999999998"], + [1710326610, "1250"] + ], + "stat": "avg", + "name": "request_size" + } + ], + "xAxis": null, + "error": "" + }, + { + "name": "Response size", + "unit": "bytes", + "spans": 3, + "startCollapsed": false, + "metrics": [ + { + "labels": { + "source_canonical_service": "productpage", + "source_workload_namespace": "bookinfo" + }, + "datapoints": [ + [1710326010, "1149.9999999999998"], + [1710326040, "1150"], + [1710326070, "1150"], + [1710326100, "1150"], + [1710326130, "1150"], + [1710326160, "1150"], + [1710326190, "1150"], + [1710326220, "1150"], + [1710326250, "1150"], + [1710326280, "1150"], + [1710326310, "1149.9999999999998"], + [1710326340, "1150"], + [1710326370, "1149.9999999999998"], + [1710326400, "1150"], + [1710326430, "1150"], + [1710326460, "1150"], + [1710326490, "1149.9999999999998"], + [1710326520, "1150"], + [1710326550, "1149.9999999999998"], + [1710326580, "1149.9999999999998"], + [1710326610, "1150"] + ], + "stat": "avg", + "name": "response_size" + } + ], + "xAxis": null, + "error": "" + }, + { + "name": "Request throughput", + "unit": "bitrate", + "spans": 3, + "startCollapsed": false, + "metrics": [ + { + "labels": { + "source_canonical_service": "productpage", + "source_workload_namespace": "bookinfo" + }, + "datapoints": [ + [1710326010, "9999.333377774814"], + [1710326040, "10000"], + [1710326070, "10000"], + [1710326100, "10000.666711114074"], + [1710326130, "10000.666711114074"], + [1710326160, "10000"], + [1710326190, "10000"], + [1710326220, "10000"], + [1710326250, "10000.666711114074"], + [1710326280, "10000"], + [1710326310, "9999.333377774814"], + [1710326340, "10000"], + [1710326370, "9999.333377774814"], + [1710326400, "10000"], + [1710326430, "10000.666711114074"], + [1710326460, "10000"], + [1710326490, "9999.333377774814"], + [1710326520, "10000"], + [1710326550, "9999.333377774814"], + [1710326580, "9999.333377774814"], + [1710326610, "10000.666711114074"] + ], + "name": "request_throughput" + } + ], + "xAxis": null, + "error": "" + }, + { + "name": "Response throughput", + "unit": "bitrate", + "spans": 3, + "startCollapsed": false, + "metrics": [ + { + "labels": { + "source_canonical_service": "productpage", + "source_workload_namespace": "bookinfo" + }, + "datapoints": [ + [1710326010, "9199.386707552829"], + [1710326040, "9200"], + [1710326070, "9200"], + [1710326100, "9200.61337422495"], + [1710326130, "9200.61337422495"], + [1710326160, "9200"], + [1710326190, "9200"], + [1710326220, "9200"], + [1710326250, "9200.61337422495"], + [1710326280, "9200"], + [1710326310, "9199.386707552829"], + [1710326340, "9200"], + [1710326370, "9199.386707552829"], + [1710326400, "9200"], + [1710326430, "9200.61337422495"], + [1710326460, "9200"], + [1710326490, "9199.386707552829"], + [1710326520, "9200"], + [1710326550, "9199.386707552829"], + [1710326580, "9199.386707552829"], + [1710326610, "9200.61337422495"] + ], + "name": "response_throughput" + } + ], + "xAxis": null, + "error": "" + }, + { + "name": "gRPC received", + "unit": "msgrate", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "gRPC sent", + "unit": "msgrate", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "TCP opened", + "unit": "connrate", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "TCP closed", + "unit": "connrate", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "TCP received", + "unit": "bitrate", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "TCP sent", + "unit": "bitrate", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + } + ], + "aggregations": [ + { + "label": "destination_canonical_revision", + "displayName": "Local version", + "singleSelection": false + }, + { + "label": "source_workload_namespace", + "displayName": "Remote namespace", + "singleSelection": false + }, + { + "label": "source_canonical_service", + "displayName": "Remote app", + "singleSelection": false + }, + { + "label": "source_canonical_revision", + "displayName": "Remote version", + "singleSelection": false + }, + { + "label": "response_code", + "displayName": "Response code", + "singleSelection": false + }, + { + "label": "grpc_response_status", + "displayName": "GRPC status", + "singleSelection": false + }, + { + "label": "response_flags", + "displayName": "Response flags", + "singleSelection": false + }, + { + "label": "connection_security_policy", + "displayName": "Connection Security Policy", + "singleSelection": false + } + ], + "externalLinks": null, + "rows": 3 +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/health/app.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/health/app.json new file mode 100644 index 0000000000..9bd9fa35fb --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/health/app.json @@ -0,0 +1,120 @@ +{ + "details": { + "workloadStatuses": [ + { + "name": "details-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": { + "http": { + "200": 0.9999999999999999 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + }, + "kiali-traffic-generator": { + "workloadStatuses": [ + { + "name": "kiali-traffic-generator", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "productpage": { + "workloadStatuses": [ + { + "name": "productpage-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": { + "http": { + "200": 0.9999999999999999 + } + }, + "outbound": { + "http": { + "200": 1.9999999999999998 + } + }, + "healthAnnotations": {} + } + }, + "ratings": { + "workloadStatuses": [ + { + "name": "ratings-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": { + "http": { + "200": 0.711111111111111 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + }, + "reviews": { + "workloadStatuses": [ + { + "name": "reviews-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + { + "name": "reviews-v2", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + { + "name": "reviews-v3", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": { + "http": { + "200": 0.9999999999999999 + } + }, + "outbound": { + "http": { + "200": 0.711111111111111 + } + }, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/health/service.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/health/service.json new file mode 100644 index 0000000000..6da4f68dbb --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/health/service.json @@ -0,0 +1,46 @@ +{ + "details": { + "requests": { + "inbound": { + "http": { + "200": 0.9999999999999999 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + }, + "productpage": { + "requests": { + "inbound": { + "http": { + "200": 0.9999999999999999 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + }, + "ratings": { + "requests": { + "inbound": { + "http": { + "200": 0.7555555555555555 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + }, + "reviews": { + "requests": { + "inbound": { + "http": { + "200": 1 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/health/workload.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/health/workload.json new file mode 100644 index 0000000000..12af3ccd76 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/health/workload.json @@ -0,0 +1,136 @@ +{ + "details-v1": { + "workloadStatus": { + "name": "details-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": { + "http": { + "200": 0.9999999999999999 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + }, + "kiali-traffic-generator": { + "workloadStatus": { + "name": "kiali-traffic-generator", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "productpage-v1": { + "workloadStatus": { + "name": "productpage-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": { + "http": { + "200": 0.9999999999999999 + } + }, + "outbound": { + "http": { + "200": 2 + } + }, + "healthAnnotations": {} + } + }, + "ratings-v1": { + "workloadStatus": { + "name": "ratings-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": { + "http": { + "200": 0.6666666666666665 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + }, + "reviews-v1": { + "workloadStatus": { + "name": "reviews-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": { + "http": { + "200": 0.3333333333333333 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + }, + "reviews-v2": { + "workloadStatus": { + "name": "reviews-v2", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": { + "http": { + "200": 0.3777777777777777 + } + }, + "outbound": { + "http": { + "200": 0.3777777777777777 + } + }, + "healthAnnotations": {} + } + }, + "reviews-v3": { + "workloadStatus": { + "name": "reviews-v3", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": { + "http": { + "200": 0.3555555555555555 + } + }, + "outbound": { + "http": { + "200": 0.2444444444444444 + } + }, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/istio_config.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/istio_config.json new file mode 100644 index 0000000000..dee62a1fc3 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/istio_config.json @@ -0,0 +1,193 @@ +{ + "namespace": { + "name": "bookinfo", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "destinationRules": [], + "envoyFilters": [], + "gateways": [ + { + "kind": "Gateway", + "apiVersion": "networking.istio.io/v1beta1", + "metadata": { + "name": "bookinfo-gateway", + "namespace": "bookinfo", + "uid": "6369d379-ce97-4a77-98ef-5702845ddc56", + "resourceVersion": "811259", + "generation": 3, + "creationTimestamp": "2024-03-05T14:38:05Z", + "annotations": { + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"networking.istio.io/v1alpha3\",\"kind\":\"Gateway\",\"metadata\":{\"annotations\":{},\"name\":\"bookinfo-gateway\",\"namespace\":\"bookinfo\"},\"spec\":{\"selector\":{\"istio\":\"ingressgateway\"},\"servers\":[{\"hosts\":[\"*\"],\"port\":{\"name\":\"http\",\"number\":8080,\"protocol\":\"HTTP\"}}]}}\n" + }, + "managedFields": [ + { + "manager": "kubectl-client-side-apply", + "operation": "Update", + "apiVersion": "networking.istio.io/v1alpha3", + "time": "2024-03-05T14:38:05Z", + "fieldsType": "FieldsV1", + "fieldsV1": { + "f:metadata": { + "f:annotations": { + ".": {}, + "f:kubectl.kubernetes.io/last-applied-configuration": {} + } + }, + "f:spec": { + ".": {}, + "f:selector": {}, + "f:servers": {} + } + } + }, + { + "manager": "kiali", + "operation": "Update", + "apiVersion": "networking.istio.io/v1beta1", + "time": "2024-03-20T12:42:26Z", + "fieldsType": "FieldsV1", + "fieldsV1": { + "f:spec": { + "f:selector": { + "f:istio": {} + } + } + } + } + ] + }, + "spec": { + "servers": [ + { + "port": { + "number": 8080, + "protocol": "HTTP", + "name": "http" + }, + "hosts": ["*"] + } + ], + "selector": { + "istio": "ingressgateway" + } + }, + "status": {} + } + ], + "serviceEntries": [], + "sidecars": [], + "virtualServices": [ + { + "kind": "VirtualService", + "apiVersion": "networking.istio.io/v1beta1", + "metadata": { + "name": "bookinfo", + "namespace": "bookinfo", + "uid": "16c9b2e6-4bc2-426c-9464-853a4148435f", + "resourceVersion": "784735", + "generation": 9, + "creationTimestamp": "2024-03-05T14:38:05Z", + "annotations": { + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"networking.istio.io/v1alpha3\",\"kind\":\"VirtualService\",\"metadata\":{\"annotations\":{},\"name\":\"bookinfo\",\"namespace\":\"bookinfo\"},\"spec\":{\"gateways\":[\"bookinfo-gateway\"],\"hosts\":[\"*\"],\"http\":[{\"match\":[{\"uri\":{\"exact\":\"/productpage\"}},{\"uri\":{\"prefix\":\"/static\"}},{\"uri\":{\"exact\":\"/login\"}},{\"uri\":{\"exact\":\"/logout\"}},{\"uri\":{\"prefix\":\"/api/v1/products\"}}],\"route\":[{\"destination\":{\"host\":\"productpage\",\"port\":{\"number\":9080}}}]}]}}\n" + }, + "managedFields": [ + { + "manager": "kubectl-client-side-apply", + "operation": "Update", + "apiVersion": "networking.istio.io/v1alpha3", + "time": "2024-03-05T14:38:05Z", + "fieldsType": "FieldsV1", + "fieldsV1": { + "f:metadata": { + "f:annotations": { + ".": {}, + "f:kubectl.kubernetes.io/last-applied-configuration": {} + } + }, + "f:spec": { + ".": {}, + "f:hosts": {}, + "f:http": {} + } + } + }, + { + "manager": "kiali", + "operation": "Update", + "apiVersion": "networking.istio.io/v1beta1", + "time": "2024-03-19T14:43:01Z", + "fieldsType": "FieldsV1", + "fieldsV1": { + "f:spec": { + "f:gateways": {} + } + } + } + ] + }, + "spec": { + "hosts": ["*"], + "gateways": ["bookinfo-gateway"], + "http": [ + { + "match": [ + { + "uri": { + "exact": "/productpage" + } + }, + { + "uri": { + "prefix": "/static" + } + }, + { + "uri": { + "exact": "/login" + } + }, + { + "uri": { + "exact": "/logout" + } + }, + { + "uri": { + "prefix": "/api/v1/products" + } + } + ], + "route": [ + { + "destination": { + "host": "productpage", + "port": { + "number": 9080 + } + } + } + ] + } + ] + }, + "status": {} + } + ], + "workloadEntries": [], + "workloadGroups": [], + "wasmPlugins": [], + "telemetries": [], + "k8sGateways": [], + "k8sGRPCRoutes": [], + "k8sHTTPRoutes": [], + "k8sReferenceGrants": [], + "k8sTCPRoutes": [], + "k8sTLSRoutes": [], + "authorizationPolicies": [], + "peerAuthentications": [], + "requestAuthentications": [], + "validations": {} +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/istio_configs/gateways/bookinfo-gateway.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/istio_configs/gateways/bookinfo-gateway.json new file mode 100644 index 0000000000..e97563b242 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/istio_configs/gateways/bookinfo-gateway.json @@ -0,0 +1,103 @@ +{ + "namespace": { + "name": "bookinfo", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "objectType": "gateways", + "authorizationPolicy": null, + "destinationRule": null, + "envoyFilter": null, + "gateway": { + "kind": "Gateway", + "apiVersion": "networking.istio.io/v1beta1", + "metadata": { + "name": "bookinfo-gateway", + "namespace": "bookinfo", + "uid": "6369d379-ce97-4a77-98ef-5702845ddc56", + "resourceVersion": "811259", + "generation": 3, + "creationTimestamp": "2024-03-05T14:38:05Z", + "annotations": { + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"networking.istio.io/v1alpha3\",\"kind\":\"Gateway\",\"metadata\":{\"annotations\":{},\"name\":\"bookinfo-gateway\",\"namespace\":\"bookinfo\"},\"spec\":{\"selector\":{\"istio\":\"ingressgateway\"},\"servers\":[{\"hosts\":[\"*\"],\"port\":{\"name\":\"http\",\"number\":8080,\"protocol\":\"HTTP\"}}]}}\n" + }, + "managedFields": [ + { + "manager": "kubectl-client-side-apply", + "operation": "Update", + "apiVersion": "networking.istio.io/v1alpha3", + "time": "2024-03-05T14:38:05Z", + "fieldsType": "FieldsV1", + "fieldsV1": { + "f:metadata": { + "f:annotations": { + ".": {}, + "f:kubectl.kubernetes.io/last-applied-configuration": {} + } + }, + "f:spec": { + ".": {}, + "f:selector": {}, + "f:servers": {} + } + } + }, + { + "manager": "kiali", + "operation": "Update", + "apiVersion": "networking.istio.io/v1beta1", + "time": "2024-03-20T12:42:26Z", + "fieldsType": "FieldsV1", + "fieldsV1": { + "f:spec": { + "f:selector": { + "f:istio": {} + } + } + } + } + ] + }, + "spec": { + "servers": [ + { + "port": { + "number": 8080, + "protocol": "HTTP", + "name": "http" + }, + "hosts": ["*"] + } + ], + "selector": { + "istio": "ingressgateway" + } + }, + "status": {} + }, + "peerAuthentication": null, + "requestAuthentication": null, + "serviceEntry": null, + "sidecar": null, + "virtualService": null, + "workloadEntry": null, + "workloadGroup": null, + "wasmPlugin": null, + "telemetry": null, + "k8sGateway": null, + "k8sGRPCRoute": null, + "k8sHTTPRoute": null, + "k8sReferenceGrant": null, + "k8sTCPRoute": null, + "k8sTLSRoute": null, + "permissions": { + "create": true, + "update": true, + "delete": true + }, + "validation": null, + "references": null, + "help": null +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/istio_configs/virtualservices/bookinfo.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/istio_configs/virtualservices/bookinfo.json new file mode 100644 index 0000000000..0bb64acead --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/istio_configs/virtualservices/bookinfo.json @@ -0,0 +1,131 @@ +{ + "namespace": { + "name": "bookinfo", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "objectType": "virtualservices", + "authorizationPolicy": null, + "destinationRule": null, + "envoyFilter": null, + "gateway": null, + "peerAuthentication": null, + "requestAuthentication": null, + "serviceEntry": null, + "sidecar": null, + "virtualService": { + "kind": "VirtualService", + "apiVersion": "networking.istio.io/v1beta1", + "metadata": { + "name": "bookinfo", + "namespace": "bookinfo", + "uid": "16c9b2e6-4bc2-426c-9464-853a4148435f", + "resourceVersion": "784735", + "generation": 9, + "creationTimestamp": "2024-03-05T14:38:05Z", + "annotations": { + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"networking.istio.io/v1alpha3\",\"kind\":\"VirtualService\",\"metadata\":{\"annotations\":{},\"name\":\"bookinfo\",\"namespace\":\"bookinfo\"},\"spec\":{\"gateways\":[\"bookinfo-gateway\"],\"hosts\":[\"*\"],\"http\":[{\"match\":[{\"uri\":{\"exact\":\"/productpage\"}},{\"uri\":{\"prefix\":\"/static\"}},{\"uri\":{\"exact\":\"/login\"}},{\"uri\":{\"exact\":\"/logout\"}},{\"uri\":{\"prefix\":\"/api/v1/products\"}}],\"route\":[{\"destination\":{\"host\":\"productpage\",\"port\":{\"number\":9080}}}]}]}}\n" + }, + "managedFields": [ + { + "manager": "kubectl-client-side-apply", + "operation": "Update", + "apiVersion": "networking.istio.io/v1alpha3", + "time": "2024-03-05T14:38:05Z", + "fieldsType": "FieldsV1", + "fieldsV1": { + "f:metadata": { + "f:annotations": { + ".": {}, + "f:kubectl.kubernetes.io/last-applied-configuration": {} + } + }, + "f:spec": { + ".": {}, + "f:hosts": {}, + "f:http": {} + } + } + }, + { + "manager": "kiali", + "operation": "Update", + "apiVersion": "networking.istio.io/v1beta1", + "time": "2024-03-19T14:43:01Z", + "fieldsType": "FieldsV1", + "fieldsV1": { + "f:spec": { + "f:gateways": {} + } + } + } + ] + }, + "spec": { + "hosts": ["*"], + "gateways": ["bookinfo-gateway"], + "http": [ + { + "match": [ + { + "uri": { + "exact": "/productpage" + } + }, + { + "uri": { + "prefix": "/static" + } + }, + { + "uri": { + "exact": "/login" + } + }, + { + "uri": { + "exact": "/logout" + } + }, + { + "uri": { + "prefix": "/api/v1/products" + } + } + ], + "route": [ + { + "destination": { + "host": "productpage", + "port": { + "number": 9080 + } + } + } + ] + } + ] + }, + "status": {} + }, + "workloadEntry": null, + "workloadGroup": null, + "wasmPlugin": null, + "telemetry": null, + "k8sGateway": null, + "k8sGRPCRoute": null, + "k8sHTTPRoute": null, + "k8sReferenceGrant": null, + "k8sTCPRoute": null, + "k8sTLSRoute": null, + "permissions": { + "create": true, + "update": true, + "delete": true + }, + "validation": null, + "references": null, + "help": null +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/inbound/metrics_inbound_120.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/inbound/metrics_inbound_120.json new file mode 100644 index 0000000000..56ae0787f5 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/inbound/metrics_inbound_120.json @@ -0,0 +1,28 @@ +{ + "request_count": [ + { + "labels": {}, + "datapoints": [ + [1697023800, "3.466666666666667"], + [1697023830, "3.399800039992002"], + [1697023860, "3.2664801740597667"], + [1697023890, "3.533333333333333"], + [1697023920, "3.866666666666667"] + ], + "name": "request_count" + } + ], + "request_error_count": [ + { + "labels": {}, + "datapoints": [ + [1697023800, "0"], + [1697023830, "0"], + [1697023860, "0"], + [1697023890, "0"], + [1697023920, "0"] + ], + "name": "request_error_count" + } + ] +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/inbound/metrics_inbound_1800.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/inbound/metrics_inbound_1800.json new file mode 100644 index 0000000000..64876a240a --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/inbound/metrics_inbound_1800.json @@ -0,0 +1,40 @@ +{ + "request_count": [ + { + "labels": {}, + "datapoints": [ + [1697022180, "3.6605924340032585"], + [1697022360, "3.672727272727272"], + [1697022540, "3.6606060606060598"], + [1697022720, "3.6666666666666656"], + [1697022900, "3.6606060606060598"], + [1697023080, "3.7515151515151506"], + [1697023260, "3.642218224270407"], + [1697023440, "3.6424242424242417"], + [1697023620, "3.7272727272727266"], + [1697023800, "3.636363636363636"], + [1697023980, "3.6363636363636362"] + ], + "name": "request_count" + } + ], + "request_error_count": [ + { + "labels": {}, + "datapoints": [ + [1697022180, "0"], + [1697022360, "0"], + [1697022540, "0"], + [1697022720, "0"], + [1697022900, "0"], + [1697023080, "0"], + [1697023260, "0"], + [1697023440, "0"], + [1697023620, "0"], + [1697023800, "0"], + [1697023980, "0"] + ], + "name": "request_error_count" + } + ] +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/inbound/metrics_inbound_300.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/inbound/metrics_inbound_300.json new file mode 100644 index 0000000000..3b20582b5c --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/inbound/metrics_inbound_300.json @@ -0,0 +1,914 @@ +{ + "grpc_received": null, + "grpc_sent": null, + "request_count": [ + { + "labels": {}, + "datapoints": [ + [1696410795, "3.577777777777777"], + [1696410810, "3.622222222222221"], + [1696410825, "3.599999999999999"], + [1696410840, "3.5999999999999996"], + [1696410855, "3.5111111111111106"], + [1696410870, "3.4666666666666663"], + [1696410885, "3.5333333333333328"], + [1696410900, "3.5111111111111106"], + [1696410915, "3.555555555555555"], + [1696410930, "3.621711372212227"], + [1696410945, "3.7333333333333325"], + [1696410960, "3.6888888888888887"], + [1696410975, "3.622733594701489"], + [1696410990, "3.5554084154912404"], + [1696411005, "3.577777777777777"], + [1696411020, "3.6222222222222222"], + [1696411035, "3.622397558974338"], + [1696411050, "3.666666666666666"], + [1696411065, "3.0355833333333333"], + [1696411080, "1.9189166666666662"], + [1696411095, "0.5111111111111111"], + [1696411110, "0"], + [1696411125, "0"], + [1696411140, "0"], + [1696411155, "0"], + [1696411170, "0"], + [1696411185, "0"], + [1696411200, "0"], + [1696411215, "0"], + [1696411230, "0"], + [1696411245, "0"], + [1696411260, "0"], + [1696411275, "0"], + [1696411290, "0"], + [1696411305, "0"], + [1696411320, "0"], + [1696411335, "0"], + [1696411350, "0"], + [1696411365, "0"], + [1696411380, "0"], + [1696411395, "0.5777777777777777"], + [1696411410, "1.8667499999999997"], + [1696411425, "3.0945277777777775"], + [1696411440, "3.7223055555555553"], + [1696411455, "3.844444444444444"], + [1696411470, "3.7777777777777772"], + [1696411485, "3.7111111111111104"], + [1696411500, "3.733333333333333"], + [1696411515, "3.688888888888888"], + [1696411530, "3.666666666666666"], + [1696411545, "3.6222222222222222"], + [1696411560, "3.6887333575271"], + [1696411575, "3.733333333333333"], + [1696411590, "3.7777777777777777"], + [1696411605, "3.644600024201295"], + [1696411620, "3.64440000197522"], + [1696411635, "3.577777777777777"], + [1696411650, "3.7111111111111112"], + [1696411665, "3.6667111130865067"], + [1696411680, "3.7555555555555555"], + [1696411695, "3.7111111111111104"], + [1696411710, "3.7111111111111112"], + [1696411725, "3.622133337283775"], + [1696411740, "3.6"], + [1696411755, "3.644444444444444"], + [1696411770, "3.6889777817285703"], + [1696411785, "3.7777284005480873"], + [1696411800, "3.8222222222222215"], + [1696411815, "3.7555555555555546"], + [1696411830, "3.6661952130599573"], + [1696411845, "3.622222222222222"], + [1696411860, "3.666666666666666"], + [1696411875, "3.711600148202358"], + [1696411890, "3.644444444444444"], + [1696411905, "3.644444444444444"], + [1696411920, "3.622222222222222"], + [1696411935, "3.7111111111111112"], + [1696411950, "3.533333333333333"], + [1696411965, "3.533333333333333"], + [1696411980, "3.5331555713566205"], + [1696411995, "3.733333333333333"], + [1696412010, "3.622222222222222"], + [1696412025, "3.622400015803874"], + [1696412040, "3.622222222222222"], + [1696412055, "3.7111111111111112"], + [1696412070, "3.666666666666666"], + [1696412085, "3.666666666666666"], + [1696412100, "3.644311119999408"], + [1696412115, "3.6666666666666665"], + [1696412130, "3.5777185290516256"], + [1696412145, "3.577911120000592"], + [1696412160, "3.599999999999999"], + [1696412175, "3.6222814920183337"], + [1696412190, "3.6444128423152504"], + [1696412205, "3.5111111111111106"], + [1696412220, "3.621333728219557"], + [1696412235, "3.64446419928685"], + [1696412250, "3.688888888888888"], + [1696412265, "3.6008892841262776"], + [1696412280, "3.555555555555555"], + [1696412295, "3.555555555555555"], + [1696412310, "3.5555555555555554"], + [1696412325, "3.644444444444444"], + [1696412340, "3.6888888888888887"], + [1696412355, "3.711111111111111"], + [1696412370, "3.7111111111111112"], + [1696412385, "3.666666666666666"], + [1696412400, "3.555555555555555"], + [1696412415, "3.5333333333333328"], + [1696412430, "3.5555111130863324"], + [1696412445, "3.6666666666666665"], + [1696412460, "3.7111111111111112"], + [1696412475, "3.755600001975396"], + [1696412490, "3.8000000000000003"], + [1696412505, "3.7777777777777772"], + [1696412520, "3.7999999999999994"], + [1696412535, "3.8444444444444446"], + [1696412550, "3.688888888888888"], + [1696412565, "3.644444444444444"], + [1696412580, "3.5555555555555554"], + [1696412595, "3.6"] + ], + "name": "request_count" + } + ], + "request_duration_millis": [ + { + "labels": {}, + "datapoints": [ + [1696410795, "7.5645962732919285"], + [1696410810, "7.019631901840506"], + [1696410825, "6.782716049382715"], + [1696410840, "6.498765432098765"], + [1696410855, "6.617088607594929"], + [1696410870, "6.762025316455705"], + [1696410885, "7.118867924528306"], + [1696410900, "7.021698113207562"], + [1696410915, "7.2767080745341595"], + [1696410930, "8.127719843059305"], + [1696410945, "8.459821428571418"], + [1696410960, "8.162195121951203"], + [1696410975, "7.567245817974092"], + [1696410990, "7.407068616263373"], + [1696411005, "8.43788819875777"], + [1696411020, "8.077914110429436"], + [1696411035, "8.08794526421048"], + [1696411050, "7.014759036144582"], + [1696411065, "6.607978236324356"], + [1696411080, "6.655912886939783"], + [1696411095, "2.7642857142856845"], + [1696411110, "NaN"], + [1696411125, "NaN"], + [1696411140, "NaN"], + [1696411155, "NaN"], + [1696411170, "NaN"], + [1696411185, "NaN"], + [1696411200, "NaN"], + [1696411215, "NaN"], + [1696411230, "NaN"], + [1696411245, "NaN"], + [1696411260, "NaN"], + [1696411275, "NaN"], + [1696411290, "NaN"], + [1696411305, "NaN"], + [1696411320, "NaN"], + [1696411335, "NaN"], + [1696411350, "NaN"], + [1696411365, "NaN"], + [1696411380, "NaN"], + [1696411395, "3.8761904761905015"], + [1696411410, "6.452448459725035"], + [1696411425, "5.9819901137018965"], + [1696411440, "6.213269220663208"], + [1696411455, "6.192774566473981"], + [1696411470, "6.533235294117629"], + [1696411485, "6.437425149700596"], + [1696411500, "6.775449101796406"], + [1696411515, "6.425449101796422"], + [1696411530, "7.216265060240964"], + [1696411545, "7.5265243902439165"], + [1696411560, "7.541374007531274"], + [1696411575, "6.799999999999992"], + [1696411590, "6.236011904761901"], + [1696411605, "6.2989043693660625"], + [1696411620, "6.499256365445137"], + [1696411635, "6.71073619631903"], + [1696411650, "7.01190476190475"], + [1696411665, "6.77995647248545"], + [1696411680, "7.267857142857117"], + [1696411695, "7.066265060240969"], + [1696411710, "7.394910179640704"], + [1696411725, "6.774941057751279"], + [1696411740, "6.828703703703713"], + [1696411755, "6.501552795031084"], + [1696411770, "7.861713569971116"], + [1696411785, "8.253635670380952"], + [1696411800, "9.162865497076009"], + [1696411815, "8.881764705882352"], + [1696411830, "8.529558572626945"], + [1696411845, "8.622256097560962"], + [1696411860, "7.677743902439009"], + [1696411875, "7.6418207924871995"], + [1696411890, "6.469090909090909"], + [1696411905, "6.387575757575752"], + [1696411920, "6.352147239263806"], + [1696411935, "6.634226190476188"], + [1696411950, "7.04748427672957"], + [1696411965, "7.104088050314491"], + [1696411980, "7.197714394440217"], + [1696411995, "6.841964285714277"], + [1696412010, "6.800304878048771"], + [1696412025, "6.63219087137394"], + [1696412040, "7.066564417177924"], + [1696412055, "7.158035714285704"], + [1696412070, "7.208928571428565"], + [1696412085, "6.9175757575757615"], + [1696412100, "6.680204190222556"], + [1696412115, "6.60304878048782"], + [1696412130, "7.147589279961249"], + [1696412145, "7.331397269920375"], + [1696412160, "7.555864197530868"], + [1696412175, "7.3379350122773825"], + [1696412190, "7.111091974580902"], + [1696412205, "7.103124999999996"], + [1696412220, "6.397247694068532"], + [1696412235, "6.805354054492854"], + [1696412250, "6.502727272727262"], + [1696412265, "6.650858726071548"], + [1696412280, "6.441509433962276"], + [1696412295, "6.476562500000013"], + [1696412310, "7.179754601226991"], + [1696412325, "6.864329268292677"], + [1696412340, "6.934848484848462"], + [1696412355, "6.306707317073169"], + [1696412370, "6.648181818181811"], + [1696412385, "6.394879518072293"], + [1696412400, "6.37331288343559"], + [1696412415, "6.716250000000013"], + [1696412430, "7.006688978351573"], + [1696412445, "7.872392638036815"], + [1696412460, "7.588757396449705"], + [1696412475, "7.960641995561795"], + [1696412490, "7.024418604651141"], + [1696412505, "6.798214285714275"], + [1696412520, "6.709826589595367"], + [1696412535, "6.770175438596499"], + [1696412550, "6.709281437125758"], + [1696412565, "6.748765432098778"], + [1696412580, "6.945652173913059"], + [1696412595, "6.937037037037037"] + ], + "stat": "avg", + "name": "request_duration_millis" + } + ], + "request_error_count": [ + { + "labels": {}, + "datapoints": [ + [1696410795, "0"], + [1696410810, "0"], + [1696410825, "0"], + [1696410840, "0"], + [1696410855, "0"], + [1696410870, "0"], + [1696410885, "0"], + [1696410900, "0"], + [1696410915, "0"], + [1696410930, "0"], + [1696410945, "0"], + [1696410960, "0"], + [1696410975, "0"], + [1696410990, "0"], + [1696411005, "0"], + [1696411020, "0"], + [1696411035, "0"], + [1696411050, "0"], + [1696411065, "0"], + [1696411080, "0"], + [1696411095, "0"], + [1696411110, "0"], + [1696411125, "0"], + [1696411140, "0"], + [1696411155, "0"], + [1696411170, "0"], + [1696411185, "0"], + [1696411200, "0"], + [1696411215, "0"], + [1696411230, "0"], + [1696411245, "0"], + [1696411260, "0"], + [1696411275, "0"], + [1696411290, "0"], + [1696411305, "0"], + [1696411320, "0"], + [1696411335, "0"], + [1696411350, "0"], + [1696411365, "0"], + [1696411380, "0"], + [1696411395, "0"], + [1696411410, "0"], + [1696411425, "0"], + [1696411440, "0"], + [1696411455, "0"], + [1696411470, "0"], + [1696411485, "0"], + [1696411500, "0"], + [1696411515, "0"], + [1696411530, "0"], + [1696411545, "0"], + [1696411560, "0"], + [1696411575, "0"], + [1696411590, "0"], + [1696411605, "0"], + [1696411620, "0"], + [1696411635, "0"], + [1696411650, "0"], + [1696411665, "0"], + [1696411680, "0"], + [1696411695, "0"], + [1696411710, "0"], + [1696411725, "0"], + [1696411740, "0"], + [1696411755, "0"], + [1696411770, "0"], + [1696411785, "0"], + [1696411800, "0"], + [1696411815, "0"], + [1696411830, "0"], + [1696411845, "0"], + [1696411860, "0"], + [1696411875, "0"], + [1696411890, "0"], + [1696411905, "0"], + [1696411920, "0"], + [1696411935, "0"], + [1696411950, "0"], + [1696411965, "0"], + [1696411980, "0"], + [1696411995, "0"], + [1696412010, "0"], + [1696412025, "0"], + [1696412040, "0"], + [1696412055, "0"], + [1696412070, "0"], + [1696412085, "0"], + [1696412100, "0"], + [1696412115, "0"], + [1696412130, "0"], + [1696412145, "0"], + [1696412160, "0"], + [1696412175, "0"], + [1696412190, "0"], + [1696412205, "0"], + [1696412220, "0"], + [1696412235, "0"], + [1696412250, "0"], + [1696412265, "0"], + [1696412280, "0"], + [1696412295, "0"], + [1696412310, "0"], + [1696412325, "0"], + [1696412340, "0"], + [1696412355, "0"], + [1696412370, "0"], + [1696412385, "0"], + [1696412400, "0"], + [1696412415, "0"], + [1696412430, "0"], + [1696412445, "0"], + [1696412460, "0"], + [1696412475, "0"], + [1696412490, "0"], + [1696412505, "0"], + [1696412520, "0"], + [1696412535, "0"], + [1696412550, "0"], + [1696412565, "0"], + [1696412580, "0"], + [1696412595, "0"] + ], + "name": "request_error_count" + } + ], + "request_size": [ + { + "labels": {}, + "datapoints": [ + [1696410795, "279.4099378881988"], + [1696410810, "280.33742331288346"], + [1696410825, "279.99999999999994"], + [1696410840, "280.00000000000006"], + [1696410855, "277.9746835443038"], + [1696410870, "277.9746835443038"], + [1696410885, "278.45911949685535"], + [1696410900, "278.5849056603774"], + [1696410915, "279.53416149068323"], + [1696410930, "280.13979544724987"], + [1696410945, "282.79761904761904"], + [1696410960, "281.0365853658537"], + [1696410975, "281.2262147276294"], + [1696410990, "279.4102849337094"], + [1696411005, "279.9068322981367"], + [1696411020, "280.8282208588957"], + [1696411035, "279.9067354332076"], + [1696411050, "281.6867469879518"], + [1696411065, "285.3403241436331"], + [1696411080, "285.0850015565572"], + [1696411095, "325.71428571428567"], + [1696411110, "NaN"], + [1696411125, "NaN"], + [1696411140, "NaN"], + [1696411155, "NaN"], + [1696411170, "NaN"], + [1696411185, "NaN"], + [1696411200, "NaN"], + [1696411215, "NaN"], + [1696411230, "NaN"], + [1696411245, "NaN"], + [1696411260, "NaN"], + [1696411275, "NaN"], + [1696411290, "NaN"], + [1696411305, "NaN"], + [1696411320, "NaN"], + [1696411335, "NaN"], + [1696411350, "NaN"], + [1696411365, "NaN"], + [1696411380, "NaN"], + [1696411395, "324.52380952380946"], + [1696411410, "287.3358068446118"], + [1696411425, "289.0796102189919"], + [1696411440, "286.4486910955459"], + [1696411455, "284.53757225433526"], + [1696411470, "283.52941176470586"], + [1696411485, "282.00598802395206"], + [1696411500, "281.8862275449102"], + [1696411515, "281.76646706586826"], + [1696411530, "281.4457831325301"], + [1696411545, "280.67073170731703"], + [1696411560, "282.60971940114854"], + [1696411575, "282.7245508982036"], + [1696411590, "282.79761904761904"], + [1696411605, "279.6246759409596"], + [1696411620, "280.30628416048376"], + [1696411635, "280.21472392638043"], + [1696411650, "282.3214285714285"], + [1696411665, "281.68534107798405"], + [1696411680, "282.55952380952374"], + [1696411695, "281.92771084337346"], + [1696411710, "282.2455089820359"], + [1696411725, "280.70465809405835"], + [1696411740, "280.37037037037044"], + [1696411755, "280.27950310559004"], + [1696411770, "281.7281009043954"], + [1696411785, "283.1056240344476"], + [1696411800, "283.4795321637427"], + [1696411815, "283.17647058823525"], + [1696411830, "282.0170789560339"], + [1696411845, "280.6707317073171"], + [1696411860, "280.4268292682927"], + [1696411875, "281.3145869262265"], + [1696411890, "280.8787878787879"], + [1696411905, "281"], + [1696411920, "279.9693251533742"], + [1696411935, "282.32142857142856"], + [1696411950, "278.5849056603774"], + [1696411965, "278.58490566037733"], + [1696411980, "278.9356747237607"], + [1696411995, "282.32142857142856"], + [1696412010, "280.67073170731703"], + [1696412025, "278.58673793706083"], + [1696412040, "280.7055214723926"], + [1696412055, "282.9166666666667"], + [1696412070, "283.0357142857143"], + [1696412085, "281.6060606060606"], + [1696412100, "280.5815225148697"], + [1696412115, "280.9146341463414"], + [1696412130, "278.8113150533358"], + [1696412145, "279.0638643627106"], + [1696412160, "280.00000000000006"], + [1696412175, "280.4613205458113"], + [1696412190, "280.58222431127575"], + [1696412205, "278.93749999999994"], + [1696412220, "281.23413451827906"], + [1696412235, "281.886673285088"], + [1696412250, "281.24242424242425"], + [1696412265, "278.59406845764806"], + [1696412280, "278.45911949685535"], + [1696412295, "278.9375"], + [1696412310, "280.2147239263804"], + [1696412325, "280.5487804878049"], + [1696412340, "280.75757575757575"], + [1696412355, "280.3048780487805"], + [1696412370, "280.8787878787878"], + [1696412385, "281.4457831325301"], + [1696412400, "280.0920245398773"], + [1696412415, "279.06250000000006"], + [1696412430, "279.53558422973896"], + [1696412445, "280.58282208588963"], + [1696412460, "282.7514792899408"], + [1696412475, "281.7650686196597"], + [1696412490, "283.7790697674418"], + [1696412505, "282.2023809523809"], + [1696412520, "284.42196531791905"], + [1696412535, "283.59649122807014"], + [1696412550, "282.4850299401198"], + [1696412565, "280.37037037037044"], + [1696412580, "280.03105590062114"], + [1696412595, "279.99999999999994"] + ], + "stat": "avg", + "name": "request_size" + } + ], + "request_throughput": [ + { + "labels": {}, + "datapoints": [ + [1696410795, "999.6666666666665"], + [1696410810, "1015.4444444444443"], + [1696410825, "1007.9999999999999"], + [1696410840, "1007.9999999999999"], + [1696410855, "975.9999999999999"], + [1696410870, "975.9999999999999"], + [1696410885, "983.8888888888887"], + [1696410900, "984.3333333333333"], + [1696410915, "1000.111111111111"], + [1696410930, "1008.3601541927952"], + [1696410945, "1055.7777777777776"], + [1696410960, "1024.2222222222222"], + [1696410975, "1031.3065986813012"], + [1696410990, "999.6252784577467"], + [1696411005, "1001.4444444444443"], + [1696411020, "1017.2222222222221"], + [1696411035, "1001.4901341155481"], + [1696411050, "1039.1111111111109"], + [1696411065, "891.5379166666665"], + [1696411080, "585.0656944444444"], + [1696411095, "202.66666666666663"], + [1696411110, "0"], + [1696411125, "0"], + [1696411140, "0"], + [1696411155, "0"], + [1696411170, "0"], + [1696411185, "0"], + [1696411200, "0"], + [1696411215, "0"], + [1696411230, "0"], + [1696411245, "0"], + [1696411260, "0"], + [1696411275, "0"], + [1696411290, "0"], + [1696411305, "0"], + [1696411320, "0"], + [1696411335, "0"], + [1696411350, "0"], + [1696411365, "0"], + [1696411380, "0"], + [1696411395, "151.44444444444443"], + [1696411410, "504.4579166666666"], + [1696411425, "849.5969444444444"], + [1696411440, "1059.8840277777776"], + [1696411455, "1093.8888888888887"], + [1696411470, "1071.1111111111109"], + [1696411485, "1046.5555555555554"], + [1696411500, "1046.111111111111"], + [1696411515, "1045.6666666666665"], + [1696411530, "1038.2222222222222"], + [1696411545, "1022.8888888888888"], + [1696411560, "1048.7521151030826"], + [1696411575, "1049.2222222222222"], + [1696411590, "1055.7777777777776"], + [1696411605, "1006.692337326547"], + [1696411620, "1021.5482225481336"], + [1696411635, "1014.9999999999999"], + [1696411650, "1053.9999999999998"], + [1696411665, "1039.1184447703847"], + [1696411680, "1054.8888888888887"], + [1696411695, "1039.9999999999998"], + [1696411710, "1047.4444444444443"], + [1696411725, "1016.7497000133326"], + [1696411740, "1009.3333333333333"], + [1696411755, "1002.7777777777776"], + [1696411770, "1033.0280802603572"], + [1696411785, "1063.2056191287388"], + [1696411800, "1077.2222222222222"], + [1696411815, "1069.7777777777776"], + [1696411830, "1046.4651500995017"], + [1696411845, "1022.8888888888888"], + [1696411860, "1021.9999999999999"], + [1696411875, "1037.8754104717032"], + [1696411890, "1029.8888888888887"], + [1696411905, "1030.3333333333333"], + [1696411920, "1014.111111111111"], + [1696411935, "1054"], + [1696411950, "984.3333333333333"], + [1696411965, "984.3333333333333"], + [1696411980, "991.7217037497902"], + [1696411995, "1054"], + [1696412010, "1022.8888888888887"], + [1696412025, "984.3893383115535"], + [1696412040, "1016.7777777777776"], + [1696412055, "1056.2222222222222"], + [1696412070, "1056.6666666666665"], + [1696412085, "1032.5555555555554"], + [1696412100, "1016.2912176225288"], + [1696412115, "1023.7777777777776"], + [1696412130, "991.3137022554014"], + [1696412145, "992.264284285619"], + [1696412160, "1007.9999999999999"], + [1696412175, "1015.9098506401136"], + [1696412190, "1016.3228552523725"], + [1696412205, "991.7777777777776"], + [1696412220, "1030.941951725159"], + [1696412235, "1046.1194476546061"], + [1696412250, "1031.2222222222222"], + [1696412265, "984.613457833111"], + [1696412280, "983.8888888888887"], + [1696412295, "991.7777777777776"], + [1696412310, "1014.9999999999999"], + [1696412325, "1022.4444444444443"], + [1696412340, "1029.4444444444443"], + [1696412355, "1021.5555555555554"], + [1696412370, "1029.8888888888887"], + [1696412385, "1038.2222222222222"], + [1696412400, "1014.5555555555554"], + [1696412415, "992.2222222222222"], + [1696412430, "1000.1037781036893"], + [1696412445, "1016.3333333333333"], + [1696412460, "1061.8888888888887"], + [1696412475, "1045.6740003259401"], + [1696412490, "1084.6666666666665"], + [1696412505, "1053.5555555555554"], + [1696412520, "1093.4444444444443"], + [1696412535, "1077.6666666666665"], + [1696412550, "1048.3333333333333"], + [1696412565, "1009.3333333333333"], + [1696412580, "1001.8888888888888"], + [1696412595, "1007.9999999999999"] + ], + "name": "request_throughput" + } + ], + "response_size": [ + { + "labels": {}, + "datapoints": [ + [1696410795, "1741.1180124223602"], + [1696410810, "1730.1226993865032"], + [1696410825, "1732.3148148148143"], + [1696410840, "1737.9320987654323"], + [1696410855, "1755.7278481012659"], + [1696410870, "1736.6139240506334"], + [1696410885, "1734.4025157232707"], + [1696410900, "1740.1257861635222"], + [1696410915, "1720.8695652173915"], + [1696410930, "1731.7680297986026"], + [1696410945, "1698.6607142857142"], + [1696410960, "1746.25"], + [1696410975, "1730.4287021168816"], + [1696410990, "1733.7618095304606"], + [1696411005, "1734.8447204968948"], + [1696411020, "1717.484662576687"], + [1696411035, "1761.7615043666383"], + [1696411050, "1715.2710843373495"], + [1696411065, "1589.3159733643906"], + [1696411080, "1608.4669942204355"], + [1696411095, "413.21428571428567"], + [1696411110, "NaN"], + [1696411125, "NaN"], + [1696411140, "NaN"], + [1696411155, "NaN"], + [1696411170, "NaN"], + [1696411185, "NaN"], + [1696411200, "NaN"], + [1696411215, "NaN"], + [1696411230, "NaN"], + [1696411245, "NaN"], + [1696411260, "NaN"], + [1696411275, "NaN"], + [1696411290, "NaN"], + [1696411305, "NaN"], + [1696411320, "NaN"], + [1696411335, "NaN"], + [1696411350, "NaN"], + [1696411365, "NaN"], + [1696411380, "NaN"], + [1696411395, "421.1904761904761"], + [1696411410, "1518.7230036548897"], + [1696411425, "1486.5537839191707"], + [1696411440, "1606.3605924791486"], + [1696411455, "1686.7630057803472"], + [1696411470, "1712.8529411764707"], + [1696411485, "1726.3473053892217"], + [1696411500, "1738.6826347305391"], + [1696411515, "1712.6946107784431"], + [1696411530, "1715.5722891566263"], + [1696411545, "1707.9573170731705"], + [1696411560, "1713.6845952569065"], + [1696411575, "1720.3592814371257"], + [1696411590, "1717.7678571428576"], + [1696411605, "1744.7478495869427"], + [1696411620, "1713.7690722169127"], + [1696411635, "1741.9631901840492"], + [1696411650, "1717.1130952380952"], + [1696411665, "1728.747379767859"], + [1696411680, "1704.7321428571427"], + [1696411695, "1716.6566265060244"], + [1696411710, "1725.02994011976"], + [1696411725, "1749.1722864139313"], + [1696411740, "1745.2160493827162"], + [1696411755, "1742.2360248447203"], + [1696411770, "1718.0911398883477"], + [1696411785, "1708.4208953752093"], + [1696411800, "1697.719298245614"], + [1696411815, "1718.6176470588232"], + [1696411830, "1719.549525159515"], + [1696411845, "1732.9573170731708"], + [1696411860, "1714.7865853658536"], + [1696411875, "1715.8324995142395"], + [1696411890, "1724.1818181818182"], + [1696411905, "1723.6363636363637"], + [1696411920, "1741.4723926380368"], + [1696411935, "1705.267857142857"], + [1696411950, "1760.6289308176104"], + [1696411965, "1734.2767295597484"], + [1696411980, "1743.7822556900564"], + [1696411995, "1698.8392857142856"], + [1696412010, "1739.4817073170734"], + [1696412025, "1754.401064247901"], + [1696412040, "1735.644171779141"], + [1696412055, "1692.2321428571427"], + [1696412070, "1710.267857142857"], + [1696412085, "1717.6969696969695"], + [1696412100, "1736.5493995475795"], + [1696412115, "1726.4939024390244"], + [1696412130, "1751.554992190156"], + [1696412145, "1744.1711320746856"], + [1696412160, "1726.018518518519"], + [1696412175, "1728.9937953174717"], + [1696412190, "1729.5215082845393"], + [1696412205, "1744.40625"], + [1696412220, "1705.8735608967884"], + [1696412235, "1713.9425847508378"], + [1696412250, "1730.8484848484852"], + [1696412265, "1753.5145842244906"], + [1696412280, "1752.7044025157236"], + [1696412295, "1731.7187500000005"], + [1696412310, "1729.20245398773"], + [1696412325, "1708.2012195121954"], + [1696412340, "1730.5454545454545"], + [1696412355, "1721.3719512195123"], + [1696412370, "1731.151515151515"], + [1696412385, "1709.5481927710841"], + [1696412400, "1741.963190184049"], + [1696412415, "1749.9062500000002"], + [1696412430, "1733.560322153935"], + [1696412445, "1717.300613496933"], + [1696412460, "1690.059171597633"], + [1696412475, "1727.168339198239"], + [1696412490, "1707.5290697674416"], + [1696412505, "1736.3392857142853"], + [1696412520, "1686.300578034682"], + [1696412535, "1709.7660818713448"], + [1696412550, "1730.8982035928145"], + [1696412565, "1751.2654320987658"], + [1696412580, "1740.6832298136644"], + [1696412595, "1713.9197530864194"] + ], + "stat": "avg", + "name": "response_size" + } + ], + "response_throughput": [ + { + "labels": {}, + "datapoints": [ + [1696410795, "6229.333333333332"], + [1696410810, "6266.888888888888"], + [1696410825, "6236.333333333332"], + [1696410840, "6256.555555555555"], + [1696410855, "6164.555555555555"], + [1696410870, "6097.444444444445"], + [1696410885, "6128.222222222222"], + [1696410900, "6148.444444444444"], + [1696410915, "6156.888888888889"], + [1696410930, "6233.480233559637"], + [1696410945, "6341.666666666666"], + [1696410960, "6364.11111111111"], + [1696410975, "6345.790134710828"], + [1696410990, "6202.749952609931"], + [1696411005, "6206.888888888889"], + [1696411020, "6221.11111111111"], + [1696411035, "6303.480916802658"], + [1696411050, "6327.444444444443"], + [1696411065, "4965.773611111112"], + [1696411080, "3300.976388888888"], + [1696411095, "257.1111111111111"], + [1696411110, "0"], + [1696411125, "0"], + [1696411140, "0"], + [1696411155, "0"], + [1696411170, "0"], + [1696411185, "0"], + [1696411200, "0"], + [1696411215, "0"], + [1696411230, "0"], + [1696411245, "0"], + [1696411260, "0"], + [1696411275, "0"], + [1696411290, "0"], + [1696411305, "0"], + [1696411320, "0"], + [1696411335, "0"], + [1696411350, "0"], + [1696411365, "0"], + [1696411380, "0"], + [1696411395, "196.55555555555551"], + [1696411410, "2666.3291666666664"], + [1696411425, "4368.940277777778"], + [1696411440, "5943.668055555556"], + [1696411455, "6484.666666666667"], + [1696411470, "6470.777777777777"], + [1696411485, "6406.666666666667"], + [1696411500, "6452.444444444444"], + [1696411515, "6355.999999999999"], + [1696411530, "6328.555555555555"], + [1696411545, "6224.555555555555"], + [1696411560, "6359.4074106990765"], + [1696411575, "6384.444444444444"], + [1696411590, "6413"], + [1696411605, "6281.363705959198"], + [1696411620, "6245.660010172388"], + [1696411635, "6309.7777777777765"], + [1696411650, "6410.555555555556"], + [1696411665, "6377.2338375532745"], + [1696411680, "6364.333333333333"], + [1696411695, "6332.555555555556"], + [1696411710, "6401.7777777777765"], + [1696411725, "6335.735251272784"], + [1696411740, "6282.7777777777765"], + [1696411755, "6233.333333333332"], + [1696411770, "6299.820238924198"], + [1696411785, "6415.989445617153"], + [1696411800, "6451.333333333332"], + [1696411815, "6492.555555555555"], + [1696411830, "6380.637153645969"], + [1696411845, "6315.666666666666"], + [1696411860, "6249.444444444443"], + [1696411875, "6330.352006243607"], + [1696411890, "6321.999999999999"], + [1696411905, "6319.999999999999"], + [1696411920, "6307.999999999999"], + [1696411935, "6366.333333333333"], + [1696411950, "6220.888888888889"], + [1696411965, "6127.777777777777"], + [1696411980, "6199.80470871725"], + [1696411995, "6342.333333333333"], + [1696412010, "6339.444444444444"], + [1696412025, "6199.19568159145"], + [1696412040, "6286.888888888888"], + [1696412055, "6317.666666666665"], + [1696412070, "6384.999999999999"], + [1696412085, "6298.222222222221"], + [1696412100, "6289.936300542926"], + [1696412115, "6292.11111111111"], + [1696412130, "6227.6542244341745"], + [1696412145, "6201.7299301434905"], + [1696412160, "6213.666666666667"], + [1696412175, "6262.902224593014"], + [1696412190, "6264.660000592539"], + [1696412205, "6202.333333333333"], + [1696412220, "6253.354064860062"], + [1696412235, "6360.672000474116"], + [1696412250, "6346.444444444444"], + [1696412265, "6197.310903611481"], + [1696412280, "6192.888888888889"], + [1696412295, "6157.222222222223"], + [1696412310, "6263.555555555555"], + [1696412325, "6225.444444444444"], + [1696412340, "6345.333333333332"], + [1696412355, "6273.444444444444"], + [1696412370, "6347.555555555555"], + [1696412385, "6306.333333333332"], + [1696412400, "6309.7777777777765"], + [1696412415, "6221.888888888889"], + [1696412430, "6202.21655333837"], + [1696412445, "6220.444444444444"], + [1696412460, "6347.11111111111"], + [1696412475, "6409.790380807049"], + [1696412490, "6526.555555555555"], + [1696412505, "6482.333333333332"], + [1696412520, "6482.888888888889"], + [1696412535, "6497.1111111111095"], + [1696412550, "6423.555555555555"], + [1696412565, "6304.555555555555"], + [1696412580, "6227.7777777777765"], + [1696412595, "6170.11111111111"] + ], + "name": "response_throughput" + } + ], + "tcp_closed": null, + "tcp_opened": null, + "tcp_received": null, + "tcp_sent": null +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/inbound/metrics_inbound_3600.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/inbound/metrics_inbound_3600.json new file mode 100644 index 0000000000..9e2895fe2f --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/inbound/metrics_inbound_3600.json @@ -0,0 +1,32 @@ +{ + "request_count": [ + { + "labels": {}, + "datapoints": [ + [1697021640, "2.6002743899782135"], + [1697022000, "3.634782608695652"], + [1697022360, "3.678260869565217"], + [1697022720, "3.6753623188405795"], + [1697023080, "3.7101449275362324"], + [1697023440, "3.6318840579710145"], + [1697023800, "3.6811594202898554"] + ], + "name": "request_count" + } + ], + "request_error_count": [ + { + "labels": {}, + "datapoints": [ + [1697021640, "0"], + [1697022000, "0"], + [1697022360, "0"], + [1697022720, "0"], + [1697023080, "0"], + [1697023440, "0"], + [1697023800, "0"] + ], + "name": "request_error_count" + } + ] +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/inbound/metrics_inbound_60.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/inbound/metrics_inbound_60.json new file mode 100644 index 0000000000..5a7ba4ce06 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/inbound/metrics_inbound_60.json @@ -0,0 +1,24 @@ +{ + "request_count": [ + { + "labels": {}, + "datapoints": [ + [1697023800, "3.466666666666667"], + [1697023830, "3.399800039992002"], + [1697023860, "3.2664801740597667"] + ], + "name": "request_count" + } + ], + "request_error_count": [ + { + "labels": {}, + "datapoints": [ + [1697023800, "0"], + [1697023830, "0"], + [1697023860, "0"] + ], + "name": "request_error_count" + } + ] +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/inbound/metrics_inbound_600.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/inbound/metrics_inbound_600.json new file mode 100644 index 0000000000..c53996c283 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/inbound/metrics_inbound_600.json @@ -0,0 +1,40 @@ +{ + "request_count": [ + { + "labels": {}, + "datapoints": [ + [1697023680, "3.399866684442075"], + [1697023710, "3.7333333333333334"], + [1697023740, "3.9327959496369327"], + [1697023770, "3.6666666666666665"], + [1697023800, "3.466666666666667"], + [1697023830, "3.399800039992002"], + [1697023860, "3.2664801740597667"], + [1697023890, "3.533333333333333"], + [1697023920, "3.866666666666667"], + [1697023950, "3.733333333333334"], + [1697023980, "3.466666666666667"] + ], + "name": "request_count" + } + ], + "request_error_count": [ + { + "labels": {}, + "datapoints": [ + [1697023680, "0"], + [1697023710, "0"], + [1697023740, "0"], + [1697023770, "0"], + [1697023800, "0"], + [1697023830, "0"], + [1697023860, "0"], + [1697023890, "0"], + [1697023920, "0"], + [1697023950, "0"], + [1697023980, "0"] + ], + "name": "request_error_count" + } + ] +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/index.ts b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/index.ts new file mode 100644 index 0000000000..ccfc69cd36 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/index.ts @@ -0,0 +1,51 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ + +import inbound60 from './inbound/metrics_inbound_60.json'; +import inbound120 from './inbound/metrics_inbound_120.json'; +import inbound300 from './inbound/metrics_inbound_300.json'; +import inbound600 from './inbound/metrics_inbound_600.json'; +import inbound1800 from './inbound/metrics_inbound_1800.json'; +import inbound3600 from './inbound/metrics_inbound_3600.json'; +/* Outbound Metrics */ + +import outbound60 from './outbound/metrics_outbound_60.json'; +import outbound120 from './outbound/metrics_outbound_120.json'; +import outbound300 from './outbound/metrics_outbound_300.json'; +import outbound600 from './outbound/metrics_outbound_600.json'; +import outbound1800 from './outbound/metrics_outbound_1800.json'; +import outbound3600 from './outbound/metrics_outbound_3600.json'; + +export const bookInfoMetrics = { + inbound: { + 60: inbound60, + 120: inbound120, + 300: inbound300, + 600: inbound600, + 1800: inbound1800, + 3600: inbound3600, + }, + outbound: { + 60: outbound60, + 120: outbound120, + 300: outbound300, + 600: outbound600, + 1800: outbound1800, + 3600: outbound3600, + }, +}; + +export default bookInfoMetrics; diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/outbound/metrics_outbound_120.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/outbound/metrics_outbound_120.json new file mode 100644 index 0000000000..3a2f963923 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/outbound/metrics_outbound_120.json @@ -0,0 +1,28 @@ +{ + "request_count": [ + { + "labels": {}, + "datapoints": [ + [1697023830, "2.4"], + [1697023860, "2.2664801740597667"], + [1697023890, "2.533333333333333"], + [1697023920, "2.8666666666666667"], + [1697023950, "2.733333333333334"] + ], + "name": "request_count" + } + ], + "request_error_count": [ + { + "labels": {}, + "datapoints": [ + [1697023830, "0"], + [1697023860, "0"], + [1697023890, "0"], + [1697023920, "0"], + [1697023950, "0"] + ], + "name": "request_error_count" + } + ] +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/outbound/metrics_outbound_1800.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/outbound/metrics_outbound_1800.json new file mode 100644 index 0000000000..1f6372ba41 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/outbound/metrics_outbound_1800.json @@ -0,0 +1,40 @@ +{ + "request_count": [ + { + "labels": {}, + "datapoints": [ + [1697022180, "2.660592434003259"], + [1697022360, "2.6727272727272724"], + [1697022540, "2.66060606060606"], + [1697022720, "2.6666666666666665"], + [1697022900, "2.66060606060606"], + [1697023080, "2.751515151515151"], + [1697023260, "2.642218224270407"], + [1697023440, "2.6424242424242417"], + [1697023620, "2.7272727272727266"], + [1697023800, "2.636363636363636"], + [1697023980, "2.6363636363636362"] + ], + "name": "request_count" + } + ], + "request_error_count": [ + { + "labels": {}, + "datapoints": [ + [1697022180, "0"], + [1697022360, "0"], + [1697022540, "0"], + [1697022720, "0"], + [1697022900, "0"], + [1697023080, "0"], + [1697023260, "0"], + [1697023440, "0"], + [1697023620, "0"], + [1697023800, "0"], + [1697023980, "0"] + ], + "name": "request_error_count" + } + ] +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/outbound/metrics_outbound_300.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/outbound/metrics_outbound_300.json new file mode 100644 index 0000000000..e5384d2042 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/outbound/metrics_outbound_300.json @@ -0,0 +1,40 @@ +{ + "request_count": [ + { + "labels": {}, + "datapoints": [ + [1697023680, "2.4"], + [1697023710, "2.7333333333333334"], + [1697023740, "2.9327959496369327"], + [1697023770, "2.6666666666666665"], + [1697023800, "2.466666666666667"], + [1697023830, "2.4"], + [1697023860, "2.2664801740597667"], + [1697023890, "2.533333333333333"], + [1697023920, "2.8666666666666667"], + [1697023950, "2.733333333333334"], + [1697023980, "2.466666666666667"] + ], + "name": "request_count" + } + ], + "request_error_count": [ + { + "labels": {}, + "datapoints": [ + [1697023680, "0"], + [1697023710, "0"], + [1697023740, "0"], + [1697023770, "0"], + [1697023800, "0"], + [1697023830, "0"], + [1697023860, "0"], + [1697023890, "0"], + [1697023920, "0"], + [1697023950, "0"], + [1697023980, "0"] + ], + "name": "request_error_count" + } + ] +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/outbound/metrics_outbound_3600.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/outbound/metrics_outbound_3600.json new file mode 100644 index 0000000000..b15fb136cb --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/outbound/metrics_outbound_3600.json @@ -0,0 +1,32 @@ +{ + "request_count": [ + { + "labels": {}, + "datapoints": [ + [1697021640, "1.8706855010893246"], + [1697022000, "2.634782608695652"], + [1697022360, "2.678260869565217"], + [1697022720, "2.6753623188405795"], + [1697023080, "2.7101449275362324"], + [1697023440, "2.631884057971014"], + [1697023800, "2.6811594202898554"] + ], + "name": "request_count" + } + ], + "request_error_count": [ + { + "labels": {}, + "datapoints": [ + [1697021640, "0"], + [1697022000, "0"], + [1697022360, "0"], + [1697022720, "0"], + [1697023080, "0"], + [1697023440, "0"], + [1697023800, "0"] + ], + "name": "request_error_count" + } + ] +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/outbound/metrics_outbound_60.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/outbound/metrics_outbound_60.json new file mode 100644 index 0000000000..d10d586b91 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/outbound/metrics_outbound_60.json @@ -0,0 +1,24 @@ +{ + "request_count": [ + { + "labels": {}, + "datapoints": [ + [1697023830, "2.4"], + [1697023860, "2.2664801740597667"], + [1697023890, "2.533333333333333"] + ], + "name": "request_count" + } + ], + "request_error_count": [ + { + "labels": {}, + "datapoints": [ + [1697023830, "0"], + [1697023860, "0"], + [1697023890, "0"] + ], + "name": "request_error_count" + } + ] +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/outbound/metrics_outbound_600.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/outbound/metrics_outbound_600.json new file mode 100644 index 0000000000..2ce8ed7f51 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/metrics/outbound/metrics_outbound_600.json @@ -0,0 +1,144 @@ +{ + "grpc_received": null, + "grpc_sent": null, + "request_count": [ + { + "labels": {}, + "datapoints": [ + [1697023260, "2.5770227926554257"], + [1697023320, "2.688875062342908"], + [1697023380, "2.5334024768184116"], + [1697023440, "2.644444444444444"], + [1697023500, "2.888888888888889"], + [1697023560, "2.8222222222222224"], + [1697023620, "2.577792593580313"], + [1697023680, "2.511111111111111"], + [1697023740, "2.799815353777718"], + [1697023800, "2.5777777777777775"], + [1697023860, "2.422111639341834"] + ], + "name": "request_count" + } + ], + "request_duration_millis": [ + { + "labels": {}, + "datapoints": [ + [1697023260, "0.8984028601338787"], + [1697023320, "0.7599175779653324"], + [1697023380, "1.1891073830431969"], + [1697023440, "0.8486956521739024"], + [1697023500, "1.3678294573643095"], + [1697023560, "1.3087301587301081"], + [1697023620, "1.0917565417025843"], + [1697023680, "1.2628205128205447"], + [1697023740, "1.460967924929601"], + [1697023800, "1.292016806722755"], + [1697023860, "1.284750805346726"] + ], + "stat": "avg", + "name": "request_duration_millis" + } + ], + "request_error_count": [ + { + "labels": {}, + "datapoints": [ + [1697023260, "0"], + [1697023320, "0"], + [1697023380, "0"], + [1697023440, "0"], + [1697023500, "0"], + [1697023560, "0"], + [1697023620, "0"], + [1697023680, "0"], + [1697023740, "0"], + [1697023800, "0"], + [1697023860, "0"] + ], + "name": "request_error_count" + } + ], + "request_size": [ + { + "labels": {}, + "datapoints": [ + [1697023260, "1321.2978379025685"], + [1697023320, "1318.96540098226"], + [1697023380, "1321.3024875544975"], + [1697023440, "1319.5652173913045"], + [1697023500, "1320.5426356589146"], + [1697023560, "1319.047619047619"], + [1697023620, "1321.30451418782"], + [1697023680, "1321.7948717948716"], + [1697023740, "1321.778861892338"], + [1697023800, "1321.4285714285716"], + [1697023860, "1327.7766258130607"] + ], + "stat": "avg", + "name": "request_size" + } + ], + "request_throughput": [ + { + "labels": {}, + "datapoints": [ + [1697023260, "3375.6524699856404"], + [1697023320, "3399.9827661980453"], + [1697023380, "3376.750009260288"], + [1697023440, "3372.222222222222"], + [1697023500, "3785.555555555555"], + [1697023560, "3693.333333333333"], + [1697023620, "3376.686668000089"], + [1697023680, "3436.666666666666"], + [1697023740, "3641.998202908425"], + [1697023800, "3494.4444444444443"], + [1697023860, "3186.4987189170774"] + ], + "name": "request_throughput" + } + ], + "response_size": [ + { + "labels": {}, + "datapoints": [ + [1697023260, "1238.7218631817639"], + [1697023320, "1226.7230258729253"], + [1697023380, "1238.6907292600722"], + [1697023440, "1224.782608695652"], + [1697023500, "1233.720930232558"], + [1697023560, "1231.7460317460318"], + [1697023620, "1235.218636496714"], + [1697023680, "1249.1452991452988"], + [1697023740, "1234.6894311611843"], + [1697023800, "1239.075630252101"], + [1697023860, "1236.10002345071"] + ], + "stat": "avg", + "name": "response_size" + } + ], + "response_throughput": [ + { + "labels": {}, + "datapoints": [ + [1697023260, "3164.687322664851"], + [1697023320, "3162.203605765669"], + [1697023380, "3165.625563334197"], + [1697023440, "3129.9999999999995"], + [1697023500, "3536.666666666666"], + [1697023560, "3448.8888888888887"], + [1697023620, "3156.688149580342"], + [1697023680, "3247.777777777777"], + [1697023740, "3402.0340459986323"], + [1697023800, "3276.6666666666665"], + [1697023860, "2966.4862783430335"] + ], + "name": "response_throughput" + } + ], + "tcp_closed": null, + "tcp_opened": null, + "tcp_received": null, + "tcp_sent": null +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/services.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/services.json new file mode 100644 index 0000000000..47bc31323f --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/services.json @@ -0,0 +1,188 @@ +{ + "namespace": { + "name": "bookinfo", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "services": [ + { + "name": "details", + "namespace": "bookinfo", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "details", + "service": "details" + }, + "selector": { + "app": "details" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": { + "http": { + "200": 1.0000222227160604 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "productpage", + "namespace": "bookinfo", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "productpage", + "service": "productpage" + }, + "selector": { + "app": "productpage" + }, + "istioReferences": [ + { + "objectType": "VirtualService", + "name": "bookinfo", + "namespace": "bookinfo", + "cluster": "" + }, + { + "objectType": "Gateway", + "name": "bookinfo-gateway", + "namespace": "bookinfo", + "cluster": "" + } + ], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": { + "http": { + "200": 0.9999999999999999 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "ratings", + "namespace": "bookinfo", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "ratings", + "service": "ratings" + }, + "selector": { + "app": "ratings" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": { + "http": { + "200": 0.711111111111111 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "reviews", + "namespace": "bookinfo", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "reviews", + "service": "reviews" + }, + "selector": { + "app": "reviews" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": { + "http": { + "200": 0.9999999999999999 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + } + } + ], + "validations": { + "service": { + "details.bookinfo": { + "name": "details", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + }, + "productpage.bookinfo": { + "name": "productpage", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + }, + "ratings.bookinfo": { + "name": "ratings", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + }, + "reviews.bookinfo": { + "name": "reviews", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + } + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/services/details.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/services/details.json new file mode 100644 index 0000000000..fbd758b16f --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/services/details.json @@ -0,0 +1,352 @@ +{ + "cluster": "Kubernetes", + "destinationRules": [], + "endpoints": [ + { + "addresses": [ + { + "kind": "Pod", + "name": "details-v1-698d88b-djqqc", + "ip": "10.244.0.19", + "port": 0 + } + ], + "ports": [ + { + "name": "http", + "protocol": "TCP", + "port": 9080 + } + ] + } + ], + "istioPermissions": { + "create": true, + "update": true, + "delete": true + }, + "istioSidecar": true, + "k8sHTTPRoutes": [], + "k8sReferenceGrants": null, + "service": { + "name": "details", + "createdAt": "2024-02-26T09:51:07Z", + "resourceVersion": "847", + "namespace": { + "name": "bookinfo", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "labels": { + "app": "details", + "service": "details" + }, + "selectors": { + "app": "details" + }, + "type": "ClusterIP", + "ip": "10.109.148.19", + "ports": [ + { + "name": "http", + "protocol": "TCP", + "port": 9080 + } + ], + "externalName": "", + "annotations": { + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"details\",\"service\":\"details\"},\"name\":\"details\",\"namespace\":\"bookinfo\"},\"spec\":{\"ports\":[{\"name\":\"http\",\"port\":9080}],\"selector\":{\"app\":\"details\"}}}\n" + }, + "healthAnnotations": {}, + "additionalDetails": [] + }, + "serviceEntries": null, + "virtualServices": [], + "workloads": [ + { + "name": "details-v1", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-26T09:51:07Z", + "resourceVersion": "24565", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "details", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"details\",\"version\":\"v1\"},\"name\":\"details-v1\",\"namespace\":\"bookinfo\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"details\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"labels\":{\"app\":\"details\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"image\":\"docker.io/istio/examples-bookinfo-details-v1:1.18.0\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"details\",\"ports\":[{\"containerPort\":9080}]}],\"serviceAccountName\":\"bookinfo-details\"}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["bookinfo-details"], + "health": { + "workloadStatus": null, + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "health": { + "requests": { + "inbound": { + "http": { + "200": 0.9999999999999999 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + }, + "namespaceMTLS": { + "status": "MTLS_NOT_ENABLED", + "autoMTLSEnabled": true, + "minTLS": "" + }, + "subServices": [ + { + "name": "details", + "namespace": "", + "istioSidecar": false, + "cluster": "", + "istioAmbient": false, + "appLabel": false, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": null, + "ports": { + "http": 9080 + }, + "labels": null, + "selector": null, + "istioReferences": null, + "kialiWizard": "", + "serviceRegistry": "", + "health": { + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": true, + "checks": [], + "references": null + } + }, + "service": { + "details.bookinfo": { + "name": "details", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "cars-v1.travel-agency": { + "name": "cars-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "control.travel-control": { + "name": "control", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "details-v1.bookinfo": { + "name": "details-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "discounts-v1.travel-agency": { + "name": "discounts-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "flights-v1.travel-agency": { + "name": "flights-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "grafana.istio-system": { + "name": "grafana", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "hotels-v1.travel-agency": { + "name": "hotels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "insurances-v1.travel-agency": { + "name": "insurances-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-egressgateway.istio-system": { + "name": "istio-egressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-ingressgateway.istio-system": { + "name": "istio-ingressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istiod.istio-system": { + "name": "istiod", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "jaeger.istio-system": { + "name": "jaeger", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali-traffic-generator.bookinfo": { + "name": "kiali-traffic-generator", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali.istio-system": { + "name": "kiali", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "mysqldb-v1.travel-agency": { + "name": "mysqldb-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "productpage-v1.bookinfo": { + "name": "productpage-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "prometheus.istio-system": { + "name": "prometheus", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "ratings-v1.bookinfo": { + "name": "ratings-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v1.bookinfo": { + "name": "reviews-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v2.bookinfo": { + "name": "reviews-v2", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v3.bookinfo": { + "name": "reviews-v3", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels-v1.travel-agency": { + "name": "travels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels.travel-portal": { + "name": "travels", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "viaggi.travel-portal": { + "name": "viaggi", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "voyages.travel-portal": { + "name": "voyages", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/services/productpage.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/services/productpage.json new file mode 100644 index 0000000000..14da15f403 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/services/productpage.json @@ -0,0 +1,437 @@ +{ + "cluster": "Kubernetes", + "destinationRules": [], + "endpoints": [ + { + "addresses": [ + { + "kind": "Pod", + "name": "productpage-v1-675fc69cf-vv5wr", + "ip": "10.244.0.21", + "port": 0 + } + ], + "ports": [ + { + "name": "http", + "protocol": "TCP", + "port": 9080 + } + ] + } + ], + "istioPermissions": { + "create": true, + "update": true, + "delete": true + }, + "istioSidecar": true, + "k8sHTTPRoutes": [], + "k8sReferenceGrants": null, + "service": { + "name": "productpage", + "createdAt": "2024-02-26T09:51:07Z", + "resourceVersion": "912", + "namespace": { + "name": "bookinfo", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "labels": { + "app": "productpage", + "service": "productpage" + }, + "selectors": { + "app": "productpage" + }, + "type": "ClusterIP", + "ip": "10.110.161.39", + "ports": [ + { + "name": "http", + "protocol": "TCP", + "port": 9080 + } + ], + "externalName": "", + "annotations": { + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"productpage\",\"service\":\"productpage\"},\"name\":\"productpage\",\"namespace\":\"bookinfo\"},\"spec\":{\"ports\":[{\"name\":\"http\",\"port\":9080}],\"selector\":{\"app\":\"productpage\"}}}\n" + }, + "healthAnnotations": {}, + "additionalDetails": [] + }, + "serviceEntries": null, + "virtualServices": [ + { + "kind": "VirtualService", + "apiVersion": "networking.istio.io/v1beta1", + "metadata": { + "name": "bookinfo", + "namespace": "bookinfo", + "uid": "e634070b-10b5-4f92-b3da-3c29a953b1ca", + "resourceVersion": "943", + "generation": 1, + "creationTimestamp": "2024-02-26T09:51:07Z", + "annotations": { + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"networking.istio.io/v1alpha3\",\"kind\":\"VirtualService\",\"metadata\":{\"annotations\":{},\"name\":\"bookinfo\",\"namespace\":\"bookinfo\"},\"spec\":{\"gateways\":[\"bookinfo-gateway\"],\"hosts\":[\"*\"],\"http\":[{\"match\":[{\"uri\":{\"exact\":\"/productpage\"}},{\"uri\":{\"prefix\":\"/static\"}},{\"uri\":{\"exact\":\"/login\"}},{\"uri\":{\"exact\":\"/logout\"}},{\"uri\":{\"prefix\":\"/api/v1/products\"}}],\"route\":[{\"destination\":{\"host\":\"productpage\",\"port\":{\"number\":9080}}}]}]}}\n" + }, + "managedFields": [ + { + "manager": "kubectl-client-side-apply", + "operation": "Update", + "apiVersion": "networking.istio.io/v1alpha3", + "time": "2024-02-26T09:51:07Z", + "fieldsType": "FieldsV1", + "fieldsV1": { + "f:metadata": { + "f:annotations": { + ".": {}, + "f:kubectl.kubernetes.io/last-applied-configuration": {} + } + }, + "f:spec": { + ".": {}, + "f:gateways": {}, + "f:hosts": {}, + "f:http": {} + } + } + } + ] + }, + "spec": { + "hosts": ["*"], + "gateways": ["bookinfo-gateway"], + "http": [ + { + "match": [ + { + "uri": { + "exact": "/productpage" + } + }, + { + "uri": { + "prefix": "/static" + } + }, + { + "uri": { + "exact": "/login" + } + }, + { + "uri": { + "exact": "/logout" + } + }, + { + "uri": { + "prefix": "/api/v1/products" + } + } + ], + "route": [ + { + "destination": { + "host": "productpage", + "port": { + "number": 9080 + } + } + } + ] + } + ] + }, + "status": {} + } + ], + "workloads": [ + { + "name": "productpage-v1", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-26T09:51:07Z", + "resourceVersion": "24559", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "productpage", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"productpage\",\"version\":\"v1\"},\"name\":\"productpage-v1\",\"namespace\":\"bookinfo\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"productpage\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"annotations\":{\"prometheus.io/path\":\"/metrics\",\"prometheus.io/port\":\"9080\",\"prometheus.io/scrape\":\"true\"},\"labels\":{\"app\":\"productpage\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"image\":\"docker.io/istio/examples-bookinfo-productpage-v1:1.18.0\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"productpage\",\"ports\":[{\"containerPort\":9080}],\"volumeMounts\":[{\"mountPath\":\"/tmp\",\"name\":\"tmp\"}]}],\"serviceAccountName\":\"bookinfo-productpage\",\"volumes\":[{\"emptyDir\":{},\"name\":\"tmp\"}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["bookinfo-productpage"], + "health": { + "workloadStatus": null, + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "health": { + "requests": { + "inbound": { + "http": { + "200": 0.9999999999999999 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + }, + "namespaceMTLS": { + "status": "MTLS_NOT_ENABLED", + "autoMTLSEnabled": true, + "minTLS": "" + }, + "subServices": [ + { + "name": "productpage", + "namespace": "", + "istioSidecar": false, + "cluster": "", + "istioAmbient": false, + "appLabel": false, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": null, + "ports": { + "http": 9080 + }, + "labels": null, + "selector": null, + "istioReferences": null, + "kialiWizard": "", + "serviceRegistry": "", + "health": { + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": true, + "checks": [], + "references": null + } + }, + "service": { + "productpage.bookinfo": { + "name": "productpage", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "cars-v1.travel-agency": { + "name": "cars-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "control.travel-control": { + "name": "control", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "details-v1.bookinfo": { + "name": "details-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "discounts-v1.travel-agency": { + "name": "discounts-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "flights-v1.travel-agency": { + "name": "flights-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "grafana.istio-system": { + "name": "grafana", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "hotels-v1.travel-agency": { + "name": "hotels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "insurances-v1.travel-agency": { + "name": "insurances-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-egressgateway.istio-system": { + "name": "istio-egressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-ingressgateway.istio-system": { + "name": "istio-ingressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istiod.istio-system": { + "name": "istiod", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "jaeger.istio-system": { + "name": "jaeger", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali-traffic-generator.bookinfo": { + "name": "kiali-traffic-generator", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali.istio-system": { + "name": "kiali", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "mysqldb-v1.travel-agency": { + "name": "mysqldb-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "productpage-v1.bookinfo": { + "name": "productpage-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "prometheus.istio-system": { + "name": "prometheus", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "ratings-v1.bookinfo": { + "name": "ratings-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v1.bookinfo": { + "name": "reviews-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v2.bookinfo": { + "name": "reviews-v2", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v3.bookinfo": { + "name": "reviews-v3", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels-v1.travel-agency": { + "name": "travels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels.travel-portal": { + "name": "travels", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "viaggi.travel-portal": { + "name": "viaggi", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "voyages.travel-portal": { + "name": "voyages", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/services/ratings.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/services/ratings.json new file mode 100644 index 0000000000..7cde00f392 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/services/ratings.json @@ -0,0 +1,352 @@ +{ + "cluster": "Kubernetes", + "destinationRules": [], + "endpoints": [ + { + "addresses": [ + { + "kind": "Pod", + "name": "ratings-v1-6484c4d9bb-wcq5g", + "ip": "10.244.0.24", + "port": 0 + } + ], + "ports": [ + { + "name": "http", + "protocol": "TCP", + "port": 9080 + } + ] + } + ], + "istioPermissions": { + "create": true, + "update": true, + "delete": true + }, + "istioSidecar": true, + "k8sHTTPRoutes": [], + "k8sReferenceGrants": null, + "service": { + "name": "ratings", + "createdAt": "2024-02-26T09:51:07Z", + "resourceVersion": "856", + "namespace": { + "name": "bookinfo", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "labels": { + "app": "ratings", + "service": "ratings" + }, + "selectors": { + "app": "ratings" + }, + "type": "ClusterIP", + "ip": "10.101.181.176", + "ports": [ + { + "name": "http", + "protocol": "TCP", + "port": 9080 + } + ], + "externalName": "", + "annotations": { + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"ratings\",\"service\":\"ratings\"},\"name\":\"ratings\",\"namespace\":\"bookinfo\"},\"spec\":{\"ports\":[{\"name\":\"http\",\"port\":9080}],\"selector\":{\"app\":\"ratings\"}}}\n" + }, + "healthAnnotations": {}, + "additionalDetails": [] + }, + "serviceEntries": null, + "virtualServices": [], + "workloads": [ + { + "name": "ratings-v1", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-26T09:51:07Z", + "resourceVersion": "24555", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "ratings", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"ratings\",\"version\":\"v1\"},\"name\":\"ratings-v1\",\"namespace\":\"bookinfo\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"ratings\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"labels\":{\"app\":\"ratings\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"image\":\"docker.io/istio/examples-bookinfo-ratings-v1:1.18.0\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"ratings\",\"ports\":[{\"containerPort\":9080}]}],\"serviceAccountName\":\"bookinfo-ratings\"}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["bookinfo-ratings"], + "health": { + "workloadStatus": null, + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "health": { + "requests": { + "inbound": { + "http": { + "200": 0.6666666666666665 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + }, + "namespaceMTLS": { + "status": "MTLS_NOT_ENABLED", + "autoMTLSEnabled": true, + "minTLS": "" + }, + "subServices": [ + { + "name": "ratings", + "namespace": "", + "istioSidecar": false, + "cluster": "", + "istioAmbient": false, + "appLabel": false, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": null, + "ports": { + "http": 9080 + }, + "labels": null, + "selector": null, + "istioReferences": null, + "kialiWizard": "", + "serviceRegistry": "", + "health": { + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": true, + "checks": [], + "references": null + } + }, + "service": { + "ratings.bookinfo": { + "name": "ratings", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "cars-v1.travel-agency": { + "name": "cars-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "control.travel-control": { + "name": "control", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "details-v1.bookinfo": { + "name": "details-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "discounts-v1.travel-agency": { + "name": "discounts-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "flights-v1.travel-agency": { + "name": "flights-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "grafana.istio-system": { + "name": "grafana", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "hotels-v1.travel-agency": { + "name": "hotels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "insurances-v1.travel-agency": { + "name": "insurances-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-egressgateway.istio-system": { + "name": "istio-egressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-ingressgateway.istio-system": { + "name": "istio-ingressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istiod.istio-system": { + "name": "istiod", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "jaeger.istio-system": { + "name": "jaeger", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali-traffic-generator.bookinfo": { + "name": "kiali-traffic-generator", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali.istio-system": { + "name": "kiali", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "mysqldb-v1.travel-agency": { + "name": "mysqldb-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "productpage-v1.bookinfo": { + "name": "productpage-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "prometheus.istio-system": { + "name": "prometheus", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "ratings-v1.bookinfo": { + "name": "ratings-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v1.bookinfo": { + "name": "reviews-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v2.bookinfo": { + "name": "reviews-v2", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v3.bookinfo": { + "name": "reviews-v3", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels-v1.travel-agency": { + "name": "travels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels.travel-portal": { + "name": "travels", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "viaggi.travel-portal": { + "name": "viaggi", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "voyages.travel-portal": { + "name": "voyages", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/services/reviews.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/services/reviews.json new file mode 100644 index 0000000000..4090ba1189 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/services/reviews.json @@ -0,0 +1,430 @@ +{ + "cluster": "Kubernetes", + "destinationRules": [], + "endpoints": [ + { + "addresses": [ + { + "kind": "Pod", + "name": "reviews-v3-5b9bd44f4-f2r28", + "ip": "10.244.0.18", + "port": 0 + }, + { + "kind": "Pod", + "name": "reviews-v2-5b667bcbf8-zxdws", + "ip": "10.244.0.25", + "port": 0 + }, + { + "kind": "Pod", + "name": "reviews-v1-5b5d6494f4-9rn4v", + "ip": "10.244.0.26", + "port": 0 + } + ], + "ports": [ + { + "name": "http", + "protocol": "TCP", + "port": 9080 + } + ] + } + ], + "istioPermissions": { + "create": true, + "update": true, + "delete": true + }, + "istioSidecar": true, + "k8sHTTPRoutes": [], + "k8sReferenceGrants": null, + "service": { + "name": "reviews", + "createdAt": "2024-02-26T09:51:07Z", + "resourceVersion": "875", + "namespace": { + "name": "bookinfo", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "labels": { + "app": "reviews", + "service": "reviews" + }, + "selectors": { + "app": "reviews" + }, + "type": "ClusterIP", + "ip": "10.99.45.111", + "ports": [ + { + "name": "http", + "protocol": "TCP", + "port": 9080 + } + ], + "externalName": "", + "annotations": { + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"reviews\",\"service\":\"reviews\"},\"name\":\"reviews\",\"namespace\":\"bookinfo\"},\"spec\":{\"ports\":[{\"name\":\"http\",\"port\":9080}],\"selector\":{\"app\":\"reviews\"}}}\n" + }, + "healthAnnotations": {}, + "additionalDetails": [] + }, + "serviceEntries": null, + "virtualServices": [], + "workloads": [ + { + "name": "reviews-v1", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-26T09:51:07Z", + "resourceVersion": "24571", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "reviews", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"reviews\",\"version\":\"v1\"},\"name\":\"reviews-v1\",\"namespace\":\"bookinfo\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"reviews\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"labels\":{\"app\":\"reviews\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"LOG_DIR\",\"value\":\"/tmp/logs\"}],\"image\":\"docker.io/istio/examples-bookinfo-reviews-v1:1.18.0\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"reviews\",\"ports\":[{\"containerPort\":9080}],\"volumeMounts\":[{\"mountPath\":\"/tmp\",\"name\":\"tmp\"},{\"mountPath\":\"/opt/ibm/wlp/output\",\"name\":\"wlp-output\"}]}],\"serviceAccountName\":\"bookinfo-reviews\",\"volumes\":[{\"emptyDir\":{},\"name\":\"wlp-output\"},{\"emptyDir\":{},\"name\":\"tmp\"}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["bookinfo-reviews"], + "health": { + "workloadStatus": null, + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + }, + { + "name": "reviews-v2", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-26T09:51:07Z", + "resourceVersion": "24577", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "reviews", + "version": "v2" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"reviews\",\"version\":\"v2\"},\"name\":\"reviews-v2\",\"namespace\":\"bookinfo\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"reviews\",\"version\":\"v2\"}},\"template\":{\"metadata\":{\"labels\":{\"app\":\"reviews\",\"version\":\"v2\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"LOG_DIR\",\"value\":\"/tmp/logs\"}],\"image\":\"docker.io/istio/examples-bookinfo-reviews-v2:1.18.0\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"reviews\",\"ports\":[{\"containerPort\":9080}],\"volumeMounts\":[{\"mountPath\":\"/tmp\",\"name\":\"tmp\"},{\"mountPath\":\"/opt/ibm/wlp/output\",\"name\":\"wlp-output\"}]}],\"serviceAccountName\":\"bookinfo-reviews\",\"volumes\":[{\"emptyDir\":{},\"name\":\"wlp-output\"},{\"emptyDir\":{},\"name\":\"tmp\"}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["bookinfo-reviews"], + "health": { + "workloadStatus": null, + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + }, + { + "name": "reviews-v3", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-26T09:51:07Z", + "resourceVersion": "24584", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "reviews", + "version": "v3" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"reviews\",\"version\":\"v3\"},\"name\":\"reviews-v3\",\"namespace\":\"bookinfo\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"reviews\",\"version\":\"v3\"}},\"template\":{\"metadata\":{\"labels\":{\"app\":\"reviews\",\"version\":\"v3\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"LOG_DIR\",\"value\":\"/tmp/logs\"}],\"image\":\"docker.io/istio/examples-bookinfo-reviews-v3:1.18.0\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"reviews\",\"ports\":[{\"containerPort\":9080}],\"volumeMounts\":[{\"mountPath\":\"/tmp\",\"name\":\"tmp\"},{\"mountPath\":\"/opt/ibm/wlp/output\",\"name\":\"wlp-output\"}]}],\"serviceAccountName\":\"bookinfo-reviews\",\"volumes\":[{\"emptyDir\":{},\"name\":\"wlp-output\"},{\"emptyDir\":{},\"name\":\"tmp\"}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["bookinfo-reviews"], + "health": { + "workloadStatus": null, + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "health": { + "requests": { + "inbound": { + "http": { + "200": 1.0000222227160604 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + }, + "namespaceMTLS": { + "status": "MTLS_NOT_ENABLED", + "autoMTLSEnabled": true, + "minTLS": "" + }, + "subServices": [ + { + "name": "reviews", + "namespace": "", + "istioSidecar": false, + "cluster": "", + "istioAmbient": false, + "appLabel": false, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": null, + "ports": { + "http": 9080 + }, + "labels": null, + "selector": null, + "istioReferences": null, + "kialiWizard": "", + "serviceRegistry": "", + "health": { + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": true, + "checks": [], + "references": null + } + }, + "service": { + "reviews.bookinfo": { + "name": "reviews", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "cars-v1.travel-agency": { + "name": "cars-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "control.travel-control": { + "name": "control", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "details-v1.bookinfo": { + "name": "details-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "discounts-v1.travel-agency": { + "name": "discounts-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "flights-v1.travel-agency": { + "name": "flights-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "grafana.istio-system": { + "name": "grafana", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "hotels-v1.travel-agency": { + "name": "hotels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "insurances-v1.travel-agency": { + "name": "insurances-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-egressgateway.istio-system": { + "name": "istio-egressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-ingressgateway.istio-system": { + "name": "istio-ingressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istiod.istio-system": { + "name": "istiod", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "jaeger.istio-system": { + "name": "jaeger", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali-traffic-generator.bookinfo": { + "name": "kiali-traffic-generator", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali.istio-system": { + "name": "kiali", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "mysqldb-v1.travel-agency": { + "name": "mysqldb-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "productpage-v1.bookinfo": { + "name": "productpage-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "prometheus.istio-system": { + "name": "prometheus", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "ratings-v1.bookinfo": { + "name": "ratings-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v1.bookinfo": { + "name": "reviews-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v2.bookinfo": { + "name": "reviews-v2", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v3.bookinfo": { + "name": "reviews-v3", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels-v1.travel-agency": { + "name": "travels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels.travel-portal": { + "name": "travels", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "viaggi.travel-portal": { + "name": "viaggi", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "voyages.travel-portal": { + "name": "voyages", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/spans.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/spans.json new file mode 100644 index 0000000000..b40bf45599 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/spans.json @@ -0,0 +1,25202 @@ +[ + { + "traceID": "7107ddd9f7ebc1b2238fff1a4c445e88", + "spanID": "665271058a7beee5", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "7107ddd9f7ebc1b2238fff1a4c445e88", + "spanID": "ae51de8f2bf2666a" + } + ], + "startTime": 1710318683793866, + "duration": 880, + "tags": [ + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "bbb98b83-7902-97fc-8c67-bf9a3add4aa8" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "8945e149e3c8e66e51b657d2f77a762e", + "spanID": "c123b040290f27bb", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "8945e149e3c8e66e51b657d2f77a762e", + "spanID": "d6a634138d75e747" + } + ], + "startTime": 1710318665793417, + "duration": 759, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "f168d2fc-e941-979d-9f57-70582121a86d" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "284fc8c991c7b8f855122347849ef5b9", + "spanID": "bad81ebc1d31c08f", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "284fc8c991c7b8f855122347849ef5b9", + "spanID": "84e13b4c0e3c0645" + } + ], + "startTime": 1710318637793406, + "duration": 974, + "tags": [ + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "c5adc156-5537-9159-acd1-16891f9c2819" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "ea3f45eb762329a29b5813355371a1ab", + "spanID": "a8765d1700777fad", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "ea3f45eb762329a29b5813355371a1ab", + "spanID": "7967547aa55c67cb" + } + ], + "startTime": 1710318700801563, + "duration": 817, + "tags": [ + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "827c51ff-65cb-974a-8292-af06b1ed69c5" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "442917e4ddd7b2a6e43dfa7f6c171fd8", + "spanID": "b13162d194425de3", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "442917e4ddd7b2a6e43dfa7f6c171fd8", + "spanID": "860487f352bcc700" + } + ], + "startTime": 1710318686793665, + "duration": 1059, + "tags": [ + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "a322d353-e54f-9981-ae47-2ccd0f16dfac" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "a932c71e1d04a3e00ad4c8611471a494", + "spanID": "3ff23684b5956fc3", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a932c71e1d04a3e00ad4c8611471a494", + "spanID": "f86ec0cc5f12ca45" + } + ], + "startTime": 1710318682793266, + "duration": 723, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "eeaab283-b032-9fee-b9d8-828cf0830278" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "3a036c06d7a7537cee8521102545701f", + "spanID": "7010507099b5c3fc", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "3a036c06d7a7537cee8521102545701f", + "spanID": "648176655fbad639" + } + ], + "startTime": 1710318680793748, + "duration": 715, + "tags": [ + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "ebb90540-477b-90e4-9fff-c8cb94eb4fad" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "b7b2bbcf9bb74ab0537009811b061afe", + "spanID": "5d2758363f1f9868", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "b7b2bbcf9bb74ab0537009811b061afe", + "spanID": "b17d84ff8298c0e6" + } + ], + "startTime": 1710318672797098, + "duration": 1819, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "2cfb5e89-5851-9b3d-8ea0-db7bac9cc5b1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "60c3e4b5b0861186e2205e60beaea99f", + "spanID": "b80f00a83309674c", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "60c3e4b5b0861186e2205e60beaea99f", + "spanID": "101ea35b484a5a50" + } + ], + "startTime": 1710318668801342, + "duration": 903, + "tags": [ + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "bc811ca6-015e-9c3b-ad7c-8034b990319d" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "be8bf65403f10d986327448e4fd35f8c", + "spanID": "cf9d590ab35d33c7", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "be8bf65403f10d986327448e4fd35f8c", + "spanID": "ea2744d2a7c94d37" + } + ], + "startTime": 1710318659798922, + "duration": 997, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "962fc070-60e2-9382-80fd-3a2ba45076ea" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "78ac987fd0e5c82cbb3c0b9206398c05", + "spanID": "66a58f527a511b21", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "78ac987fd0e5c82cbb3c0b9206398c05", + "spanID": "8c631229e083633e" + } + ], + "startTime": 1710318651793758, + "duration": 818, + "tags": [ + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "5f7ad339-7920-90ea-8fbb-4227d3f76e60" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "2ebd2207e20819241b36390c63af2730", + "spanID": "399a8e7b0e4213de", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "2ebd2207e20819241b36390c63af2730", + "spanID": "0cf69ff72fec700c" + } + ], + "startTime": 1710318727796362, + "duration": 1467, + "tags": [ + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "32b05bdc-a5d7-9979-ad4c-04e457a49516" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "85d01aca7f27218ebd984c3eb2e218ea", + "spanID": "b74694c6239458b8", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "85d01aca7f27218ebd984c3eb2e218ea", + "spanID": "b29d5fb773d7ddf3" + } + ], + "startTime": 1710318642801519, + "duration": 2771, + "tags": [ + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "c58b042a-d081-9821-bf25-ce949162f45b" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "b98f6bd11f0b26beac754fa72060bec2", + "spanID": "ed79d8f09f227f3a", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "b98f6bd11f0b26beac754fa72060bec2", + "spanID": "69bae203b6b8ae0a" + } + ], + "startTime": 1710318646793923, + "duration": 849, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "cab694d8-e121-982d-83cd-5e3a907caaad" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "759c89be807686dfcc651676ed6ad338", + "spanID": "0ef7cd2bb88fea38", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "759c89be807686dfcc651676ed6ad338", + "spanID": "425c6a4ad09a73ee" + } + ], + "startTime": 1710318658793079, + "duration": 871, + "tags": [ + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "6c99fec4-6e50-9486-92fe-35c15ca8c089" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "669d30d5eca1af30343f167ed202d723", + "spanID": "9a5aa9f4ff1b9aea", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "669d30d5eca1af30343f167ed202d723", + "spanID": "997a2ca68e463d9c" + } + ], + "startTime": 1710318719801960, + "duration": 1958, + "tags": [ + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "feb26331-3008-9bcd-822d-a90d9f4b9bff" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "9798c4782c36436b49cc7288f9937b07", + "spanID": "f014086bdfa99d3b", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "9798c4782c36436b49cc7288f9937b07", + "spanID": "b3e31956fc2aee48" + } + ], + "startTime": 1710318711802231, + "duration": 2496, + "tags": [ + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "e4495b37-b9ff-95c5-a582-d17067d33a08" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "d85aee118d749ba5b90645eb549ebfad", + "spanID": "60c8d2215a114e64", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "d85aee118d749ba5b90645eb549ebfad", + "spanID": "4a1eb6870e800049" + } + ], + "startTime": 1710318677793688, + "duration": 754, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "073ccc50-ef92-926b-8235-96b10df75c20" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "3761af009dcad3ae9ddd763fc36a9f83", + "spanID": "37d9cf979e01cb20", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "3761af009dcad3ae9ddd763fc36a9f83", + "spanID": "1181762bd0e2213d" + } + ], + "startTime": 1710318666792914, + "duration": 759, + "tags": [ + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "79fa4487-0d2f-9d26-9774-f06f9ab9214d" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "d0679eeede9c01ad7a6795a15afa8353", + "spanID": "bf50501b7da66610", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "d0679eeede9c01ad7a6795a15afa8353", + "spanID": "7a9dc5caa14e3837" + } + ], + "startTime": 1710318663793947, + "duration": 907, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "3165a4fe-cff9-96d5-8855-53746da5b6b1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "223a53b584168536c9a07ed12a219358", + "spanID": "15c33740024f2cd6", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "223a53b584168536c9a07ed12a219358", + "spanID": "43c3bc948abab362" + } + ], + "startTime": 1710318625794627, + "duration": 898, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "fd3e187b-c028-9768-aade-1deea0630e52" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "b41f1ac0f113383c72ea5669027a3c26", + "spanID": "af958a1835e373c2", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "b41f1ac0f113383c72ea5669027a3c26", + "spanID": "88f92ef78653ffbd" + } + ], + "startTime": 1710318714792838, + "duration": 723, + "tags": [ + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "301c5e26-9042-9167-8d9a-19d24fe386b9" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "efd707c07878e62134aafbcf715f5b92", + "spanID": "b2e075ebea975857", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "efd707c07878e62134aafbcf715f5b92", + "spanID": "418b1dd3a4428b28" + } + ], + "startTime": 1710318706793888, + "duration": 1041, + "tags": [ + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "6be6e444-4c2d-96dc-bcc7-146daee21e1b" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "32fdb6d812c3e29ac1076ee5f9e68a46", + "spanID": "d1d9217220a93a47", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "32fdb6d812c3e29ac1076ee5f9e68a46", + "spanID": "f0875483caf414fb" + } + ], + "startTime": 1710318697795748, + "duration": 1246, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "d629ef2b-efe4-9da3-8201-af28661b3360" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "237815ea99c4445e743c6495df065a8f", + "spanID": "0ea31eb4da860b49", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "237815ea99c4445e743c6495df065a8f", + "spanID": "9d221116dc46551f" + } + ], + "startTime": 1710318696794688, + "duration": 826, + "tags": [ + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "dc1e2f9b-fdce-93dd-a268-bf624801368b" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "3c789f96e6d97a651a02a41043918468", + "spanID": "f39ebd72de3d17a4", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "3c789f96e6d97a651a02a41043918468", + "spanID": "25d5ca151ee49ccc" + } + ], + "startTime": 1710318676801793, + "duration": 2462, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "df4481c9-b1bc-9d78-b7c9-9745eda481dd" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "50a2ee8808c084b3da4aeab399701d63", + "spanID": "3797bcd45fa0398d", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "50a2ee8808c084b3da4aeab399701d63", + "spanID": "bcc72b5dd0de10fb" + } + ], + "startTime": 1710318644798037, + "duration": 878, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "aae5d0b0-b9a7-9953-bd2a-8a767345efd2" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "874fe4f7a3ee7d4e9919c1e2f65029e0", + "spanID": "dad641e9036fddd3", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "874fe4f7a3ee7d4e9919c1e2f65029e0", + "spanID": "e17e2ffd4b9a6069" + } + ], + "startTime": 1710318641802356, + "duration": 2483, + "tags": [ + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "3337d78f-2237-93dd-b0f9-dd79fffc5909" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "4c2e9e40ca5055ddd0c092a7352d1eb3", + "spanID": "33bcfeb030584ad2", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4c2e9e40ca5055ddd0c092a7352d1eb3", + "spanID": "ac6a781da2ed9073" + } + ], + "startTime": 1710318638794549, + "duration": 872, + "tags": [ + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "0af6c605-b530-9c02-bdca-972fc752c248" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "8d322811fa8b79e06eaf99ee1d379726", + "spanID": "b0841f215bc5f199", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "8d322811fa8b79e06eaf99ee1d379726", + "spanID": "a840d297f4fd8bc8" + } + ], + "startTime": 1710318722799250, + "duration": 1237, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "ee07077f-da1c-9156-b71c-8ed32243e162" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "97ccc321ca5dceadb59a3a5c9f18bf6c", + "spanID": "5736e3a43dff90c8", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "97ccc321ca5dceadb59a3a5c9f18bf6c", + "spanID": "8899a3224e6dcd3a" + } + ], + "startTime": 1710318624794045, + "duration": 837, + "tags": [ + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "cdbf2be2-2170-90dc-a245-2cd33a5c2c3a" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "1acf9f275da052f51efff668c95bbca4", + "spanID": "8ef94b4f9b5ec4cb", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "1acf9f275da052f51efff668c95bbca4", + "spanID": "7d1882eb9b05cfa7" + } + ], + "startTime": 1710318699794905, + "duration": 763, + "tags": [ + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "32d6ae69-1010-9736-bcbd-853f13315d17" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "162341ecd146a41e72ced4c2d023bd54", + "spanID": "e9e8ff7a0208d925", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "162341ecd146a41e72ced4c2d023bd54", + "spanID": "5ac755c606492caf" + } + ], + "startTime": 1710318692802214, + "duration": 2567, + "tags": [ + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "be2df35e-4315-9b15-9b2f-eee11ee5b5b5" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "8aa77f6f3099aee2cac52cd637b076ba", + "spanID": "f21b277159d594c3", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "8aa77f6f3099aee2cac52cd637b076ba", + "spanID": "7d77506b9446966a" + } + ], + "startTime": 1710318669794262, + "duration": 934, + "tags": [ + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "86b0e505-4316-9cc4-a29f-4c3115474e92" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "35073fa8e94dd6de1fe84a0a8941edee", + "spanID": "293edf2fe3b11a11", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "35073fa8e94dd6de1fe84a0a8941edee", + "spanID": "430589fc858b7354" + } + ], + "startTime": 1710318656792895, + "duration": 740, + "tags": [ + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "5e939c56-b605-9116-aed6-3b1e69ad64f0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "3230853070dad3b1f7df91c98193c026", + "spanID": "73b40835017e9c7d", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "3230853070dad3b1f7df91c98193c026", + "spanID": "17cb668061aacd20" + } + ], + "startTime": 1710318647793548, + "duration": 772, + "tags": [ + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "aae5568b-20a2-959b-bc7e-d824dd69bd86" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "9c4cfedb4a1733652f2023b852b21d33", + "spanID": "16cfde1692506085", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "9c4cfedb4a1733652f2023b852b21d33", + "spanID": "978da1dd1eea68ce" + } + ], + "startTime": 1710318643795123, + "duration": 1117, + "tags": [ + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "6746ebce-73d8-9832-afc6-1742e1073c8e" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "9d12733cced9fed34c9524d399ff5a40", + "spanID": "ae15352e64004b0f", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "9d12733cced9fed34c9524d399ff5a40", + "spanID": "cf8af4e9bc85b031" + } + ], + "startTime": 1710318725793612, + "duration": 1048, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "79959baa-8905-9a2b-b3fb-243e5295242b" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "7c32071c8bd75d6e1f804f4ef2eb9de9", + "spanID": "2a497a0c04061e9b", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "7c32071c8bd75d6e1f804f4ef2eb9de9", + "spanID": "467d466ea8645150" + } + ], + "startTime": 1710318650793511, + "duration": 707, + "tags": [ + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "126abbdf-6b01-9f86-9801-f912849e68af" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "ddc308256b5413433ef1ab78017fc439", + "spanID": "f902198e3409d80b", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "ddc308256b5413433ef1ab78017fc439", + "spanID": "39dbb538e290e21b" + } + ], + "startTime": 1710318636792757, + "duration": 752, + "tags": [ + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "c45b0714-6189-9abb-8bcb-8c9b51b14952" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "e60213932fc28aa4a9f477336465a04a", + "spanID": "0714af3e13951933", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "e60213932fc28aa4a9f477336465a04a", + "spanID": "bc35a1cce0f2e3ca" + } + ], + "startTime": 1710318635793523, + "duration": 807, + "tags": [ + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "e7e24900-8e1c-9a55-8f97-31b7423a0e03" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "c81154eb5632adb7baa16aa9dc5ace03", + "spanID": "97d92db80e40b621", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "c81154eb5632adb7baa16aa9dc5ace03", + "spanID": "c364d0d33df4174a" + } + ], + "startTime": 1710318702796901, + "duration": 1455, + "tags": [ + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "6d49ac6c-35ca-90dd-a309-4dc73aa2c7e0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "28b05acbd0b0fc611ef7ac53291e879e", + "spanID": "5dfad4e1d96d3dec", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "28b05acbd0b0fc611ef7ac53291e879e", + "spanID": "46a13db5af16a284" + } + ], + "startTime": 1710318715793572, + "duration": 718, + "tags": [ + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "c0d5f92a-fcd6-9040-9075-a36360098254" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "6042631d81bc9dbad8fd8ff4692f7ab4", + "spanID": "699792d56ba381f9", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "6042631d81bc9dbad8fd8ff4692f7ab4", + "spanID": "5d4a35cea7efa57d" + } + ], + "startTime": 1710318661793820, + "duration": 914, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "b29bf180-e7e7-9032-96f6-14048fd9dfd8" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "79cea8bfb2ed28bb7e12777ff313b468", + "spanID": "00b7f360ef851557", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "79cea8bfb2ed28bb7e12777ff313b468", + "spanID": "ee5dfcebca436585" + } + ], + "startTime": 1710318639793034, + "duration": 785, + "tags": [ + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "21bd8490-393c-9195-8c33-596141b47988" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "81f1c6ce9d0930d34ee9420e787519ce", + "spanID": "8468870e72193a9f", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "81f1c6ce9d0930d34ee9420e787519ce", + "spanID": "265c10b3625ff982" + } + ], + "startTime": 1710318724795914, + "duration": 1278, + "tags": [ + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "26fa964a-bb38-9eef-8908-9ceb1a33512f" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "2e55c0bb4e1094c9b0e2d7534c558d0d", + "spanID": "59bbb31cc622d133", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "2e55c0bb4e1094c9b0e2d7534c558d0d", + "spanID": "2ab09fa6f756d24f" + } + ], + "startTime": 1710318698802265, + "duration": 2488, + "tags": [ + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "d11a16e3-a1d5-98fe-9d27-10b90970ab5c" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "77ab5ab7472a19f6a9c820bc687a5a31", + "spanID": "84246e791f5c9ceb", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "77ab5ab7472a19f6a9c820bc687a5a31", + "spanID": "5bfe094f9ad241b0" + } + ], + "startTime": 1710318726795978, + "duration": 1499, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "93537833-6382-9ae2-b14a-5a98c15fb59d" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "b7d494b97b706c8b15aeeade13878e7d", + "spanID": "8c206dfacf237feb", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "b7d494b97b706c8b15aeeade13878e7d", + "spanID": "7f94a60e86c7fe25" + } + ], + "startTime": 1710318713795245, + "duration": 871, + "tags": [ + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "06cbb118-4849-94c3-97f8-94cbb49a3e19" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "74b4642e41e084c1f5f9ce601163570b", + "spanID": "346489aae90b5036", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "74b4642e41e084c1f5f9ce601163570b", + "spanID": "c1f719ddeb05dc20" + } + ], + "startTime": 1710318709802341, + "duration": 2551, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "10cd54d6-fc3b-942c-9428-a75b79691e3a" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "112a39166d1b6f2f11523edea7844e3e", + "spanID": "a87d8fe8667ea63b", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "112a39166d1b6f2f11523edea7844e3e", + "spanID": "e273a2895c21b57a" + } + ], + "startTime": 1710318685793249, + "duration": 813, + "tags": [ + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "a348030d-f504-9f58-a980-c4e26bc53556" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "78ac08ece238b461f5a2fc7f654399ac", + "spanID": "f5e91095d49838f4", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "78ac08ece238b461f5a2fc7f654399ac", + "spanID": "5b32314cf41c4776" + } + ], + "startTime": 1710318679793647, + "duration": 707, + "tags": [ + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "5045b648-c3c7-98a3-862a-a8928b9053e8" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "2fdd48a710d5b74c76fdb65c69d049ba", + "spanID": "ff6a1c3ca52d0377", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "2fdd48a710d5b74c76fdb65c69d049ba", + "spanID": "d0cad27db7a2b2e3" + } + ], + "startTime": 1710318678793349, + "duration": 807, + "tags": [ + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "eac2ed49-4ce5-9bfd-8bce-f6c3d6508707" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "861d0f22f8c759aa4d639ae7aad46263", + "spanID": "6378e40c4d7bd4c3", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "861d0f22f8c759aa4d639ae7aad46263", + "spanID": "acf1948fe72261dc" + } + ], + "startTime": 1710318662792937, + "duration": 753, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "d1a0e9f1-f5e3-903e-802f-0526cfbf74a4" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "2de70461ac512101fe78c63364c677ef", + "spanID": "08a8cc7eddc6f58b", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "2de70461ac512101fe78c63364c677ef", + "spanID": "d8e898535e1699f0" + } + ], + "startTime": 1710318654793032, + "duration": 719, + "tags": [ + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "90fb271f-5a33-9d9d-967b-9024c8ee4a31" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "b511d2515933b6b74c32ae5ec8bdb28b", + "spanID": "b1b2790a3b0b67f3", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "b511d2515933b6b74c32ae5ec8bdb28b", + "spanID": "e5bc9cc031ea1b8e" + } + ], + "startTime": 1710318720793039, + "duration": 789, + "tags": [ + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "ca3d00bc-174a-9f60-ab9d-07f0b82f9876" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "8a65aa77a3762ea797af893bacf66270", + "spanID": "59ebd57a55476d25", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "8a65aa77a3762ea797af893bacf66270", + "spanID": "9b90d5c71a01c3de" + } + ], + "startTime": 1710318652793725, + "duration": 880, + "tags": [ + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "a6d155fd-c08d-9ebb-a6d7-02841417c42c" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "d30d86ace586a74c8f2d388663cbd23e", + "spanID": "9bb2c2e62d7a3c5f", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "d30d86ace586a74c8f2d388663cbd23e", + "spanID": "7e06507529380392" + } + ], + "startTime": 1710318718793453, + "duration": 714, + "tags": [ + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "7b9849bb-32d0-9d96-aff7-583e1aaba3cb" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "c40edb25f59140ec2dae9764f1682560", + "spanID": "8296c3b6ae888ad6", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "c40edb25f59140ec2dae9764f1682560", + "spanID": "dc7789c276632b78" + } + ], + "startTime": 1710318707792840, + "duration": 746, + "tags": [ + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "ac71e3bb-cff9-9931-99ed-5f5b9ca3afe3" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "f69722377d88eeb7a6e5d4a5cd1ffd0e", + "spanID": "33d68e5f5164e28f", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "f69722377d88eeb7a6e5d4a5cd1ffd0e", + "spanID": "a5760bd6442e91c5" + } + ], + "startTime": 1710318694794127, + "duration": 868, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "6b440538-49ad-978a-81c5-8a15100ef81c" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "dfd09b8716ff846e5d03648a27a405ed", + "spanID": "af4452088227aeb9", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "dfd09b8716ff846e5d03648a27a405ed", + "spanID": "155b7a169764b328" + } + ], + "startTime": 1710318693793993, + "duration": 858, + "tags": [ + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "f467bec7-d295-9f7a-ab6e-348a5c31099b" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "d4a160e47ed3fcd31e515da259c39d38", + "spanID": "0e64a6a6cb2c3a29", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "d4a160e47ed3fcd31e515da259c39d38", + "spanID": "6c527be40c5219d6" + } + ], + "startTime": 1710318690798691, + "duration": 879, + "tags": [ + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "a09d442f-6c68-9a00-8a2a-2fcebfe043b2" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "5b93fb472dc6bcccf9f40dfe9d6f793d", + "spanID": "1b841ae091d43bd0", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "5b93fb472dc6bcccf9f40dfe9d6f793d", + "spanID": "276520664cc9c08f" + } + ], + "startTime": 1710318687793104, + "duration": 739, + "tags": [ + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "da6b00af-4edb-946f-b56c-5f8e91d1b8e3" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "a889d2c8997fa70add4e971ca7736d57", + "spanID": "ab72b2da35540caa", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a889d2c8997fa70add4e971ca7736d57", + "spanID": "4e7078d29072537b" + } + ], + "startTime": 1710318640793149, + "duration": 745, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "2b6604a2-b4c9-9474-b9e7-4e09aeb285b6" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "6bfeea11d03b6948ff5550e857aa2486", + "spanID": "958b2f8d56e8bae7", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "6bfeea11d03b6948ff5550e857aa2486", + "spanID": "b7167024231f7b19" + } + ], + "startTime": 1710318728793457, + "duration": 718, + "tags": [ + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "49cb5bac-2117-9dda-956d-095037d0b14f" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "ac81673ce556e4e85f624078a106d93c", + "spanID": "a70779edc561db25", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "ac81673ce556e4e85f624078a106d93c", + "spanID": "578efe710f6b2d34" + } + ], + "startTime": 1710318634795509, + "duration": 1311, + "tags": [ + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "ae00ee96-770a-9a4e-be79-dfc2d1991492" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "adecf7ab378989f3f273ef3f103a154c", + "spanID": "82c9051ca20e38c9", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "adecf7ab378989f3f273ef3f103a154c", + "spanID": "21ae7ba8bda34c70" + } + ], + "startTime": 1710318675793400, + "duration": 805, + "tags": [ + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "86cc43b5-4539-935f-ab6e-68ab7ad04df7" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "bca3ab1ffbc86368d9126f1ac7ff23d2", + "spanID": "1d582d1e42fd892d", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "bca3ab1ffbc86368d9126f1ac7ff23d2", + "spanID": "339cf67e31a6e9bf" + } + ], + "startTime": 1710318648801547, + "duration": 2466, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "12635b16-c448-9144-8a18-8f127a6026c3" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "48e9a7385f642e282dec2b034ed0d549", + "spanID": "964b88b2b263e1d3", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "48e9a7385f642e282dec2b034ed0d549", + "spanID": "bcecb8923cc7ad76" + } + ], + "startTime": 1710318631795465, + "duration": 1043, + "tags": [ + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "bde24690-b46c-99c2-add4-753e77634e54" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "76fc3ada36dfa9c1e3a07a4e586d175f", + "spanID": "6da782eae2f73be5", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "76fc3ada36dfa9c1e3a07a4e586d175f", + "spanID": "9f567a9388de6e07" + } + ], + "startTime": 1710318721793128, + "duration": 760, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "a43927c6-2490-972d-8e35-d05d21827682" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "dca426d7fa2d55b7ca2a0ece6182cfee", + "spanID": "f1c732316d5e26b4", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "dca426d7fa2d55b7ca2a0ece6182cfee", + "spanID": "1245bdddd770c319" + } + ], + "startTime": 1710318717793586, + "duration": 731, + "tags": [ + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "e906be79-8466-9187-b14f-f33bc69fcdda" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "38bfe07fa6074b7d58caf8e4619099b7", + "spanID": "4aa539286275a359", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "38bfe07fa6074b7d58caf8e4619099b7", + "spanID": "af0fb946496a74ee" + } + ], + "startTime": 1710318716793250, + "duration": 764, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "f4ca90e9-baa4-9252-afd3-47b57a93f9bf" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "489cb85769e8cc822c99feef78b4872d", + "spanID": "b5ca2e10b65b1053", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "489cb85769e8cc822c99feef78b4872d", + "spanID": "b22c404549e8a4f0" + } + ], + "startTime": 1710318704793153, + "duration": 1043, + "tags": [ + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "c99cc5af-fac7-9644-868b-911dd7f0b6e0" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "1078750950c3118c468bc5b8842f1eec", + "spanID": "a0104afe64eb71e9", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "1078750950c3118c468bc5b8842f1eec", + "spanID": "1fbe1d43250a1f37" + } + ], + "startTime": 1710318703793293, + "duration": 763, + "tags": [ + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "f06372ae-7567-93c7-83ac-96689a05a394" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "822fb5629ef134445f6c933b21308fef", + "spanID": "365ce9ae16a7ce1d", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "822fb5629ef134445f6c933b21308fef", + "spanID": "3e2319578f1e91ae" + } + ], + "startTime": 1710318673796475, + "duration": 897, + "tags": [ + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "ef358b43-de1a-9290-bb43-0d6617f5600f" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "f633e1409d68045662e324b0108e4cc2", + "spanID": "2e2483859f9f5396", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "f633e1409d68045662e324b0108e4cc2", + "spanID": "7ce0351e92a6b3bd" + } + ], + "startTime": 1710318660794022, + "duration": 1020, + "tags": [ + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "7b192d17-7e09-9ce4-9259-b65d63cd7b64" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "2b29dfeac119ae50983ecabda1e45148", + "spanID": "d154188a8cdb7240", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "2b29dfeac119ae50983ecabda1e45148", + "spanID": "eacadc04be2ab289" + } + ], + "startTime": 1710318649802160, + "duration": 2558, + "tags": [ + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "fbdbc6e1-b94e-93d9-b039-9c69ef3bc3d0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "575bb1fe7ac2fad0325832ce6ff1d1e8", + "spanID": "ac4c5d58b513d204", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "575bb1fe7ac2fad0325832ce6ff1d1e8", + "spanID": "c1daeeabfebd46bd" + } + ], + "startTime": 1710318729793942, + "duration": 761, + "tags": [ + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8d5311ed-1d93-9b9c-bcd3-4443caf41893" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "88cf55bb2d65e3bab013ff599d5f9b3b", + "spanID": "9d846c7a821a09c2", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "88cf55bb2d65e3bab013ff599d5f9b3b", + "spanID": "dfc20d1541e04ce2" + } + ], + "startTime": 1710318627792877, + "duration": 727, + "tags": [ + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "ec6962e3-2964-9084-a0df-3ea186af958f" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "e10b9c60ea8f03fef2ca8b1e6709f272", + "spanID": "1a06653652bbbe1b", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "e10b9c60ea8f03fef2ca8b1e6709f272", + "spanID": "323877184ad8a6f6" + } + ], + "startTime": 1710318630799753, + "duration": 3117, + "tags": [ + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "2e8bc4d1-1445-97b5-8450-46a839df7a5b" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "5c7c6252f26b16c24f9b9b199b04506c", + "spanID": "3b82ba579fcebbc8", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "5c7c6252f26b16c24f9b9b199b04506c", + "spanID": "cf50a7dade6138ed" + } + ], + "startTime": 1710318701794859, + "duration": 1218, + "tags": [ + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "72533684-d7df-9819-8f82-5904e9749f52" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "d1e1319fa0e3163dca33900da4394369", + "spanID": "96a567f9bd1e89ee", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "d1e1319fa0e3163dca33900da4394369", + "spanID": "45f6dd3e95c1d123" + } + ], + "startTime": 1710318667793257, + "duration": 743, + "tags": [ + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "9a3c63cd-5af0-9b83-8cb1-5dc485a02f88" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "ed603267b09eda08eee632c56bcacd9e", + "spanID": "30c1ca915d424222", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "ed603267b09eda08eee632c56bcacd9e", + "spanID": "a3a4836914b7ba4f" + } + ], + "startTime": 1710318664793228, + "duration": 789, + "tags": [ + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "5f606826-bd2d-9413-b22d-b80c8650d95f" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "e94dcd96a6f7c3f9f07d91b831d77494", + "spanID": "2e9ba97286efcbac", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "e94dcd96a6f7c3f9f07d91b831d77494", + "spanID": "12c488343e67794a" + } + ], + "startTime": 1710318632794373, + "duration": 1132, + "tags": [ + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "5a45f70f-37d8-9975-85f8-3bca1e8b41c2" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "cefa082c2dfad726d5fcfa8cea4465fc", + "spanID": "ccb73540d472c50f", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "cefa082c2dfad726d5fcfa8cea4465fc", + "spanID": "ebb53df7e8b55d28" + } + ], + "startTime": 1710318723792867, + "duration": 881, + "tags": [ + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "3dbadc3c-d9c3-92e9-b760-c07e8d76b22b" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "1c0e448e69295632289aad72b2857e95", + "spanID": "9cd3cc783df50e74", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "1c0e448e69295632289aad72b2857e95", + "spanID": "9f954e60818b2b96" + } + ], + "startTime": 1710318695792819, + "duration": 761, + "tags": [ + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "a927fd5c-dbcf-9bf8-8820-9efa12b44077" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "1ba498447a44b7914ffe512bd93445f3", + "spanID": "3db5fe68b9298f4a", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "1ba498447a44b7914ffe512bd93445f3", + "spanID": "5074560267f4adfe" + } + ], + "startTime": 1710318691793723, + "duration": 818, + "tags": [ + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "3e935949-6e9a-91be-b70a-c99256dc5f43" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "3f81933ad98ce013521528dd390a5c3d", + "spanID": "f393b2a11848ded1", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "3f81933ad98ce013521528dd390a5c3d", + "spanID": "c3ee2c7feb1f3c77" + } + ], + "startTime": 1710318688793518, + "duration": 718, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "4d77d262-d2ca-9dc9-8dc6-deb2945401be" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "2d02f2b2763df375e64d76211937effb", + "spanID": "719792ce1cc70a09", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "2d02f2b2763df375e64d76211937effb", + "spanID": "5f4317da0b73ee71" + } + ], + "startTime": 1710318671793079, + "duration": 827, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "9594e799-28f2-9e14-a442-d04dcd379928" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "75a4262a707851c97bcf5fe6c63fb260", + "spanID": "c079c533cb7b52c3", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "75a4262a707851c97bcf5fe6c63fb260", + "spanID": "dbc886e624b2a591" + } + ], + "startTime": 1710318629793789, + "duration": 745, + "tags": [ + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "da8bb3b1-0c32-9ca0-a738-626da27bf143" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "97da80864b7e87b786319aba84a8a0cd", + "spanID": "8be137b8793d96c9", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "97da80864b7e87b786319aba84a8a0cd", + "spanID": "c2b3d64f9a89f8ab" + } + ], + "startTime": 1710318623793652, + "duration": 825, + "tags": [ + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "4b878ef6-fbb2-94a5-9846-84c9b99ab611" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "8b8fc0d8a97d96f50476568733ce87ed", + "spanID": "36a40abd955a7826", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "8b8fc0d8a97d96f50476568733ce87ed", + "spanID": "d55d1d19084b692f" + } + ], + "startTime": 1710318622793345, + "duration": 739, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "944d7113-39b4-9967-b803-bd7e8e37399f" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "8f63b460b3cd24b66b2d63a2f8e83a6c", + "spanID": "d360939dcb4fef86", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "8f63b460b3cd24b66b2d63a2f8e83a6c", + "spanID": "3b0d6cda62420e9b" + } + ], + "startTime": 1710318708793857, + "duration": 830, + "tags": [ + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "0055d6c6-899f-988f-a837-6b7a5fcae70c" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "a7bdeceead9844e457c85ea85b13086e", + "spanID": "a904ffd0a39dc54c", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a7bdeceead9844e457c85ea85b13086e", + "spanID": "6c89850956b78995" + } + ], + "startTime": 1710318710795564, + "duration": 1473, + "tags": [ + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8af5a25d-5298-9f77-931f-dea0563b9bef" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "59372bc119c0b6c8c49f28e2aa287207", + "spanID": "4ef06c6539349685", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "59372bc119c0b6c8c49f28e2aa287207", + "spanID": "05c5bc1a78d06c63" + } + ], + "startTime": 1710318681793687, + "duration": 705, + "tags": [ + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "d6cd614c-a26c-9360-a1a7-6c6cfdde1c39" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "f508f5392e3969b2753e5f3669405b24", + "spanID": "c7aeecf8cc88a584", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "f508f5392e3969b2753e5f3669405b24", + "spanID": "277f045fecd0a2ae" + } + ], + "startTime": 1710318670792944, + "duration": 702, + "tags": [ + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "b13fabae-2643-9dd0-8c07-a9a2755c6036" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "9b4469c07f3e97b4b2b331f684133e3d", + "spanID": "3c1500b76e92ace4", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "9b4469c07f3e97b4b2b331f684133e3d", + "spanID": "9153f365c1859595" + } + ], + "startTime": 1710318653801958, + "duration": 2538, + "tags": [ + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "a0e2e8c6-f907-9494-9365-0856128068cd" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "e5f316babff6daae29bb3030ec0a38aa", + "spanID": "cbf51fddf8c356df", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "e5f316babff6daae29bb3030ec0a38aa", + "spanID": "9034273014ff1abf" + } + ], + "startTime": 1710318633794794, + "duration": 1108, + "tags": [ + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "2f225e25-ef39-9ddb-9166-7066ba528f4e" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "f505ba4bc9bf18be2a7743afe7ac4aca", + "spanID": "1016fea7ce300ebb", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "f505ba4bc9bf18be2a7743afe7ac4aca", + "spanID": "ff6799d00056e695" + } + ], + "startTime": 1710318626793486, + "duration": 796, + "tags": [ + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "48da7abd-23d1-9975-83fe-3061766ccbf1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "af833955a665a7f1ab5c48f30e2f9271", + "spanID": "3c2ba5ff01cd4bfb", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "af833955a665a7f1ab5c48f30e2f9271", + "spanID": "15c1b685e0ad4136" + } + ], + "startTime": 1710318712793841, + "duration": 838, + "tags": [ + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "9ab0258a-8a85-9747-9a72-19d32285cef1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "7bc05ee87561520b4ae05cfe2a11a288", + "spanID": "7c0a6fe8adea417b", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "7bc05ee87561520b4ae05cfe2a11a288", + "spanID": "72de6e97b302c358" + } + ], + "startTime": 1710318312799644, + "duration": 929, + "tags": [ + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "fb969a51-7c5e-981c-a360-a60fec15ab80" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "883588ddb04f51d4f2d7a1ada5d50c62", + "spanID": "66edf79da0758ee1", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "883588ddb04f51d4f2d7a1ada5d50c62", + "spanID": "a6bc3380fa4a3d8a" + } + ], + "startTime": 1710318308799531, + "duration": 937, + "tags": [ + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "45140406-74b9-9817-8e96-3ac53d8af492" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "6cb3cd57f4b969e956a4ca046733a8bc", + "spanID": "9d242a0366c09e8e", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "6cb3cd57f4b969e956a4ca046733a8bc", + "spanID": "484c5fcff17db3e8" + } + ], + "startTime": 1710318305801630, + "duration": 2578, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "afc87d1b-a55a-9fa1-94bc-fbaf3cdffb02" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "4ef476db1a5ae90b5080d367983beeb7", + "spanID": "8a21657140aeac6b", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4ef476db1a5ae90b5080d367983beeb7", + "spanID": "e78b81b347899e52" + } + ], + "startTime": 1710318313798825, + "duration": 971, + "tags": [ + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8abf0d55-70f7-98c0-85ce-ed63ccd67539" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "2df2890dc56f4ec8f765fd34a765aa34", + "spanID": "c2170a2a03e8c7f6", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "2df2890dc56f4ec8f765fd34a765aa34", + "spanID": "b4e6ae567af34453" + } + ], + "startTime": 1710318310801794, + "duration": 2559, + "tags": [ + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "b67b7d61-67cb-980d-ba9a-be70e2ca1077" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "786977127af577f7fe1505c4a669c3db", + "spanID": "07be6b8b00dec2cc", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "786977127af577f7fe1505c4a669c3db", + "spanID": "ca849b696289fd4c" + } + ], + "startTime": 1710318309802311, + "duration": 2526, + "tags": [ + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "91095f6a-5a58-9f03-8b68-8d4239a2b6d1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "b468b94b18e7c5c268ffb1bfdbea9985", + "spanID": "beeedff0bf94dc90", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "b468b94b18e7c5c268ffb1bfdbea9985", + "spanID": "ae78ecc1a1356f66" + } + ], + "startTime": 1710318307793213, + "duration": 970, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "7436fc3e-0f1f-9919-86da-a89573a24c30" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "132186344673cdd88732641f7bc97122", + "spanID": "43d13d2cd7a1e908", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "132186344673cdd88732641f7bc97122", + "spanID": "84a272a2613a4d73" + } + ], + "startTime": 1710318306801398, + "duration": 2586, + "tags": [ + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "9ac0714d-4f11-9def-b883-47601aed933d" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "85c6f317a570ccbf8de0dcf4de7d38ae", + "spanID": "8c838b4b24b308bb", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "85c6f317a570ccbf8de0dcf4de7d38ae", + "spanID": "0d418f2c1e750f2d" + } + ], + "startTime": 1710318304795343, + "duration": 859, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "e0b80d85-bbf4-9a34-b308-948b419d7b8e" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "aba372827c451f89d320a7491ff12a04", + "spanID": "fbc70b49d382c5ec", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "aba372827c451f89d320a7491ff12a04", + "spanID": "82ef0a94c75c3ace" + } + ], + "startTime": 1710318311799689, + "duration": 1005, + "tags": [ + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "c505b174-8168-90dc-8e5c-0388ffcf3caa" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "30f0221a09fd7940517b9789c85916dc", + "spanID": "620eb964b32025b5", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "30f0221a09fd7940517b9789c85916dc", + "spanID": "b4eb828e9f59b81b" + } + ], + "startTime": 1710318612793481, + "duration": 859, + "tags": [ + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "21f10a6b-d208-96f6-b042-d62ee2b0c88a" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "aed2991933617e64ff89718c437f3fbc", + "spanID": "eb8792071912305f", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "aed2991933617e64ff89718c437f3fbc", + "spanID": "ca8f3fe872432f64" + } + ], + "startTime": 1710318611793399, + "duration": 844, + "tags": [ + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "253983b5-7ac6-9dbd-921b-ae7623eb77ef" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "efeced79bd7d96132ae4224489155136", + "spanID": "6ce6ae188addd76b", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "efeced79bd7d96132ae4224489155136", + "spanID": "9382554afe63c9bd" + } + ], + "startTime": 1710318606793759, + "duration": 942, + "tags": [ + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "31f32dbb-64c3-955b-9bb9-18a8a6d59cca" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "dd47390ef15354d2e95bbb2813f16ef0", + "spanID": "cd8b2f7f7fcfd69f", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "dd47390ef15354d2e95bbb2813f16ef0", + "spanID": "43449193da49d204" + } + ], + "startTime": 1710318604792910, + "duration": 788, + "tags": [ + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "cd20041d-5a28-9972-b351-c726df604c41" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "f1c5e4222a56f7019fa1d18ee6b97ab1", + "spanID": "833d9b857f2a72f3", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "f1c5e4222a56f7019fa1d18ee6b97ab1", + "spanID": "0093d7b5d8639540" + } + ], + "startTime": 1710318613802886, + "duration": 2535, + "tags": [ + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "ead0fad9-19bd-91ad-9008-09156dac19f8" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "236b7f5260fe8fb886626f2e3d778286", + "spanID": "ef67da08c60dd747", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "236b7f5260fe8fb886626f2e3d778286", + "spanID": "ccd8c5938d5eb1fe" + } + ], + "startTime": 1710318608795264, + "duration": 1287, + "tags": [ + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "f0d7306b-9173-9444-8301-422c3155fd92" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "792bc1b820b1850456a915fbe7b419df", + "spanID": "32f8b125e0eb8d46", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "792bc1b820b1850456a915fbe7b419df", + "spanID": "68b6c9f10dbe149e" + } + ], + "startTime": 1710318607794212, + "duration": 798, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "4f25f05d-9fcc-9d2b-bdc1-02e0260c8c95" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "6cf0818a61cde731ed56f39108fc2919", + "spanID": "75dbd9a483442e39", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "6cf0818a61cde731ed56f39108fc2919", + "spanID": "1c868e27f1ba4657" + } + ], + "startTime": 1710318603794574, + "duration": 921, + "tags": [ + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8439f070-832a-9f08-942c-90bc888845d3" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "3fab1aec8014c6deacf8cac5c9eb15a8", + "spanID": "d9b9a1b19c880dcd", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "3fab1aec8014c6deacf8cac5c9eb15a8", + "spanID": "c994c22c9d335cca" + } + ], + "startTime": 1710318602795755, + "duration": 1017, + "tags": [ + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "bbd1cdab-c8b1-9663-9c32-eeabe00054b0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "3fbd19e5a0af73f8c7d51dddaf13e76c", + "spanID": "91060f8a196317f9", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "3fbd19e5a0af73f8c7d51dddaf13e76c", + "spanID": "5efdd61b2f9dfa1a" + } + ], + "startTime": 1710318610794996, + "duration": 1094, + "tags": [ + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "43b30580-5c98-95a9-9719-2ce63c650eca" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "59d9e68edef10d59a18b09cd29cf2124", + "spanID": "0f6ee4bca5448c53", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "59d9e68edef10d59a18b09cd29cf2124", + "spanID": "ee3e4981220ee31a" + } + ], + "startTime": 1710318191798365, + "duration": 894, + "tags": [ + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "425bbfa6-65c9-9ded-9d17-3ef9ff814921" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "c4ff9ce8db49330a8da54ba02c9856a6", + "spanID": "2d9be720ddf92321", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "c4ff9ce8db49330a8da54ba02c9856a6", + "spanID": "627013d7fe738ea5" + } + ], + "startTime": 1710318189801305, + "duration": 2466, + "tags": [ + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "f5d22925-6eda-90c7-b102-6cc64ca53a45" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "eeb03f5903b86dc8ff4da7fac6ee76b9", + "spanID": "89a96cba47336017", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "eeb03f5903b86dc8ff4da7fac6ee76b9", + "spanID": "1d3ca3c6f2c6bc1f" + } + ], + "startTime": 1710318188801656, + "duration": 2415, + "tags": [ + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "f87a4b0c-10e7-9d66-9735-3ef5999ad2fe" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "5232e5dc465d21f9519e5bd3c9884378", + "spanID": "0ba09d143db72992", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "5232e5dc465d21f9519e5bd3c9884378", + "spanID": "42c08187f2b616e2" + } + ], + "startTime": 1710318186798984, + "duration": 903, + "tags": [ + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "2ca1383d-f416-9cd0-b0d6-d269a387afc6" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "77b2186e469c094e6d0d8a7bdce1a6f0", + "spanID": "11527d3a988453b3", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "77b2186e469c094e6d0d8a7bdce1a6f0", + "spanID": "745f7dbcc1ac2c55" + } + ], + "startTime": 1710318184793002, + "duration": 778, + "tags": [ + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "4d2a7c08-1dd7-9bac-b03d-ee02b604f15a" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "c1d1fd2dca4214e8a07d625323038cf3", + "spanID": "aae254274f784f9b", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "c1d1fd2dca4214e8a07d625323038cf3", + "spanID": "02fe176133e967fa" + } + ], + "startTime": 1710318193801862, + "duration": 2525, + "tags": [ + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "29c245b6-0b51-9175-a811-36420b4f0972" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "a1a2ac805f2d55f7dab1fb26966cc9b9", + "spanID": "3555a7c979879056", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a1a2ac805f2d55f7dab1fb26966cc9b9", + "spanID": "6167c4c2ece744a9" + } + ], + "startTime": 1710318190793398, + "duration": 982, + "tags": [ + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "30fa2b56-cd5b-9911-8846-eae01c14eef0" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "3b11e50e8a6d4107e513b3c626def1d0", + "spanID": "9ad1ad059d213417", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "3b11e50e8a6d4107e513b3c626def1d0", + "spanID": "6c39247a9733e22b" + } + ], + "startTime": 1710318187801438, + "duration": 2644, + "tags": [ + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "4c65c132-f95b-9294-8379-25a8d4fbfe05" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "f1faa6f5450ebdc492efcbcea559fb91", + "spanID": "209f5954cbe2928f", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "f1faa6f5450ebdc492efcbcea559fb91", + "spanID": "f2ff2829278802ef" + } + ], + "startTime": 1710318185802962, + "duration": 2375, + "tags": [ + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "98005795-1cee-97a1-ac5a-0c3dbe36e1ac" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "5c55051c37320d221dd366ec6fca7014", + "spanID": "5b17c94f45d515f6", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "5c55051c37320d221dd366ec6fca7014", + "spanID": "36ec6418f5391c3f" + } + ], + "startTime": 1710318192801844, + "duration": 2573, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "af42f69c-a708-961b-93d0-1328ee84475f" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "b1b6147b2eef0dfb42f013b2d5b6e605", + "spanID": "2d4c7fce7a41e199", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "b1b6147b2eef0dfb42f013b2d5b6e605", + "spanID": "2748a54f4f7a061b" + } + ], + "startTime": 1710318547793631, + "duration": 707, + "tags": [ + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "9c472bc7-4efc-9ba9-8d9a-deb8c623dfa8" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "20978415cb8480e408a10653392bd748", + "spanID": "87ea49ab2db2d46d", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "20978415cb8480e408a10653392bd748", + "spanID": "3ba070e75670e1c5" + } + ], + "startTime": 1710318544793103, + "duration": 793, + "tags": [ + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "3151ca30-ee80-9ed0-b808-b7515805caad" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "40f80bd3c8a2d6bfa58c93b2f032a85d", + "spanID": "c63e10d0d5cb94f7", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "40f80bd3c8a2d6bfa58c93b2f032a85d", + "spanID": "939ab52e8f4463bc" + } + ], + "startTime": 1710318553793276, + "duration": 751, + "tags": [ + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "2be04f6e-b8d4-9552-8732-89c3fa45cbb2" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "ac2c840903913e0f8fa1f31321984dce", + "spanID": "c0c78e9432e30856", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "ac2c840903913e0f8fa1f31321984dce", + "spanID": "2daf6681cf561301" + } + ], + "startTime": 1710318552793226, + "duration": 775, + "tags": [ + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "7f9a8f36-9ded-95ac-88c8-de0e00859ec8" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "a46082bd8a75a133b546afb1919f17cb", + "spanID": "cf2febbce05133b6", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a46082bd8a75a133b546afb1919f17cb", + "spanID": "c8cd7123af99bc10" + } + ], + "startTime": 1710318548795075, + "duration": 1029, + "tags": [ + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "7548a379-df45-9090-ade9-6f0f346cbfd5" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "922f01ea9677e68facbb695202d12017", + "spanID": "9a8a42bb268badfc", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "922f01ea9677e68facbb695202d12017", + "spanID": "3b05e6bce3894a5b" + } + ], + "startTime": 1710318546793257, + "duration": 755, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "96246e9a-1ffc-9958-b840-46543fa7a687" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "38d25951b598cb1dded2a9f258f66eab", + "spanID": "e73454dea6dd0e61", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "38d25951b598cb1dded2a9f258f66eab", + "spanID": "e829452f32f40b8b" + } + ], + "startTime": 1710318545794857, + "duration": 812, + "tags": [ + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "725c1b0a-9ef1-97e2-b2af-c3974d399765" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "605194ca7f8f40b76074b1708bdedd02", + "spanID": "e44c0d0628c4b75a", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "605194ca7f8f40b76074b1708bdedd02", + "spanID": "526126716fa98a1f" + } + ], + "startTime": 1710318551793856, + "duration": 952, + "tags": [ + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "20742c86-aed6-9801-83ac-6517e5a1c118" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "f0ae7f539c88b01b7074b90b2677a859", + "spanID": "23929f3509eec434", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "f0ae7f539c88b01b7074b90b2677a859", + "spanID": "21257cf74678d5af" + } + ], + "startTime": 1710318550793583, + "duration": 748, + "tags": [ + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "87b06033-4ad0-9d84-af2c-97a07f9ebe89" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "9b48a956f276e63cbf33c966e5bb5049", + "spanID": "b0f72c86e493a95c", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "9b48a956f276e63cbf33c966e5bb5049", + "spanID": "97e344bd93962007" + } + ], + "startTime": 1710318549793088, + "duration": 701, + "tags": [ + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "9fc1a3e2-ec93-9b3c-adc3-27aa63d70180" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "4272a552f4b7d78af210d013727ea3a4", + "spanID": "9050f0c0bec47fb6", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4272a552f4b7d78af210d013727ea3a4", + "spanID": "6dbc796293efb290" + } + ], + "startTime": 1710318253801943, + "duration": 2568, + "tags": [ + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "37f0c435-a5c8-9ff1-bdef-ba2556dc0482" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "a886a70bc9d3aee0e308012e81659d1c", + "spanID": "77462b2434ab0b1c", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a886a70bc9d3aee0e308012e81659d1c", + "spanID": "c2595bf688111fe6" + } + ], + "startTime": 1710318252802263, + "duration": 2534, + "tags": [ + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "64ab5249-3f2b-9611-af4d-b0ce070fa330" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "91d4bb05e6ddce091827e9a21b086ecf", + "spanID": "eb369d591fd45bb7", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "91d4bb05e6ddce091827e9a21b086ecf", + "spanID": "2e4124074a54b956" + } + ], + "startTime": 1710318248801986, + "duration": 2551, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "0c57680f-b7e4-922d-ad35-53906260450f" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "c43934ce9ccf88b0cb556692f1fb5d0d", + "spanID": "02da7432060188fe", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "c43934ce9ccf88b0cb556692f1fb5d0d", + "spanID": "8883dbe07e4a91af" + } + ], + "startTime": 1710318247801963, + "duration": 2514, + "tags": [ + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "56a5a8ff-a9b5-9ffd-91e8-3e24c951e0f3" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "325493c338bd43bdc08756f931f3fcd1", + "spanID": "2da80b14ae9b1ee5", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "325493c338bd43bdc08756f931f3fcd1", + "spanID": "6b42f3ac359da4b3" + } + ], + "startTime": 1710318246793290, + "duration": 830, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "34693442-a423-9b3b-9885-0bd809cd7320" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "4d05a65d54b2b91e907919b21bccaffc", + "spanID": "2cc2d5aaa3a2f987", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "4d05a65d54b2b91e907919b21bccaffc", + "spanID": "48e0cf9fde265a2e" + } + ], + "startTime": 1710318245801458, + "duration": 2926, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "70b13bca-8793-90da-8b8a-5cf297ae03a8" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "791eca6ddd915628eeca3e9d5b745232", + "spanID": "5b3ab1b9c2c15ad7", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "791eca6ddd915628eeca3e9d5b745232", + "spanID": "09f384fe77dbfd41" + } + ], + "startTime": 1710318244794268, + "duration": 1056, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "d6458028-3a94-9d5e-8fc1-3478125873da" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "ca0746aba2a2323bf7b2072d8c62466e", + "spanID": "c3cc5d81f74080d6", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "ca0746aba2a2323bf7b2072d8c62466e", + "spanID": "b5094a6f5b94a9ed" + } + ], + "startTime": 1710318250802356, + "duration": 2530, + "tags": [ + { + "key": "guid:x-request-id", + "type": "string", + "value": "6be38a1a-ce4c-97bd-859c-f9837a2c09fc" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "b7a381447b3d9c594651e09aa0959a4c", + "spanID": "505e8d2505136e30", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "b7a381447b3d9c594651e09aa0959a4c", + "spanID": "d51f1c975ad125f4" + } + ], + "startTime": 1710318249801895, + "duration": 2497, + "tags": [ + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "a6bb977f-a59a-9955-be84-9fb72cfbf5bb" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "f331fc553a97cd6066a32d567f4c9a4e", + "spanID": "c9edd25fa0a225bb", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "f331fc553a97cd6066a32d567f4c9a4e", + "spanID": "64a4a584e5e80f04" + } + ], + "startTime": 1710318243799745, + "duration": 1116, + "tags": [ + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "c5cac28c-65b1-94b8-804d-6b23ccedadc0" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "6660625d22f0ea23bcb66806e6c6d668", + "spanID": "38fc578687d4a8f2", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "6660625d22f0ea23bcb66806e6c6d668", + "spanID": "a2105162c85ff978" + } + ], + "startTime": 1710318485793135, + "duration": 680, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "69de43e5-b874-9841-ba87-c9c5aa02a8e0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "a0d240cdd8c53d210c27923b6782e782", + "spanID": "359659a160126339", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a0d240cdd8c53d210c27923b6782e782", + "spanID": "4a888203b0555121" + } + ], + "startTime": 1710318484792853, + "duration": 679, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "6b9c0cf8-6f99-97d7-a469-f48b716b27a1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "de62e4c71b392d39000a7cc219f278df", + "spanID": "83ce3cb977716397", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "de62e4c71b392d39000a7cc219f278df", + "spanID": "240df99c7394cdb5" + } + ], + "startTime": 1710318493793257, + "duration": 746, + "tags": [ + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "cf580936-4dcf-9b9c-8859-74184ebd8f67" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "12a19da584f4d14a45ba8ffec21b7799", + "spanID": "45b0abfae569f772", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "12a19da584f4d14a45ba8ffec21b7799", + "spanID": "7829fd86d67efcd3" + } + ], + "startTime": 1710318492793438, + "duration": 714, + "tags": [ + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "b2c690db-4067-9102-9eab-c835ab544d81" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "c2485781ee733c221917ecac4794c26d", + "spanID": "14963e28bf9822ec", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "c2485781ee733c221917ecac4794c26d", + "spanID": "6635ce6597d47bde" + } + ], + "startTime": 1710318491793616, + "duration": 811, + "tags": [ + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "90ea33e9-b21c-948d-a193-91a1a00b830a" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "f9d960833a12b1907630bf3659529bd0", + "spanID": "6022c0c837250af2", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "f9d960833a12b1907630bf3659529bd0", + "spanID": "7c21086277f3c85e" + } + ], + "startTime": 1710318486793270, + "duration": 722, + "tags": [ + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "175a73b4-597d-9cb2-936c-c15fcc36f68c" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "53ed992c6271a94fd03dfd4ac26eb691", + "spanID": "ceb459071777ea25", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "53ed992c6271a94fd03dfd4ac26eb691", + "spanID": "01843043f6684ac8" + } + ], + "startTime": 1710318490793136, + "duration": 725, + "tags": [ + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "2449bc71-e2b3-955f-a628-e03e6f3bfe1d" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "d5f6f20994cd8209d7e02e68b5cfc941", + "spanID": "2010daf0ac8291b6", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "d5f6f20994cd8209d7e02e68b5cfc941", + "spanID": "d9f2172fd8686f14" + } + ], + "startTime": 1710318489793301, + "duration": 825, + "tags": [ + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "1432866a-c927-9a54-a793-b996f263e827" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "c41862636f48563b52033a88f6080cdc", + "spanID": "c384386e2efda05f", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "c41862636f48563b52033a88f6080cdc", + "spanID": "743a09c9e33d89e5" + } + ], + "startTime": 1710318488793620, + "duration": 698, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "a9552a33-4a93-9baa-a1b8-89d9b09edad0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "86c99f3aaac99dfc4afe9fa892adde83", + "spanID": "6ca22bf89189ae47", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "86c99f3aaac99dfc4afe9fa892adde83", + "spanID": "b150a139cc81ef6d" + } + ], + "startTime": 1710318487792762, + "duration": 749, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "fbec3ad6-de5e-966f-9b97-3a0e60084e96" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "d2875d70b9e37bf5cdb7cf6743209a65", + "spanID": "39f5be1774300338", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "d2875d70b9e37bf5cdb7cf6743209a65", + "spanID": "71bd2032b1429624" + } + ], + "startTime": 1710318366801378, + "duration": 828, + "tags": [ + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "06af159f-ace3-99dc-8613-4188c4656b83" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "96bc1cc6fa384df7f21669bafac7bb8a", + "spanID": "601a7a2f5c68aa8e", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "96bc1cc6fa384df7f21669bafac7bb8a", + "spanID": "99da40a4adc864c1" + } + ], + "startTime": 1710318365802225, + "duration": 1054, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "7ae70e06-79f0-99b5-a05f-042a451d6563" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "dbe8de3efce08f6b1760224e7f66bbc1", + "spanID": "f2bda03d82d22757", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "dbe8de3efce08f6b1760224e7f66bbc1", + "spanID": "d56b40c1b140c29e" + } + ], + "startTime": 1710318371793592, + "duration": 761, + "tags": [ + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "2b8ae06f-4965-977f-802d-26cbc3199a67" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "dd050ce053733cd5270446fde68004d3", + "spanID": "5a6a534acefa575c", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "dd050ce053733cd5270446fde68004d3", + "spanID": "773aed459dae7f95" + } + ], + "startTime": 1710318370795941, + "duration": 999, + "tags": [ + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "0a7e098b-c60c-90ce-bbd6-1454636a5c7c" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "cb14be0861293a400d3d021e2be23653", + "spanID": "4a05466d47faa1da", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "cb14be0861293a400d3d021e2be23653", + "spanID": "ffe0979d40582938" + } + ], + "startTime": 1710318369802106, + "duration": 2493, + "tags": [ + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "2b8cb235-3580-96a6-8762-93a4694451ad" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "c83529a60b17f24b92aaecb2be1d5b50", + "spanID": "104563fab71e011e", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "c83529a60b17f24b92aaecb2be1d5b50", + "spanID": "fe2b20f746121d0b" + } + ], + "startTime": 1710318367801524, + "duration": 2531, + "tags": [ + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "b368272e-090f-9e61-8411-221b1e62fe0f" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "86080b0c827d1cdf5931648e2cdc56b8", + "spanID": "a5dd9b45df86fe44", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "86080b0c827d1cdf5931648e2cdc56b8", + "spanID": "8a5b27d83b9e9488" + } + ], + "startTime": 1710318373794868, + "duration": 1266, + "tags": [ + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "a9e58f59-eeb3-9b89-b15d-3bbe0bb5832e" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "96ff394d8cc4bb55674a31eb48846845", + "spanID": "c28d088fb4fcff53", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "96ff394d8cc4bb55674a31eb48846845", + "spanID": "ccf943d688deddb8" + } + ], + "startTime": 1710318372801593, + "duration": 1198, + "tags": [ + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "221c7a22-8e6d-9b3e-bcfc-13c6074adf1b" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "2d30a512668939038cd85a537ca30084", + "spanID": "ef220c3904c25395", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "2d30a512668939038cd85a537ca30084", + "spanID": "b2d061d20b37f29d" + } + ], + "startTime": 1710318368793939, + "duration": 814, + "tags": [ + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "31785920-e40c-95b2-9a63-84f45bca3cee" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "e9b36dc2e2cd0634ba2d41f2174d9660", + "spanID": "2ce823925ac9dd36", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "e9b36dc2e2cd0634ba2d41f2174d9660", + "spanID": "469e0cd393d1bf49" + } + ], + "startTime": 1710318363793558, + "duration": 742, + "tags": [ + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "924cc299-e0d5-9ea7-852b-8e5fe1e59828" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "6ba6f7eb87f3ca9c5befd7961d332274", + "spanID": "4f2a90afb4c1a472", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "6ba6f7eb87f3ca9c5befd7961d332274", + "spanID": "1d1e01140b0d7aab" + } + ], + "startTime": 1710318433802480, + "duration": 1624, + "tags": [ + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "2ed16d0c-bf83-99e0-9278-82f6a15969c7" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "a7830e0429b45bf68ece0e3f1ffc0c8c", + "spanID": "a5dbf742ace2ea02", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "a7830e0429b45bf68ece0e3f1ffc0c8c", + "spanID": "0765d6899f5792c0" + } + ], + "startTime": 1710318432794175, + "duration": 836, + "tags": [ + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "2c869e7c-5548-9104-8124-6ee0549239de" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "12a754a56ee783ac00ac5ca79049ccc8", + "spanID": "a09aa89160fd533b", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "12a754a56ee783ac00ac5ca79049ccc8", + "spanID": "182837c6942b8028" + } + ], + "startTime": 1710318430793746, + "duration": 719, + "tags": [ + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "de840837-6ae3-92ce-bd13-c79d045db75a" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "7be706eff86d9d21877a5198c67ce69a", + "spanID": "2994e83fd4bd74df", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "7be706eff86d9d21877a5198c67ce69a", + "spanID": "9ca971999b0336ff" + } + ], + "startTime": 1710318426804247, + "duration": 2504, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "d17b388f-cd72-9361-b1f0-b5242cb8b8cf" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "56c2c47780a693618731c3200bbac109", + "spanID": "7544e6882bdad69d", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "56c2c47780a693618731c3200bbac109", + "spanID": "b7ddeda7c7342353" + } + ], + "startTime": 1710318425802089, + "duration": 921, + "tags": [ + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "4637f24a-8996-9978-b139-fb4f44cd7039" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "6dd027ac672fe1803748ceee9a15fa3a", + "spanID": "8cbefca265506e91", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "6dd027ac672fe1803748ceee9a15fa3a", + "spanID": "251d808ca74a13a3" + } + ], + "startTime": 1710318431796787, + "duration": 1914, + "tags": [ + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "5fdcffba-7daa-986b-99a2-b25805a20d98" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "fe4f9b9b1f7a222151dc4fc5301ebd82", + "spanID": "639487340a890a4c", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "fe4f9b9b1f7a222151dc4fc5301ebd82", + "spanID": "c61690bde71d2303" + } + ], + "startTime": 1710318429793033, + "duration": 781, + "tags": [ + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "102bef91-7161-9019-82ce-d1995f91bde9" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "78f9c8f43ff94e1d3811957d537781e2", + "spanID": "d38399fc2d6cc6a2", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "78f9c8f43ff94e1d3811957d537781e2", + "spanID": "2861e62f18a28aa7" + } + ], + "startTime": 1710318428797894, + "duration": 904, + "tags": [ + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "13dfa4d0-ca00-978c-9d54-b63a470b7be7" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 6 + }, + { + "traceID": "594021380012592ed3fc971ca78b7a57", + "spanID": "7806c4c94de53518", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "594021380012592ed3fc971ca78b7a57", + "spanID": "3968e574e37ec9b0" + } + ], + "startTime": 1710318427793349, + "duration": 812, + "tags": [ + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "3e37e4ed-396b-98ab-b04c-fb646edb2214" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + }, + { + "traceID": "f2b209aa23f607ec426fd7964b2d98e0", + "spanID": "1390884afbee9ae4", + "operationName": "details.bookinfo.svc.cluster.local:9080/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "f2b209aa23f607ec426fd7964b2d98e0", + "spanID": "2b746e8402a6d1ed" + } + ], + "startTime": 1710318424798386, + "duration": 952, + "tags": [ + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.15" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "details" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "bookinfo" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|9080||" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.11~details-v1-698d88b-z2bws.bookinfo~bookinfo.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://details:9080/details/0" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_size", + "type": "string", + "value": "178" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "10808610-b472-9133-95ae-e6f5d66a7659" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p4", + "process": { + "serviceName": "details.bookinfo", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762955 + } + ] + }, + "warnings": null, + "traceSize": 7 + } +] diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/tls.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/tls.json new file mode 100644 index 0000000000..ea7db32cbb --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/tls.json @@ -0,0 +1 @@ +{ "status": "MTLS_NOT_ENABLED", "autoMTLSEnabled": true, "minTLS": "" } diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/workloads.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/workloads.json new file mode 100644 index 0000000000..167840794c --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/workloads.json @@ -0,0 +1,370 @@ +{ + "namespace": { + "name": "bookinfo", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "workloads": [ + { + "name": "details-v1", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-01-29T20:10:15Z", + "resourceVersion": "26835", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "details", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"details\",\"version\":\"v1\"},\"name\":\"details-v1\",\"namespace\":\"bookinfo\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"details\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"labels\":{\"app\":\"details\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"image\":\"docker.io/istio/examples-bookinfo-details-v1:1.18.0\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"details\",\"ports\":[{\"containerPort\":9080}]}],\"serviceAccountName\":\"bookinfo-details\"}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["bookinfo-details"], + "health": { + "workloadStatus": { + "name": "details-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": { + "http": { + "200": 1.0000017094046314 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "kiali-traffic-generator", + "cluster": "Kubernetes", + "type": "ReplicaSet", + "createdAt": "2024-01-29T20:11:02Z", + "resourceVersion": "26851", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "kiali-traffic-generator", + "kiali-test": "traffic-generator" + }, + "appLabel": true, + "versionLabel": false, + "podCount": 1, + "annotations": {}, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["default"], + "health": { + "workloadStatus": { + "name": "kiali-traffic-generator", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "productpage-v1", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-01-29T20:10:15Z", + "resourceVersion": "26856", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "productpage", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"productpage\",\"version\":\"v1\"},\"name\":\"productpage-v1\",\"namespace\":\"bookinfo\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"productpage\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"annotations\":{\"prometheus.io/path\":\"/metrics\",\"prometheus.io/port\":\"9080\",\"prometheus.io/scrape\":\"true\"},\"labels\":{\"app\":\"productpage\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"image\":\"docker.io/istio/examples-bookinfo-productpage-v1:1.18.0\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"productpage\",\"ports\":[{\"containerPort\":9080}],\"volumeMounts\":[{\"mountPath\":\"/tmp\",\"name\":\"tmp\"}]}],\"serviceAccountName\":\"bookinfo-productpage\",\"volumes\":[{\"emptyDir\":{},\"name\":\"tmp\"}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["bookinfo-productpage"], + "health": { + "workloadStatus": { + "name": "productpage-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": { + "http": { + "200": 1.0000017094046316 + } + }, + "outbound": { + "http": { + "200": 1.9999999999999996 + } + }, + "healthAnnotations": {} + } + } + }, + { + "name": "ratings-v1", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-01-29T20:10:15Z", + "resourceVersion": "26849", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "ratings", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"ratings\",\"version\":\"v1\"},\"name\":\"ratings-v1\",\"namespace\":\"bookinfo\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"ratings\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"labels\":{\"app\":\"ratings\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"image\":\"docker.io/istio/examples-bookinfo-ratings-v1:1.18.0\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"ratings\",\"ports\":[{\"containerPort\":9080}]}],\"serviceAccountName\":\"bookinfo-ratings\"}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["bookinfo-ratings"], + "health": { + "workloadStatus": { + "name": "ratings-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": { + "http": { + "200": 0.6905982905982905 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "reviews-v1", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-01-29T20:10:15Z", + "resourceVersion": "26845", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "reviews", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"reviews\",\"version\":\"v1\"},\"name\":\"reviews-v1\",\"namespace\":\"bookinfo\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"reviews\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"labels\":{\"app\":\"reviews\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"LOG_DIR\",\"value\":\"/tmp/logs\"}],\"image\":\"docker.io/istio/examples-bookinfo-reviews-v1:1.18.0\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"reviews\",\"ports\":[{\"containerPort\":9080}],\"volumeMounts\":[{\"mountPath\":\"/tmp\",\"name\":\"tmp\"},{\"mountPath\":\"/opt/ibm/wlp/output\",\"name\":\"wlp-output\"}]}],\"serviceAccountName\":\"bookinfo-reviews\",\"volumes\":[{\"emptyDir\":{},\"name\":\"wlp-output\"},{\"emptyDir\":{},\"name\":\"tmp\"}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["bookinfo-reviews"], + "health": { + "workloadStatus": { + "name": "reviews-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": { + "http": { + "200": 0.31111111111111106 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "reviews-v2", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-01-29T20:10:15Z", + "resourceVersion": "26828", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "reviews", + "version": "v2" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"reviews\",\"version\":\"v2\"},\"name\":\"reviews-v2\",\"namespace\":\"bookinfo\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"reviews\",\"version\":\"v2\"}},\"template\":{\"metadata\":{\"labels\":{\"app\":\"reviews\",\"version\":\"v2\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"LOG_DIR\",\"value\":\"/tmp/logs\"}],\"image\":\"docker.io/istio/examples-bookinfo-reviews-v2:1.18.0\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"reviews\",\"ports\":[{\"containerPort\":9080}],\"volumeMounts\":[{\"mountPath\":\"/tmp\",\"name\":\"tmp\"},{\"mountPath\":\"/opt/ibm/wlp/output\",\"name\":\"wlp-output\"}]}],\"serviceAccountName\":\"bookinfo-reviews\",\"volumes\":[{\"emptyDir\":{},\"name\":\"wlp-output\"},{\"emptyDir\":{},\"name\":\"tmp\"}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["bookinfo-reviews"], + "health": { + "workloadStatus": { + "name": "reviews-v2", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": { + "http": { + "200": 0.34358974358974353 + } + }, + "outbound": { + "http": { + "200": 0.34358974358974353 + } + }, + "healthAnnotations": {} + } + } + }, + { + "name": "reviews-v3", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-01-29T20:10:15Z", + "resourceVersion": "26840", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "reviews", + "version": "v3" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"reviews\",\"version\":\"v3\"},\"name\":\"reviews-v3\",\"namespace\":\"bookinfo\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"reviews\",\"version\":\"v3\"}},\"template\":{\"metadata\":{\"labels\":{\"app\":\"reviews\",\"version\":\"v3\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"LOG_DIR\",\"value\":\"/tmp/logs\"}],\"image\":\"docker.io/istio/examples-bookinfo-reviews-v3:1.18.0\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"reviews\",\"ports\":[{\"containerPort\":9080}],\"volumeMounts\":[{\"mountPath\":\"/tmp\",\"name\":\"tmp\"},{\"mountPath\":\"/opt/ibm/wlp/output\",\"name\":\"wlp-output\"}]}],\"serviceAccountName\":\"bookinfo-reviews\",\"volumes\":[{\"emptyDir\":{},\"name\":\"wlp-output\"},{\"emptyDir\":{},\"name\":\"tmp\"}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["bookinfo-reviews"], + "health": { + "workloadStatus": { + "name": "reviews-v3", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": { + "http": { + "200": 0.34700854700854694 + } + }, + "outbound": { + "http": { + "200": 0.34700854700854694 + } + }, + "healthAnnotations": {} + } + } + } + ], + "validations": { + "workload": { + "details-v1.bookinfo": { + "name": "details-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali-traffic-generator.bookinfo": { + "name": "kiali-traffic-generator", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "productpage-v1.bookinfo": { + "name": "productpage-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "ratings-v1.bookinfo": { + "name": "ratings-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v1.bookinfo": { + "name": "reviews-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v2.bookinfo": { + "name": "reviews-v2", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v3.bookinfo": { + "name": "reviews-v3", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/workloads/details_v1.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/workloads/details_v1.json new file mode 100644 index 0000000000..ac1ec7d292 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/workloads/details_v1.json @@ -0,0 +1,194 @@ +{ + "name": "details-v1", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-15T09:25:39Z", + "resourceVersion": "16316", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "details", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 0, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"details\",\"version\":\"v1\"},\"name\":\"details-v1\",\"namespace\":\"bookinfo\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"details\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"labels\":{\"app\":\"details\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"image\":\"docker.io/istio/examples-bookinfo-details-v1:1.18.0\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"details\",\"ports\":[{\"containerPort\":9080}]}],\"serviceAccountName\":\"bookinfo-details\"}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": null, + "dashboardAnnotations": {}, + "serviceAccountNames": null, + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "pods": [ + { + "name": "details-v1-698d88b-dzrhr", + "labels": { + "app": "details", + "pod-template-hash": "698d88b", + "security.istio.io/tlsMode": "istio", + "service.istio.io/canonical-name": "details", + "service.istio.io/canonical-revision": "v1", + "version": "v1" + }, + "createdAt": "2024-02-15T09:25:39Z", + "createdBy": [ + { + "name": "details-v1-698d88b", + "kind": "ReplicaSet" + } + ], + "containers": [ + { + "name": "details", + "image": "docker.io/istio/examples-bookinfo-details-v1:1.18.0", + "isProxy": false, + "isReady": true, + "isAmbient": false + } + ], + "istioContainers": [ + { + "name": "istio-proxy", + "image": "gcr.io/istio-release/proxyv2:1.20.1", + "isProxy": true, + "isReady": true, + "isAmbient": false + } + ], + "istioInitContainers": [ + { + "name": "istio-init", + "image": "gcr.io/istio-release/proxyv2:1.20.1", + "isProxy": true, + "isReady": true, + "isAmbient": false + } + ], + "status": "Running", + "statusMessage": "", + "statusReason": "", + "appLabel": true, + "versionLabel": true, + "annotations": { + "istio.io/rev": "default", + "kubectl.kubernetes.io/default-container": "details", + "kubectl.kubernetes.io/default-logs-container": "details", + "prometheus.io/path": "/stats/prometheus", + "prometheus.io/port": "15020", + "prometheus.io/scrape": "true", + "sidecar.istio.io/status": "{\"initContainers\":[\"istio-init\"],\"containers\":[\"istio-proxy\"],\"volumes\":[\"workload-socket\",\"credential-socket\",\"workload-certs\",\"istio-envoy\",\"istio-data\",\"istio-podinfo\",\"istio-token\",\"istiod-ca-cert\"],\"imagePullSecrets\":null,\"revision\":\"default\"}" + }, + "proxyStatus": { + "CDS": "Synced", + "EDS": "Synced", + "LDS": "Synced", + "RDS": "Synced" + }, + "serviceAccountName": "bookinfo-details" + } + ], + "services": [ + { + "name": "details", + "namespace": "bookinfo", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "details", + "service": "details" + }, + "selector": { + "app": "details" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + } + ], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "additionalDetails": [], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": false, + "checks": [ + { + "code": "KIA0302", + "message": "No matching workload found for gateway selector in this namespace", + "severity": "warning", + "path": "spec/selector" + } + ], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "details-v1.bookinfo": { + "name": "details-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + }, + "waypointWorkloads": null, + "health": { + "workloadStatus": { + "name": "details-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": { + "http": { + "200": 0.9999999999999999 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/workloads/kiali_traffic_generator.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/workloads/kiali_traffic_generator.json new file mode 100644 index 0000000000..8d9003cd72 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/workloads/kiali_traffic_generator.json @@ -0,0 +1,156 @@ +{ + "name": "kiali-traffic-generator", + "cluster": "Kubernetes", + "type": "ReplicaSet", + "createdAt": "2024-02-15T09:26:32Z", + "resourceVersion": "16299", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "kiali-traffic-generator", + "kiali-test": "traffic-generator" + }, + "appLabel": true, + "versionLabel": false, + "podCount": 0, + "annotations": null, + "healthAnnotations": {}, + "istioReferences": null, + "dashboardAnnotations": {}, + "serviceAccountNames": null, + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "pods": [ + { + "name": "kiali-traffic-generator-nsgk4", + "labels": { + "app": "kiali-traffic-generator", + "kiali-test": "traffic-generator", + "security.istio.io/tlsMode": "istio", + "service.istio.io/canonical-name": "kiali-traffic-generator", + "service.istio.io/canonical-revision": "latest" + }, + "createdAt": "2024-02-15T09:26:32Z", + "createdBy": [ + { + "name": "kiali-traffic-generator", + "kind": "ReplicaSet" + } + ], + "containers": [ + { + "name": "kiali-traffic-generator", + "image": "quay.io/kiali/kiali-test-mesh-traffic-generator:latest", + "isProxy": false, + "isReady": true, + "isAmbient": false + } + ], + "istioContainers": [ + { + "name": "istio-proxy", + "image": "gcr.io/istio-release/proxyv2:1.20.1", + "isProxy": true, + "isReady": true, + "isAmbient": false + } + ], + "istioInitContainers": [ + { + "name": "istio-init", + "image": "gcr.io/istio-release/proxyv2:1.20.1", + "isProxy": true, + "isReady": true, + "isAmbient": false + } + ], + "status": "Running", + "statusMessage": "", + "statusReason": "", + "appLabel": true, + "versionLabel": false, + "annotations": { + "istio.io/rev": "default", + "kubectl.kubernetes.io/default-container": "kiali-traffic-generator", + "kubectl.kubernetes.io/default-logs-container": "kiali-traffic-generator", + "prometheus.io/path": "/stats/prometheus", + "prometheus.io/port": "15020", + "prometheus.io/scrape": "true", + "sidecar.istio.io/status": "{\"initContainers\":[\"istio-init\"],\"containers\":[\"istio-proxy\"],\"volumes\":[\"workload-socket\",\"credential-socket\",\"workload-certs\",\"istio-envoy\",\"istio-data\",\"istio-podinfo\",\"istio-token\",\"istiod-ca-cert\"],\"imagePullSecrets\":null,\"revision\":\"default\"}" + }, + "proxyStatus": { + "CDS": "Synced", + "EDS": "Synced", + "LDS": "Synced", + "RDS": "Synced" + }, + "serviceAccountName": "default" + } + ], + "services": [], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "additionalDetails": [], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": false, + "checks": [ + { + "code": "KIA0302", + "message": "No matching workload found for gateway selector in this namespace", + "severity": "warning", + "path": "spec/selector" + } + ], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "kiali-traffic-generator.bookinfo": { + "name": "kiali-traffic-generator", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + }, + "waypointWorkloads": null, + "health": { + "workloadStatus": { + "name": "kiali-traffic-generator", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/workloads/productpage_v1.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/workloads/productpage_v1.json new file mode 100644 index 0000000000..17a2c753c1 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/workloads/productpage_v1.json @@ -0,0 +1,198 @@ +{ + "name": "productpage-v1", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-15T09:25:39Z", + "resourceVersion": "16263", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "productpage", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 0, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"productpage\",\"version\":\"v1\"},\"name\":\"productpage-v1\",\"namespace\":\"bookinfo\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"productpage\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"annotations\":{\"prometheus.io/path\":\"/metrics\",\"prometheus.io/port\":\"9080\",\"prometheus.io/scrape\":\"true\"},\"labels\":{\"app\":\"productpage\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"image\":\"docker.io/istio/examples-bookinfo-productpage-v1:1.18.0\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"productpage\",\"ports\":[{\"containerPort\":9080}],\"volumeMounts\":[{\"mountPath\":\"/tmp\",\"name\":\"tmp\"}]}],\"serviceAccountName\":\"bookinfo-productpage\",\"volumes\":[{\"emptyDir\":{},\"name\":\"tmp\"}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": null, + "dashboardAnnotations": {}, + "serviceAccountNames": null, + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "pods": [ + { + "name": "productpage-v1-675fc69cf-jbb29", + "labels": { + "app": "productpage", + "pod-template-hash": "675fc69cf", + "security.istio.io/tlsMode": "istio", + "service.istio.io/canonical-name": "productpage", + "service.istio.io/canonical-revision": "v1", + "version": "v1" + }, + "createdAt": "2024-02-15T09:25:40Z", + "createdBy": [ + { + "name": "productpage-v1-675fc69cf", + "kind": "ReplicaSet" + } + ], + "containers": [ + { + "name": "productpage", + "image": "docker.io/istio/examples-bookinfo-productpage-v1:1.18.0", + "isProxy": false, + "isReady": true, + "isAmbient": false + } + ], + "istioContainers": [ + { + "name": "istio-proxy", + "image": "gcr.io/istio-release/proxyv2:1.20.1", + "isProxy": true, + "isReady": true, + "isAmbient": false + } + ], + "istioInitContainers": [ + { + "name": "istio-init", + "image": "gcr.io/istio-release/proxyv2:1.20.1", + "isProxy": true, + "isReady": true, + "isAmbient": false + } + ], + "status": "Running", + "statusMessage": "", + "statusReason": "", + "appLabel": true, + "versionLabel": true, + "annotations": { + "istio.io/rev": "default", + "kubectl.kubernetes.io/default-container": "productpage", + "kubectl.kubernetes.io/default-logs-container": "productpage", + "prometheus.io/path": "/stats/prometheus", + "prometheus.io/port": "15020", + "prometheus.io/scrape": "true", + "sidecar.istio.io/status": "{\"initContainers\":[\"istio-init\"],\"containers\":[\"istio-proxy\"],\"volumes\":[\"workload-socket\",\"credential-socket\",\"workload-certs\",\"istio-envoy\",\"istio-data\",\"istio-podinfo\",\"istio-token\",\"istiod-ca-cert\"],\"imagePullSecrets\":null,\"revision\":\"default\"}" + }, + "proxyStatus": { + "CDS": "Synced", + "EDS": "Synced", + "LDS": "Synced", + "RDS": "Synced" + }, + "serviceAccountName": "bookinfo-productpage" + } + ], + "services": [ + { + "name": "productpage", + "namespace": "bookinfo", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "productpage", + "service": "productpage" + }, + "selector": { + "app": "productpage" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + } + ], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "additionalDetails": [], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": false, + "checks": [ + { + "code": "KIA0302", + "message": "No matching workload found for gateway selector in this namespace", + "severity": "warning", + "path": "spec/selector" + } + ], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "productpage-v1.bookinfo": { + "name": "productpage-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + }, + "waypointWorkloads": null, + "health": { + "workloadStatus": { + "name": "productpage-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": { + "http": { + "200": 0.9999999999999999 + } + }, + "outbound": { + "http": { + "200": 2 + } + }, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/workloads/ratings_v1.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/workloads/ratings_v1.json new file mode 100644 index 0000000000..9fbfc87bfd --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/workloads/ratings_v1.json @@ -0,0 +1,194 @@ +{ + "name": "ratings-v1", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-15T09:25:39Z", + "resourceVersion": "16304", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "ratings", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 0, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"ratings\",\"version\":\"v1\"},\"name\":\"ratings-v1\",\"namespace\":\"bookinfo\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"ratings\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"labels\":{\"app\":\"ratings\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"image\":\"docker.io/istio/examples-bookinfo-ratings-v1:1.18.0\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"ratings\",\"ports\":[{\"containerPort\":9080}]}],\"serviceAccountName\":\"bookinfo-ratings\"}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": null, + "dashboardAnnotations": {}, + "serviceAccountNames": null, + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "pods": [ + { + "name": "ratings-v1-6484c4d9bb-84w5q", + "labels": { + "app": "ratings", + "pod-template-hash": "6484c4d9bb", + "security.istio.io/tlsMode": "istio", + "service.istio.io/canonical-name": "ratings", + "service.istio.io/canonical-revision": "v1", + "version": "v1" + }, + "createdAt": "2024-02-15T09:25:39Z", + "createdBy": [ + { + "name": "ratings-v1-6484c4d9bb", + "kind": "ReplicaSet" + } + ], + "containers": [ + { + "name": "ratings", + "image": "docker.io/istio/examples-bookinfo-ratings-v1:1.18.0", + "isProxy": false, + "isReady": true, + "isAmbient": false + } + ], + "istioContainers": [ + { + "name": "istio-proxy", + "image": "gcr.io/istio-release/proxyv2:1.20.1", + "isProxy": true, + "isReady": true, + "isAmbient": false + } + ], + "istioInitContainers": [ + { + "name": "istio-init", + "image": "gcr.io/istio-release/proxyv2:1.20.1", + "isProxy": true, + "isReady": true, + "isAmbient": false + } + ], + "status": "Running", + "statusMessage": "", + "statusReason": "", + "appLabel": true, + "versionLabel": true, + "annotations": { + "istio.io/rev": "default", + "kubectl.kubernetes.io/default-container": "ratings", + "kubectl.kubernetes.io/default-logs-container": "ratings", + "prometheus.io/path": "/stats/prometheus", + "prometheus.io/port": "15020", + "prometheus.io/scrape": "true", + "sidecar.istio.io/status": "{\"initContainers\":[\"istio-init\"],\"containers\":[\"istio-proxy\"],\"volumes\":[\"workload-socket\",\"credential-socket\",\"workload-certs\",\"istio-envoy\",\"istio-data\",\"istio-podinfo\",\"istio-token\",\"istiod-ca-cert\"],\"imagePullSecrets\":null,\"revision\":\"default\"}" + }, + "proxyStatus": { + "CDS": "Synced", + "EDS": "Synced", + "LDS": "Synced", + "RDS": "Synced" + }, + "serviceAccountName": "bookinfo-ratings" + } + ], + "services": [ + { + "name": "ratings", + "namespace": "bookinfo", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "ratings", + "service": "ratings" + }, + "selector": { + "app": "ratings" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + } + ], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "additionalDetails": [], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": false, + "checks": [ + { + "code": "KIA0302", + "message": "No matching workload found for gateway selector in this namespace", + "severity": "warning", + "path": "spec/selector" + } + ], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "ratings-v1.bookinfo": { + "name": "ratings-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + }, + "waypointWorkloads": null, + "health": { + "workloadStatus": { + "name": "ratings-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": { + "http": { + "200": 0.7555555555555555 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/workloads/reviews_v1.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/workloads/reviews_v1.json new file mode 100644 index 0000000000..5787dc820a --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/workloads/reviews_v1.json @@ -0,0 +1,194 @@ +{ + "name": "reviews-v1", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-15T09:25:39Z", + "resourceVersion": "16297", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "reviews", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 0, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"reviews\",\"version\":\"v1\"},\"name\":\"reviews-v1\",\"namespace\":\"bookinfo\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"reviews\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"labels\":{\"app\":\"reviews\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"LOG_DIR\",\"value\":\"/tmp/logs\"}],\"image\":\"docker.io/istio/examples-bookinfo-reviews-v1:1.18.0\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"reviews\",\"ports\":[{\"containerPort\":9080}],\"volumeMounts\":[{\"mountPath\":\"/tmp\",\"name\":\"tmp\"},{\"mountPath\":\"/opt/ibm/wlp/output\",\"name\":\"wlp-output\"}]}],\"serviceAccountName\":\"bookinfo-reviews\",\"volumes\":[{\"emptyDir\":{},\"name\":\"wlp-output\"},{\"emptyDir\":{},\"name\":\"tmp\"}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": null, + "dashboardAnnotations": {}, + "serviceAccountNames": null, + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "pods": [ + { + "name": "reviews-v1-5b5d6494f4-2vw99", + "labels": { + "app": "reviews", + "pod-template-hash": "5b5d6494f4", + "security.istio.io/tlsMode": "istio", + "service.istio.io/canonical-name": "reviews", + "service.istio.io/canonical-revision": "v1", + "version": "v1" + }, + "createdAt": "2024-02-15T09:25:39Z", + "createdBy": [ + { + "name": "reviews-v1-5b5d6494f4", + "kind": "ReplicaSet" + } + ], + "containers": [ + { + "name": "reviews", + "image": "docker.io/istio/examples-bookinfo-reviews-v1:1.18.0", + "isProxy": false, + "isReady": true, + "isAmbient": false + } + ], + "istioContainers": [ + { + "name": "istio-proxy", + "image": "gcr.io/istio-release/proxyv2:1.20.1", + "isProxy": true, + "isReady": true, + "isAmbient": false + } + ], + "istioInitContainers": [ + { + "name": "istio-init", + "image": "gcr.io/istio-release/proxyv2:1.20.1", + "isProxy": true, + "isReady": true, + "isAmbient": false + } + ], + "status": "Running", + "statusMessage": "", + "statusReason": "", + "appLabel": true, + "versionLabel": true, + "annotations": { + "istio.io/rev": "default", + "kubectl.kubernetes.io/default-container": "reviews", + "kubectl.kubernetes.io/default-logs-container": "reviews", + "prometheus.io/path": "/stats/prometheus", + "prometheus.io/port": "15020", + "prometheus.io/scrape": "true", + "sidecar.istio.io/status": "{\"initContainers\":[\"istio-init\"],\"containers\":[\"istio-proxy\"],\"volumes\":[\"workload-socket\",\"credential-socket\",\"workload-certs\",\"istio-envoy\",\"istio-data\",\"istio-podinfo\",\"istio-token\",\"istiod-ca-cert\"],\"imagePullSecrets\":null,\"revision\":\"default\"}" + }, + "proxyStatus": { + "CDS": "Synced", + "EDS": "Synced", + "LDS": "Synced", + "RDS": "Synced" + }, + "serviceAccountName": "bookinfo-reviews" + } + ], + "services": [ + { + "name": "reviews", + "namespace": "bookinfo", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "reviews", + "service": "reviews" + }, + "selector": { + "app": "reviews" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + } + ], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "additionalDetails": [], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": false, + "checks": [ + { + "code": "KIA0302", + "message": "No matching workload found for gateway selector in this namespace", + "severity": "warning", + "path": "spec/selector" + } + ], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "reviews-v1.bookinfo": { + "name": "reviews-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + }, + "waypointWorkloads": null, + "health": { + "workloadStatus": { + "name": "reviews-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": { + "http": { + "200": 0.3333333333333333 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/workloads/reviews_v2.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/workloads/reviews_v2.json new file mode 100644 index 0000000000..3b78c259f1 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/workloads/reviews_v2.json @@ -0,0 +1,198 @@ +{ + "name": "reviews-v2", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-15T09:25:39Z", + "resourceVersion": "16292", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "reviews", + "version": "v2" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 0, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"reviews\",\"version\":\"v2\"},\"name\":\"reviews-v2\",\"namespace\":\"bookinfo\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"reviews\",\"version\":\"v2\"}},\"template\":{\"metadata\":{\"labels\":{\"app\":\"reviews\",\"version\":\"v2\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"LOG_DIR\",\"value\":\"/tmp/logs\"}],\"image\":\"docker.io/istio/examples-bookinfo-reviews-v2:1.18.0\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"reviews\",\"ports\":[{\"containerPort\":9080}],\"volumeMounts\":[{\"mountPath\":\"/tmp\",\"name\":\"tmp\"},{\"mountPath\":\"/opt/ibm/wlp/output\",\"name\":\"wlp-output\"}]}],\"serviceAccountName\":\"bookinfo-reviews\",\"volumes\":[{\"emptyDir\":{},\"name\":\"wlp-output\"},{\"emptyDir\":{},\"name\":\"tmp\"}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": null, + "dashboardAnnotations": {}, + "serviceAccountNames": null, + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "pods": [ + { + "name": "reviews-v2-5b667bcbf8-d54v4", + "labels": { + "app": "reviews", + "pod-template-hash": "5b667bcbf8", + "security.istio.io/tlsMode": "istio", + "service.istio.io/canonical-name": "reviews", + "service.istio.io/canonical-revision": "v2", + "version": "v2" + }, + "createdAt": "2024-02-15T09:25:39Z", + "createdBy": [ + { + "name": "reviews-v2-5b667bcbf8", + "kind": "ReplicaSet" + } + ], + "containers": [ + { + "name": "reviews", + "image": "docker.io/istio/examples-bookinfo-reviews-v2:1.18.0", + "isProxy": false, + "isReady": true, + "isAmbient": false + } + ], + "istioContainers": [ + { + "name": "istio-proxy", + "image": "gcr.io/istio-release/proxyv2:1.20.1", + "isProxy": true, + "isReady": true, + "isAmbient": false + } + ], + "istioInitContainers": [ + { + "name": "istio-init", + "image": "gcr.io/istio-release/proxyv2:1.20.1", + "isProxy": true, + "isReady": true, + "isAmbient": false + } + ], + "status": "Running", + "statusMessage": "", + "statusReason": "", + "appLabel": true, + "versionLabel": true, + "annotations": { + "istio.io/rev": "default", + "kubectl.kubernetes.io/default-container": "reviews", + "kubectl.kubernetes.io/default-logs-container": "reviews", + "prometheus.io/path": "/stats/prometheus", + "prometheus.io/port": "15020", + "prometheus.io/scrape": "true", + "sidecar.istio.io/status": "{\"initContainers\":[\"istio-init\"],\"containers\":[\"istio-proxy\"],\"volumes\":[\"workload-socket\",\"credential-socket\",\"workload-certs\",\"istio-envoy\",\"istio-data\",\"istio-podinfo\",\"istio-token\",\"istiod-ca-cert\"],\"imagePullSecrets\":null,\"revision\":\"default\"}" + }, + "proxyStatus": { + "CDS": "Synced", + "EDS": "Synced", + "LDS": "Synced", + "RDS": "Synced" + }, + "serviceAccountName": "bookinfo-reviews" + } + ], + "services": [ + { + "name": "reviews", + "namespace": "bookinfo", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "reviews", + "service": "reviews" + }, + "selector": { + "app": "reviews" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + } + ], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "additionalDetails": [], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": false, + "checks": [ + { + "code": "KIA0302", + "message": "No matching workload found for gateway selector in this namespace", + "severity": "warning", + "path": "spec/selector" + } + ], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "reviews-v2.bookinfo": { + "name": "reviews-v2", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + }, + "waypointWorkloads": null, + "health": { + "workloadStatus": { + "name": "reviews-v2", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": { + "http": { + "200": 0.3111111111111111 + } + }, + "outbound": { + "http": { + "200": 0.31111111111111106 + } + }, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/workloads/reviews_v3.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/workloads/reviews_v3.json new file mode 100644 index 0000000000..ac269d2345 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/bookinfo/workloads/reviews_v3.json @@ -0,0 +1,198 @@ +{ + "name": "reviews-v3", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-15T09:25:39Z", + "resourceVersion": "16288", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "reviews", + "version": "v3" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 0, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"reviews\",\"version\":\"v3\"},\"name\":\"reviews-v3\",\"namespace\":\"bookinfo\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"reviews\",\"version\":\"v3\"}},\"template\":{\"metadata\":{\"labels\":{\"app\":\"reviews\",\"version\":\"v3\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"LOG_DIR\",\"value\":\"/tmp/logs\"}],\"image\":\"docker.io/istio/examples-bookinfo-reviews-v3:1.18.0\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"reviews\",\"ports\":[{\"containerPort\":9080}],\"volumeMounts\":[{\"mountPath\":\"/tmp\",\"name\":\"tmp\"},{\"mountPath\":\"/opt/ibm/wlp/output\",\"name\":\"wlp-output\"}]}],\"serviceAccountName\":\"bookinfo-reviews\",\"volumes\":[{\"emptyDir\":{},\"name\":\"wlp-output\"},{\"emptyDir\":{},\"name\":\"tmp\"}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": null, + "dashboardAnnotations": {}, + "serviceAccountNames": null, + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "pods": [ + { + "name": "reviews-v3-5b9bd44f4-457bd", + "labels": { + "app": "reviews", + "pod-template-hash": "5b9bd44f4", + "security.istio.io/tlsMode": "istio", + "service.istio.io/canonical-name": "reviews", + "service.istio.io/canonical-revision": "v3", + "version": "v3" + }, + "createdAt": "2024-02-15T09:25:39Z", + "createdBy": [ + { + "name": "reviews-v3-5b9bd44f4", + "kind": "ReplicaSet" + } + ], + "containers": [ + { + "name": "reviews", + "image": "docker.io/istio/examples-bookinfo-reviews-v3:1.18.0", + "isProxy": false, + "isReady": true, + "isAmbient": false + } + ], + "istioContainers": [ + { + "name": "istio-proxy", + "image": "gcr.io/istio-release/proxyv2:1.20.1", + "isProxy": true, + "isReady": true, + "isAmbient": false + } + ], + "istioInitContainers": [ + { + "name": "istio-init", + "image": "gcr.io/istio-release/proxyv2:1.20.1", + "isProxy": true, + "isReady": true, + "isAmbient": false + } + ], + "status": "Running", + "statusMessage": "", + "statusReason": "", + "appLabel": true, + "versionLabel": true, + "annotations": { + "istio.io/rev": "default", + "kubectl.kubernetes.io/default-container": "reviews", + "kubectl.kubernetes.io/default-logs-container": "reviews", + "prometheus.io/path": "/stats/prometheus", + "prometheus.io/port": "15020", + "prometheus.io/scrape": "true", + "sidecar.istio.io/status": "{\"initContainers\":[\"istio-init\"],\"containers\":[\"istio-proxy\"],\"volumes\":[\"workload-socket\",\"credential-socket\",\"workload-certs\",\"istio-envoy\",\"istio-data\",\"istio-podinfo\",\"istio-token\",\"istiod-ca-cert\"],\"imagePullSecrets\":null,\"revision\":\"default\"}" + }, + "proxyStatus": { + "CDS": "Synced", + "EDS": "Synced", + "LDS": "Synced", + "RDS": "Synced" + }, + "serviceAccountName": "bookinfo-reviews" + } + ], + "services": [ + { + "name": "reviews", + "namespace": "bookinfo", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "reviews", + "service": "reviews" + }, + "selector": { + "app": "reviews" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + } + ], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "additionalDetails": [], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": false, + "checks": [ + { + "code": "KIA0302", + "message": "No matching workload found for gateway selector in this namespace", + "severity": "warning", + "path": "spec/selector" + } + ], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "reviews-v3.bookinfo": { + "name": "reviews-v3", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + }, + "waypointWorkloads": null, + "health": { + "workloadStatus": { + "name": "reviews-v3", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": { + "http": { + "200": 0.31111111111111106 + } + }, + "outbound": { + "http": { + "200": 0.31111111111111106 + } + }, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/apps.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/apps.json new file mode 100644 index 0000000000..ff716297c3 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/apps.json @@ -0,0 +1,223 @@ +{ + "namespace": { + "name": "bookinfo", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "cluster": "", + "applications": [ + { + "name": "details", + "cluster": "Kubernetes", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "details", + "service": "details", + "version": "v1" + }, + "istioReferences": [ + { + "objectType": "Gateway", + "name": "bookinfo-gateway", + "namespace": "bookinfo", + "cluster": "" + } + ], + "health": { + "workloadStatuses": [ + { + "name": "details-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": { + "http": { + "200": 0.9999999999999999 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "kiali-traffic-generator", + "cluster": "Kubernetes", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "kiali-traffic-generator", + "kiali-test": "traffic-generator" + }, + "istioReferences": [], + "health": { + "workloadStatuses": [ + { + "name": "kiali-traffic-generator", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "productpage", + "cluster": "Kubernetes", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "productpage", + "service": "productpage", + "version": "v1" + }, + "istioReferences": [ + { + "objectType": "VirtualService", + "name": "bookinfo", + "namespace": "bookinfo", + "cluster": "" + }, + { + "objectType": "Gateway", + "name": "bookinfo-gateway", + "namespace": "bookinfo", + "cluster": "" + } + ], + "health": { + "workloadStatuses": [ + { + "name": "productpage-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": { + "http": { + "200": 0.9999999999999999 + } + }, + "outbound": { + "http": { + "200": 1.9999999999999998 + } + }, + "healthAnnotations": {} + } + } + }, + { + "name": "ratings", + "cluster": "Kubernetes", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "ratings", + "service": "ratings", + "version": "v1" + }, + "istioReferences": [ + { + "objectType": "Gateway", + "name": "bookinfo-gateway", + "namespace": "bookinfo", + "cluster": "" + } + ], + "health": { + "workloadStatuses": [ + { + "name": "ratings-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": { + "http": { + "200": 0.6444444444444444 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "reviews", + "cluster": "Kubernetes", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "reviews", + "service": "reviews", + "version": "v1,v2,v3" + }, + "istioReferences": [ + { + "objectType": "Gateway", + "name": "bookinfo-gateway", + "namespace": "bookinfo", + "cluster": "" + } + ], + "health": { + "workloadStatuses": [ + { + "name": "reviews-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + { + "name": "reviews-v2", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + { + "name": "reviews-v3", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": { + "http": { + "200": 1.0222222222222221 + } + }, + "outbound": { + "http": { + "200": 0.5999999999999999 + } + }, + "healthAnnotations": {} + } + } + } + ] +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/apps/istio_egressgateway.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/apps/istio_egressgateway.json new file mode 100644 index 0000000000..204575589f --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/apps/istio_egressgateway.json @@ -0,0 +1,63 @@ +{ + "namespace": { + "name": "istio-system", + "cluster": "Kubernetes", + "isAmbient": false, + "labels": { + "kubernetes.io/metadata.name": "istio-system", + "topology.istio.io/network": "" + }, + "annotations": null + }, + "name": "istio-egressgateway", + "cluster": "Kubernetes", + "workloads": [ + { + "workloadName": "istio-egressgateway", + "istioSidecar": false, + "istioAmbient": false, + "labels": { + "app": "istio-egressgateway", + "chart": "gateways", + "heritage": "Tiller", + "install.operator.istio.io/owning-resource": "unknown", + "istio": "egressgateway", + "istio.io/rev": "default", + "operator.istio.io/component": "EgressGateways", + "release": "istio", + "service.istio.io/canonical-name": "istio-egressgateway", + "service.istio.io/canonical-revision": "latest", + "sidecar.istio.io/inject": "false" + }, + "serviceAccountNames": ["istio-egressgateway-service-account"] + } + ], + "serviceNames": ["istio-egressgateway"], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "health": { + "workloadStatuses": [ + { + "name": "istio-egressgateway", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": -1 + } + ], + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/apps/istio_ingressgateway.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/apps/istio_ingressgateway.json new file mode 100644 index 0000000000..d3bf9e451a --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/apps/istio_ingressgateway.json @@ -0,0 +1,67 @@ +{ + "namespace": { + "name": "istio-system", + "cluster": "Kubernetes", + "isAmbient": false, + "labels": { + "kubernetes.io/metadata.name": "istio-system", + "topology.istio.io/network": "" + }, + "annotations": null + }, + "name": "istio-ingressgateway", + "cluster": "Kubernetes", + "workloads": [ + { + "workloadName": "istio-ingressgateway", + "istioSidecar": false, + "istioAmbient": false, + "labels": { + "app": "istio-ingressgateway", + "chart": "gateways", + "heritage": "Tiller", + "install.operator.istio.io/owning-resource": "unknown", + "istio": "ingressgateway", + "istio.io/rev": "default", + "operator.istio.io/component": "IngressGateways", + "release": "istio", + "service.istio.io/canonical-name": "istio-ingressgateway", + "service.istio.io/canonical-revision": "latest", + "sidecar.istio.io/inject": "false" + }, + "serviceAccountNames": ["istio-ingressgateway-service-account"] + } + ], + "serviceNames": ["istio-ingressgateway"], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "health": { + "workloadStatuses": [ + { + "name": "istio-ingressgateway", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": -1 + } + ], + "requests": { + "inbound": {}, + "outbound": { + "http": { + "200": 0.9999999999999999 + } + }, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/apps/istiod.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/apps/istiod.json new file mode 100644 index 0000000000..39fa8288ed --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/apps/istiod.json @@ -0,0 +1,58 @@ +{ + "namespace": { + "name": "istio-system", + "cluster": "Kubernetes", + "isAmbient": false, + "labels": { + "kubernetes.io/metadata.name": "istio-system", + "topology.istio.io/network": "" + }, + "annotations": null + }, + "name": "istiod", + "cluster": "Kubernetes", + "workloads": [ + { + "workloadName": "istiod", + "istioSidecar": false, + "istioAmbient": false, + "labels": { + "app": "istiod", + "install.operator.istio.io/owning-resource": "unknown", + "istio": "pilot", + "istio.io/rev": "default", + "operator.istio.io/component": "Pilot", + "sidecar.istio.io/inject": "false" + }, + "serviceAccountNames": ["istiod"] + } + ], + "serviceNames": ["istiod"], + "runtimes": [ + { + "name": "Go", + "dashboardRefs": [ + { + "template": "go", + "title": "Go Metrics" + } + ] + } + ], + "health": { + "workloadStatuses": [ + { + "name": "istiod", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": -1 + } + ], + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/apps/jaeger.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/apps/jaeger.json new file mode 100644 index 0000000000..8db9638c6c --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/apps/jaeger.json @@ -0,0 +1,54 @@ +{ + "namespace": { + "name": "istio-system", + "cluster": "Kubernetes", + "isAmbient": false, + "labels": { + "kubernetes.io/metadata.name": "istio-system", + "topology.istio.io/network": "" + }, + "annotations": null + }, + "name": "jaeger", + "cluster": "Kubernetes", + "workloads": [ + { + "workloadName": "jaeger", + "istioSidecar": false, + "istioAmbient": false, + "labels": { + "app": "jaeger", + "sidecar.istio.io/inject": "false" + }, + "serviceAccountNames": ["default"] + } + ], + "serviceNames": ["tracing", "zipkin", "jaeger-collector"], + "runtimes": [ + { + "name": "Go", + "dashboardRefs": [ + { + "template": "go", + "title": "Go Metrics" + } + ] + } + ], + "health": { + "workloadStatuses": [ + { + "name": "jaeger", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": -1 + } + ], + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/apps/kiali.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/apps/kiali.json new file mode 100644 index 0000000000..a8269cb50b --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/apps/kiali.json @@ -0,0 +1,70 @@ +{ + "namespace": { + "name": "istio-system", + "cluster": "Kubernetes", + "isAmbient": false, + "labels": { + "kubernetes.io/metadata.name": "istio-system", + "topology.istio.io/network": "" + }, + "annotations": null + }, + "name": "kiali", + "cluster": "Kubernetes", + "workloads": [ + { + "workloadName": "kiali", + "istioSidecar": false, + "istioAmbient": false, + "labels": { + "app": "kiali", + "app.kubernetes.io/instance": "kiali", + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "kiali", + "app.kubernetes.io/part-of": "kiali", + "app.kubernetes.io/version": "v1.79.0", + "helm.sh/chart": "kiali-server-1.79.0", + "sidecar.istio.io/inject": "false", + "version": "v1.79.0" + }, + "serviceAccountNames": ["kiali"] + } + ], + "serviceNames": ["kiali"], + "runtimes": [ + { + "name": "Go", + "dashboardRefs": [ + { + "template": "go", + "title": "Go Metrics" + } + ] + }, + { + "name": "", + "dashboardRefs": [ + { + "template": "kiali", + "title": "Kiali Internal Metrics" + } + ] + } + ], + "health": { + "workloadStatuses": [ + { + "name": "kiali", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": -1 + } + ], + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/dashboard.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/dashboard.json new file mode 100644 index 0000000000..bb7c03036a --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/dashboard.json @@ -0,0 +1,347 @@ +{ + "name": "", + "title": "Inbound Metrics", + "charts": [ + { + "name": "Request volume", + "unit": "ops", + "spans": 3, + "startCollapsed": false, + "metrics": [ + { + "labels": { + "source_canonical_service": "productpage", + "source_workload_namespace": "bookinfo" + }, + "datapoints": [ + [1710323970, "1"], + [1710324000, "1"], + [1710324030, "1"], + [1710324060, "1.0000666711114075"], + [1710324090, "0.9999333377774815"], + [1710324120, "1"], + [1710324150, "1"], + [1710324180, "0.9999333377774815"], + [1710324210, "0.9999333377774815"], + [1710324240, "1.0000666711114075"], + [1710324270, "1.0000666711114075"], + [1710324300, "1"], + [1710324330, "1"], + [1710324360, "1"], + [1710324390, "1.0000666711114075"], + [1710324420, "1"], + [1710324450, "1.0000666711114075"], + [1710324480, "0.9999333377774815"], + [1710324510, "1.0000666711114075"], + [1710324540, "1"], + [1710324570, "0.9999333377774815"] + ], + "name": "request_count" + } + ], + "xAxis": null, + "error": "" + }, + { + "name": "Request duration", + "unit": "seconds", + "spans": 3, + "startCollapsed": false, + "metrics": [ + { + "labels": { + "source_canonical_service": "productpage", + "source_workload_namespace": "bookinfo" + }, + "datapoints": [ + [1710323970, "0.0004166666666666667"], + [1710324000, "0.00006999999999970897"], + [1710324030, "0.00014000000000014551"], + [1710324060, "0.00014000000000014554"], + [1710324090, "0.0002099999999998545"], + [1710324120, "0.00006999999999995149"], + [1710324150, "0.00020999999999985448"], + [1710324180, "0.00006999999999995149"], + [1710324210, "0.000489999999999903"], + [1710324240, "0.0005600000000000971"], + [1710324270, "0.00028000000000004855"], + [1710324300, "0.000210000000000097"], + [1710324330, "0.0004900000000001455"], + [1710324360, "0.00006999999999995149"], + [1710324390, "0.00006999999999995149"], + [1710324420, "0.0003466666666667152"], + [1710324450, "0.00021000000000009702"], + [1710324480, "0.000560000000000097"], + [1710324510, "0.0005600000000000971"], + [1710324540, "0.00048666666666637566"], + [1710324570, "0.0005928571428573509"] + ], + "stat": "avg", + "name": "request_duration_millis" + } + ], + "xAxis": null, + "error": "" + }, + { + "name": "Request size", + "unit": "bytes", + "spans": 3, + "startCollapsed": false, + "metrics": [ + { + "labels": { + "source_canonical_service": "productpage", + "source_workload_namespace": "bookinfo" + }, + "datapoints": [ + [1710323970, "1250"], + [1710324000, "1250"], + [1710324030, "1250"], + [1710324060, "1250"], + [1710324090, "1249.9999999999998"], + [1710324120, "1250"], + [1710324150, "1250"], + [1710324180, "1249.9999999999998"], + [1710324210, "1249.9999999999998"], + [1710324240, "1250"], + [1710324270, "1250"], + [1710324300, "1250"], + [1710324330, "1250"], + [1710324360, "1250"], + [1710324390, "1250"], + [1710324420, "1250"], + [1710324450, "1250"], + [1710324480, "1249.9999999999998"], + [1710324510, "1250"], + [1710324540, "1250"], + [1710324570, "1250"] + ], + "stat": "avg", + "name": "request_size" + } + ], + "xAxis": null, + "error": "" + }, + { + "name": "Response size", + "unit": "bytes", + "spans": 3, + "startCollapsed": false, + "metrics": [ + { + "labels": { + "source_canonical_service": "productpage", + "source_workload_namespace": "bookinfo" + }, + "datapoints": [ + [1710323970, "1150"], + [1710324000, "1150"], + [1710324030, "1150"], + [1710324060, "1150"], + [1710324090, "1149.9999999999998"], + [1710324120, "1150"], + [1710324150, "1150"], + [1710324180, "1149.9999999999998"], + [1710324210, "1149.9999999999998"], + [1710324240, "1150"], + [1710324270, "1150"], + [1710324300, "1150"], + [1710324330, "1150"], + [1710324360, "1150"], + [1710324390, "1150"], + [1710324420, "1150"], + [1710324450, "1150"], + [1710324480, "1149.9999999999998"], + [1710324510, "1150"], + [1710324540, "1150"], + [1710324570, "1150"] + ], + "stat": "avg", + "name": "response_size" + } + ], + "xAxis": null, + "error": "" + }, + { + "name": "Request throughput", + "unit": "bitrate", + "spans": 3, + "startCollapsed": false, + "metrics": [ + { + "labels": { + "source_canonical_service": "productpage", + "source_workload_namespace": "bookinfo" + }, + "datapoints": [ + [1710323970, "10000"], + [1710324000, "10000"], + [1710324030, "10000"], + [1710324060, "10000.666711114074"], + [1710324090, "9999.333377774814"], + [1710324120, "10000"], + [1710324150, "10000"], + [1710324180, "9999.333377774814"], + [1710324210, "9999.333377774814"], + [1710324240, "10000.666711114074"], + [1710324270, "10000.666711114074"], + [1710324300, "10000"], + [1710324330, "10000"], + [1710324360, "10000"], + [1710324390, "10000.666711114074"], + [1710324420, "10000"], + [1710324450, "10000.666711114074"], + [1710324480, "9999.333377774814"], + [1710324510, "10000.666711114074"], + [1710324540, "10000"], + [1710324570, "9332.711152589827"] + ], + "name": "request_throughput" + } + ], + "xAxis": null, + "error": "" + }, + { + "name": "Response throughput", + "unit": "bitrate", + "spans": 3, + "startCollapsed": false, + "metrics": [ + { + "labels": { + "source_canonical_service": "productpage", + "source_workload_namespace": "bookinfo" + }, + "datapoints": [ + [1710323970, "9200"], + [1710324000, "9200"], + [1710324030, "9200"], + [1710324060, "9200.61337422495"], + [1710324090, "9199.386707552829"], + [1710324120, "9200"], + [1710324150, "9200"], + [1710324180, "9199.386707552829"], + [1710324210, "9199.386707552829"], + [1710324240, "9200.61337422495"], + [1710324270, "9200.61337422495"], + [1710324300, "9200"], + [1710324330, "9200"], + [1710324360, "9200"], + [1710324390, "9200.61337422495"], + [1710324420, "9200"], + [1710324450, "9200.61337422495"], + [1710324480, "9199.386707552829"], + [1710324510, "9200.61337422495"], + [1710324540, "9200"], + [1710324570, "8586.09426038264"] + ], + "name": "response_throughput" + } + ], + "xAxis": null, + "error": "" + }, + { + "name": "gRPC received", + "unit": "msgrate", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "gRPC sent", + "unit": "msgrate", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "TCP opened", + "unit": "connrate", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "TCP closed", + "unit": "connrate", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "TCP received", + "unit": "bitrate", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "TCP sent", + "unit": "bitrate", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + } + ], + "aggregations": [ + { + "label": "destination_canonical_revision", + "displayName": "Local version", + "singleSelection": false + }, + { + "label": "source_workload_namespace", + "displayName": "Remote namespace", + "singleSelection": false + }, + { + "label": "source_canonical_service", + "displayName": "Remote app", + "singleSelection": false + }, + { + "label": "source_canonical_revision", + "displayName": "Remote version", + "singleSelection": false + }, + { + "label": "response_code", + "displayName": "Response code", + "singleSelection": false + }, + { + "label": "grpc_response_status", + "displayName": "GRPC status", + "singleSelection": false + }, + { + "label": "response_flags", + "displayName": "Response flags", + "singleSelection": false + }, + { + "label": "connection_security_policy", + "displayName": "Connection Security Policy", + "singleSelection": false + } + ], + "externalLinks": null, + "rows": 3 +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/health/app.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/health/app.json new file mode 100644 index 0000000000..55a1b7dec6 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/health/app.json @@ -0,0 +1,114 @@ +{ + "grafana": { + "workloadStatuses": [ + { + "name": "grafana", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": -1 + } + ], + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "istio-egressgateway": { + "workloadStatuses": [ + { + "name": "istio-egressgateway", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": -1 + } + ], + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "istio-ingressgateway": { + "workloadStatuses": [ + { + "name": "istio-ingressgateway", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": -1 + } + ], + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "istiod": { + "workloadStatuses": [ + { + "name": "istiod", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": -1 + } + ], + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "jaeger": { + "workloadStatuses": [ + { + "name": "jaeger", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": -1 + } + ], + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "kiali": { + "workloadStatuses": [ + { + "name": "kiali", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": -1 + } + ], + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "prometheus": { + "workloadStatuses": [ + { + "name": "prometheus", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": -1 + } + ], + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/health/service.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/health/service.json new file mode 100644 index 0000000000..af1aa51acc --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/health/service.json @@ -0,0 +1,65 @@ +{ + "grafana": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "istio-egressgateway": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "istio-ingressgateway": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "istiod": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "jaeger-collector": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "kiali": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "prometheus": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "tracing": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "zipkin": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/health/workload.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/health/workload.json new file mode 100644 index 0000000000..3855649f3b --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/health/workload.json @@ -0,0 +1,100 @@ +{ + "grafana": { + "workloadStatus": { + "name": "grafana", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": -1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "istio-egressgateway": { + "workloadStatus": { + "name": "istio-egressgateway", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": -1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "istio-ingressgateway": { + "workloadStatus": { + "name": "istio-ingressgateway", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": -1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "istiod": { + "workloadStatus": { + "name": "istiod", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": -1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "jaeger": { + "workloadStatus": { + "name": "jaeger", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": -1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "kiali": { + "workloadStatus": { + "name": "kiali", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": -1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "prometheus": { + "workloadStatus": { + "name": "prometheus", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": -1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/istio_config.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/istio_config.json new file mode 100644 index 0000000000..12755e2b56 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/istio_config.json @@ -0,0 +1,35 @@ +{ + "namespace": { + "name": "istio-system", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "destinationRules": [], + "envoyFilters": [], + "gateways": [], + "serviceEntries": [], + "sidecars": [], + "virtualServices": [], + "workloadEntries": [], + "workloadGroups": [], + "wasmPlugins": [], + "telemetries": [], + "k8sGateways": [], + "k8sHTTPRoutes": [], + "authorizationPolicies": [], + "peerAuthentications": [], + "requestAuthentications": [], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": true, + "checks": [], + "references": null + } + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/inbound/metrics_inbound_120.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/inbound/metrics_inbound_120.json new file mode 100644 index 0000000000..680a665149 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/inbound/metrics_inbound_120.json @@ -0,0 +1,100 @@ +{ + "container_cpu_usage_seconds_total": [ + { + "labels": {}, + "datapoints": [ + [1697024040, "0.002755125239989775"], + [1697024070, "0.0028308143301925487"], + [1697024100, "0.0027977164583027226"], + [1697024130, "0.017605061010355652"], + [1697024160, "0.0016924311084703827"] + ], + "name": "container_cpu_usage_seconds_total" + } + ], + "container_memory_working_set_bytes": [ + { + "labels": { + "__name__": "container_memory_working_set_bytes", + "beta_kubernetes_io_arch": "amd64", + "beta_kubernetes_io_os": "linux", + "container": "discovery", + "id": "/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-pod86ae28e5_296a_4c6f_81ae_e3102580203a.slice/crio-311ddafa211336c162b5aeb91d70fbd048f94c9f18142285c0473eae845da2de.scope", + "image": "gcr.io/istio-release/pilot:1.18.2", + "instance": "crc-8cf2w-master-0", + "job": "kubernetes-nodes-cadvisor", + "kubernetes_io_arch": "amd64", + "kubernetes_io_hostname": "crc-8cf2w-master-0", + "kubernetes_io_os": "linux", + "name": "k8s_discovery_istiod-7548d4ff85-9czcn_istio-system_86ae28e5-296a-4c6f-81ae-e3102580203a_2", + "namespace": "istio-system", + "node_openshift_io_os_id": "rhcos", + "pod": "istiod-7548d4ff85-9czcn", + "topology_hostpath_csi_node": "crc-8cf2w-master-0" + }, + "datapoints": [ + [1697024040, "145.055744"], + [1697024070, "143.683584"], + [1697024100, "143.683584"], + [1697024130, "143.679488"], + [1697024160, "143.683584"] + ], + "name": "container_memory_working_set_bytes" + } + ], + "pilot_proxy_convergence_time": [ + { + "labels": {}, + "datapoints": [ + [1697024040, "NaN"], + [1697024070, "NaN"], + [1697024100, "NaN"], + [1697024130, "NaN"], + [1697024160, "NaN"] + ], + "stat": "avg", + "name": "pilot_proxy_convergence_time" + } + ], + "process_cpu_seconds_total": [ + { + "labels": {}, + "datapoints": [ + [1697024040, "0.0013333333333333049"], + [1697024070, "0.0013333333333333049"], + [1697024100, "0.002000000000000076"], + [1697024130, "0.002000000000000076"], + [1697024160, "0.0013333333333333049"] + ], + "name": "process_cpu_seconds_total" + } + ], + "process_resident_memory_bytes": [ + { + "labels": { + "__name__": "process_resident_memory_bytes", + "app": "istiod", + "install_operator_istio_io_owning_resource": "unknown", + "instance": "10.217.0.34:15014", + "istio": "pilot", + "istio_io_rev": "default", + "job": "kubernetes-pods", + "namespace": "istio-system", + "operator_istio_io_component": "Pilot", + "pod": "istiod-7548d4ff85-9czcn", + "pod_template_hash": "7548d4ff85", + "sidecar_istio_io_inject": "false" + }, + "datapoints": [ + [1697024040, "165.003264"], + [1697024070, "163.6352"], + [1697024100, "163.6352"], + [1697024130, "163.6352"], + [1697024160, "163.6352"] + ], + "name": "process_resident_memory_bytes" + } + ], + "request_count": null, + "request_error_count": null +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/inbound/metrics_inbound_1800.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/inbound/metrics_inbound_1800.json new file mode 100644 index 0000000000..12112e1412 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/inbound/metrics_inbound_1800.json @@ -0,0 +1,130 @@ +{ + "container_cpu_usage_seconds_total": [ + { + "labels": {}, + "datapoints": [ + [1697022360, "0.004423229563643965"], + [1697022540, "0.002818351158753509"], + [1697022720, "0.0033681828956744772"], + [1697022900, "0.004075735098607482"], + [1697023080, "0.004858861411539032"], + [1697023260, "0.003327461760086153"], + [1697023440, "0.0029723897808957888"], + [1697023620, "0.005595762889521851"], + [1697023800, "0.0034129233521214435"], + [1697023980, "0.0034297933448419722"], + [1697024160, "0.005304226914689294"] + ], + "name": "container_cpu_usage_seconds_total" + } + ], + "container_memory_working_set_bytes": [ + { + "labels": { + "__name__": "container_memory_working_set_bytes", + "beta_kubernetes_io_arch": "amd64", + "beta_kubernetes_io_os": "linux", + "container": "discovery", + "id": "/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-pod86ae28e5_296a_4c6f_81ae_e3102580203a.slice/crio-311ddafa211336c162b5aeb91d70fbd048f94c9f18142285c0473eae845da2de.scope", + "image": "gcr.io/istio-release/pilot:1.18.2", + "instance": "crc-8cf2w-master-0", + "job": "kubernetes-nodes-cadvisor", + "kubernetes_io_arch": "amd64", + "kubernetes_io_hostname": "crc-8cf2w-master-0", + "kubernetes_io_os": "linux", + "name": "k8s_discovery_istiod-7548d4ff85-9czcn_istio-system_86ae28e5-296a-4c6f-81ae-e3102580203a_2", + "namespace": "istio-system", + "node_openshift_io_os_id": "rhcos", + "pod": "istiod-7548d4ff85-9czcn", + "topology_hostpath_csi_node": "crc-8cf2w-master-0" + }, + "datapoints": [ + [1697022360, "145.154048"], + [1697022540, "143.589376"], + [1697022720, "146.763776"], + [1697022900, "155.20972799999998"], + [1697023080, "152.662016"], + [1697023260, "148.979712"], + [1697023440, "146.354176"], + [1697023620, "144.191488"], + [1697023800, "146.18624"], + [1697023980, "144.396288"], + [1697024160, "143.683584"] + ], + "name": "container_memory_working_set_bytes" + } + ], + "pilot_proxy_convergence_time": [ + { + "labels": {}, + "datapoints": [ + [1697022360, "NaN"], + [1697022540, "NaN"], + [1697022720, "NaN"], + [1697022900, "NaN"], + [1697023080, "NaN"], + [1697023260, "NaN"], + [1697023440, "NaN"], + [1697023620, "NaN"], + [1697023800, "NaN"], + [1697023980, "0.00026259236363636437"], + [1697024160, "NaN"] + ], + "stat": "avg", + "name": "pilot_proxy_convergence_time" + } + ], + "process_cpu_seconds_total": [ + { + "labels": {}, + "datapoints": [ + [1697022360, "0.002242424242424248"], + [1697022540, "0.0013333333333333478"], + [1697022720, "0.0017575757575757738"], + [1697022900, "0.001999999999999989"], + [1697023080, "0.002363636363636367"], + [1697023260, "0.0016363636363636335"], + [1697023440, "0.0015757575757575635"], + [1697023620, "0.002727272727272744"], + [1697023800, "0.001757575757575752"], + [1697023980, "0.0017575757575757738"], + [1697024160, "0.002666666666666674"] + ], + "name": "process_cpu_seconds_total" + } + ], + "process_resident_memory_bytes": [ + { + "labels": { + "__name__": "process_resident_memory_bytes", + "app": "istiod", + "install_operator_istio_io_owning_resource": "unknown", + "instance": "10.217.0.34:15014", + "istio": "pilot", + "istio_io_rev": "default", + "job": "kubernetes-pods", + "namespace": "istio-system", + "operator_istio_io_component": "Pilot", + "pod": "istiod-7548d4ff85-9czcn", + "pod_template_hash": "7548d4ff85", + "sidecar_istio_io_inject": "false" + }, + "datapoints": [ + [1697022360, "165.09747199999998"], + [1697022540, "163.688448"], + [1697022720, "165.851136"], + [1697022900, "175.038464"], + [1697023080, "172.531712"], + [1697023260, "168.40704"], + [1697023440, "166.641664"], + [1697023620, "164.35609599999998"], + [1697023800, "166.244352"], + [1697023980, "164.462592"], + [1697024160, "163.6352"] + ], + "name": "process_resident_memory_bytes" + } + ], + "request_count": null, + "request_error_count": null +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/inbound/metrics_inbound_300.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/inbound/metrics_inbound_300.json new file mode 100644 index 0000000000..1b3825ca9e --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/inbound/metrics_inbound_300.json @@ -0,0 +1,130 @@ +{ + "container_cpu_usage_seconds_total": [ + { + "labels": {}, + "datapoints": [ + [1697023860, "0.00277104088632311"], + [1697023890, "0.002440995810258295"], + [1697023920, "0.0030462017153864134"], + [1697023950, "0.0011749084878141453"], + [1697023980, "0.003215558196758648"], + [1697024010, "0.0020194318109019596"], + [1697024040, "0.002755125239989775"], + [1697024070, "0.0028308143301925487"], + [1697024100, "0.0027977164583027226"], + [1697024130, "0.017605061010355652"], + [1697024160, "0.0016924311084703827"] + ], + "name": "container_cpu_usage_seconds_total" + } + ], + "container_memory_working_set_bytes": [ + { + "labels": { + "__name__": "container_memory_working_set_bytes", + "beta_kubernetes_io_arch": "amd64", + "beta_kubernetes_io_os": "linux", + "container": "discovery", + "id": "/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-pod86ae28e5_296a_4c6f_81ae_e3102580203a.slice/crio-311ddafa211336c162b5aeb91d70fbd048f94c9f18142285c0473eae845da2de.scope", + "image": "gcr.io/istio-release/pilot:1.18.2", + "instance": "crc-8cf2w-master-0", + "job": "kubernetes-nodes-cadvisor", + "kubernetes_io_arch": "amd64", + "kubernetes_io_hostname": "crc-8cf2w-master-0", + "kubernetes_io_os": "linux", + "name": "k8s_discovery_istiod-7548d4ff85-9czcn_istio-system_86ae28e5-296a-4c6f-81ae-e3102580203a_2", + "namespace": "istio-system", + "node_openshift_io_os_id": "rhcos", + "pod": "istiod-7548d4ff85-9czcn", + "topology_hostpath_csi_node": "crc-8cf2w-master-0" + }, + "datapoints": [ + [1697023860, "144.982016"], + [1697023890, "144.846848"], + [1697023920, "145.51449599999998"], + [1697023950, "144.52326399999998"], + [1697023980, "144.396288"], + [1697024010, "144.392192"], + [1697024040, "145.055744"], + [1697024070, "143.683584"], + [1697024100, "143.683584"], + [1697024130, "143.679488"], + [1697024160, "143.683584"] + ], + "name": "container_memory_working_set_bytes" + } + ], + "pilot_proxy_convergence_time": [ + { + "labels": {}, + "datapoints": [ + [1697023860, "NaN"], + [1697023890, "NaN"], + [1697023920, "NaN"], + [1697023950, "NaN"], + [1697023980, "NaN"], + [1697024010, "NaN"], + [1697024040, "NaN"], + [1697024070, "NaN"], + [1697024100, "NaN"], + [1697024130, "NaN"], + [1697024160, "NaN"] + ], + "stat": "avg", + "name": "pilot_proxy_convergence_time" + } + ], + "process_cpu_seconds_total": [ + { + "labels": {}, + "datapoints": [ + [1697023860, "0.0019999999999998387"], + [1697023890, "0.002000000000000076"], + [1697023920, "0.0013333333333333049"], + [1697023950, "0.0013333333333333049"], + [1697023980, "0.0013333333333335417"], + [1697024010, "0.0013333333333333049"], + [1697024040, "0.0013333333333333049"], + [1697024070, "0.0013333333333333049"], + [1697024100, "0.002000000000000076"], + [1697024130, "0.002000000000000076"], + [1697024160, "0.0013333333333333049"] + ], + "name": "process_cpu_seconds_total" + } + ], + "process_resident_memory_bytes": [ + { + "labels": { + "__name__": "process_resident_memory_bytes", + "app": "istiod", + "install_operator_istio_io_owning_resource": "unknown", + "instance": "10.217.0.34:15014", + "istio": "pilot", + "istio_io_rev": "default", + "job": "kubernetes-pods", + "namespace": "istio-system", + "operator_istio_io_component": "Pilot", + "pod": "istiod-7548d4ff85-9czcn", + "pod_template_hash": "7548d4ff85", + "sidecar_istio_io_inject": "false" + }, + "datapoints": [ + [1697023860, "164.769792"], + [1697023890, "164.769792"], + [1697023920, "165.58079999999998"], + [1697023950, "164.462592"], + [1697023980, "164.462592"], + [1697024010, "164.462592"], + [1697024040, "165.003264"], + [1697024070, "163.6352"], + [1697024100, "163.6352"], + [1697024130, "163.6352"], + [1697024160, "163.6352"] + ], + "name": "process_resident_memory_bytes" + } + ], + "request_count": null, + "request_error_count": null +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/inbound/metrics_inbound_3600.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/inbound/metrics_inbound_3600.json new file mode 100644 index 0000000000..6178363f65 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/inbound/metrics_inbound_3600.json @@ -0,0 +1,115 @@ +{ + "container_cpu_usage_seconds_total": [ + { + "labels": {}, + "datapoints": [ + [1697021640, "0.0022837365589533235"], + [1697022000, "0.003630157034545756"], + [1697022360, "0.0034882143205133696"], + [1697022720, "0.003109542147831563"], + [1697023080, "0.004421874876878809"], + [1697023440, "0.0031209359563211837"], + [1697023800, "0.004399331006493985"], + [1697024160, "0.004336317402418327"] + ], + "name": "container_cpu_usage_seconds_total" + } + ], + "container_memory_working_set_bytes": [ + { + "labels": { + "__name__": "container_memory_working_set_bytes", + "beta_kubernetes_io_arch": "amd64", + "beta_kubernetes_io_os": "linux", + "container": "discovery", + "id": "/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-pod86ae28e5_296a_4c6f_81ae_e3102580203a.slice/crio-311ddafa211336c162b5aeb91d70fbd048f94c9f18142285c0473eae845da2de.scope", + "image": "gcr.io/istio-release/pilot:1.18.2", + "instance": "crc-8cf2w-master-0", + "job": "kubernetes-nodes-cadvisor", + "kubernetes_io_arch": "amd64", + "kubernetes_io_hostname": "crc-8cf2w-master-0", + "kubernetes_io_os": "linux", + "name": "k8s_discovery_istiod-7548d4ff85-9czcn_istio-system_86ae28e5-296a-4c6f-81ae-e3102580203a_2", + "namespace": "istio-system", + "node_openshift_io_os_id": "rhcos", + "pod": "istiod-7548d4ff85-9czcn", + "topology_hostpath_csi_node": "crc-8cf2w-master-0" + }, + "datapoints": [ + [1697021640, "143.09376"], + [1697022000, "145.137664"], + [1697022360, "145.154048"], + [1697022720, "146.763776"], + [1697023080, "152.662016"], + [1697023440, "146.354176"], + [1697023800, "146.18624"], + [1697024160, "143.683584"] + ], + "name": "container_memory_working_set_bytes" + } + ], + "pilot_proxy_convergence_time": [ + { + "labels": {}, + "datapoints": [ + [1697021640, "NaN"], + [1697022000, "NaN"], + [1697022360, "NaN"], + [1697022720, "NaN"], + [1697023080, "0.00021478099999999977"], + [1697023440, "NaN"], + [1697023800, "NaN"], + [1697024160, "0.0002625923636363643"] + ], + "stat": "avg", + "name": "pilot_proxy_convergence_time" + } + ], + "process_cpu_seconds_total": [ + { + "labels": {}, + "datapoints": [ + [1697021640, "0.001045284722222216"], + [1697022000, "0.0018260869565217364"], + [1697022360, "0.0017971014492753651"], + [1697022720, "0.0015652173913043557"], + [1697023080, "0.002173913043478261"], + [1697023440, "0.0015942028985507267"], + [1697023800, "0.002202898550724642"], + [1697024160, "0.002202898550724642"] + ], + "name": "process_cpu_seconds_total" + } + ], + "process_resident_memory_bytes": [ + { + "labels": { + "__name__": "process_resident_memory_bytes", + "app": "istiod", + "install_operator_istio_io_owning_resource": "unknown", + "instance": "10.217.0.34:15014", + "istio": "pilot", + "istio_io_rev": "default", + "job": "kubernetes-pods", + "namespace": "istio-system", + "operator_istio_io_component": "Pilot", + "pod": "istiod-7548d4ff85-9czcn", + "pod_template_hash": "7548d4ff85", + "sidecar_istio_io_inject": "false" + }, + "datapoints": [ + [1697021640, "163.19692799999999"], + [1697022000, "165.09747199999998"], + [1697022360, "165.09747199999998"], + [1697022720, "165.851136"], + [1697023080, "172.531712"], + [1697023440, "166.641664"], + [1697023800, "166.244352"], + [1697024160, "163.6352"] + ], + "name": "process_resident_memory_bytes" + } + ], + "request_count": null, + "request_error_count": null +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/inbound/metrics_inbound_60.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/inbound/metrics_inbound_60.json new file mode 100644 index 0000000000..74a54ee770 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/inbound/metrics_inbound_60.json @@ -0,0 +1,90 @@ +{ + "container_cpu_usage_seconds_total": [ + { + "labels": {}, + "datapoints": [ + [1697024100, "0.0027977164583027226"], + [1697024130, "0.017605061010355652"], + [1697024160, "0.0016924311084703827"] + ], + "name": "container_cpu_usage_seconds_total" + } + ], + "container_memory_working_set_bytes": [ + { + "labels": { + "__name__": "container_memory_working_set_bytes", + "beta_kubernetes_io_arch": "amd64", + "beta_kubernetes_io_os": "linux", + "container": "discovery", + "id": "/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-pod86ae28e5_296a_4c6f_81ae_e3102580203a.slice/crio-311ddafa211336c162b5aeb91d70fbd048f94c9f18142285c0473eae845da2de.scope", + "image": "gcr.io/istio-release/pilot:1.18.2", + "instance": "crc-8cf2w-master-0", + "job": "kubernetes-nodes-cadvisor", + "kubernetes_io_arch": "amd64", + "kubernetes_io_hostname": "crc-8cf2w-master-0", + "kubernetes_io_os": "linux", + "name": "k8s_discovery_istiod-7548d4ff85-9czcn_istio-system_86ae28e5-296a-4c6f-81ae-e3102580203a_2", + "namespace": "istio-system", + "node_openshift_io_os_id": "rhcos", + "pod": "istiod-7548d4ff85-9czcn", + "topology_hostpath_csi_node": "crc-8cf2w-master-0" + }, + "datapoints": [ + [1697024100, "143.683584"], + [1697024130, "143.679488"], + [1697024160, "143.683584"] + ], + "name": "container_memory_working_set_bytes" + } + ], + "pilot_proxy_convergence_time": [ + { + "labels": {}, + "datapoints": [ + [1697024100, "NaN"], + [1697024130, "NaN"], + [1697024160, "NaN"] + ], + "stat": "avg", + "name": "pilot_proxy_convergence_time" + } + ], + "process_cpu_seconds_total": [ + { + "labels": {}, + "datapoints": [ + [1697024100, "0.002000000000000076"], + [1697024130, "0.002000000000000076"], + [1697024160, "0.0013333333333333049"] + ], + "name": "process_cpu_seconds_total" + } + ], + "process_resident_memory_bytes": [ + { + "labels": { + "__name__": "process_resident_memory_bytes", + "app": "istiod", + "install_operator_istio_io_owning_resource": "unknown", + "instance": "10.217.0.34:15014", + "istio": "pilot", + "istio_io_rev": "default", + "job": "kubernetes-pods", + "namespace": "istio-system", + "operator_istio_io_component": "Pilot", + "pod": "istiod-7548d4ff85-9czcn", + "pod_template_hash": "7548d4ff85", + "sidecar_istio_io_inject": "false" + }, + "datapoints": [ + [1697024100, "163.6352"], + [1697024130, "163.6352"], + [1697024160, "163.6352"] + ], + "name": "process_resident_memory_bytes" + } + ], + "request_count": null, + "request_error_count": null +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/inbound/metrics_inbound_600.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/inbound/metrics_inbound_600.json new file mode 100644 index 0000000000..9e292c84ec --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/inbound/metrics_inbound_600.json @@ -0,0 +1,141 @@ +{ + "container_cpu_usage_seconds_total": [ + { + "labels": {}, + "datapoints": [ + [1697023560, "0.012649111781990258"], + [1697023620, "0.0028395890688735514"], + [1697023680, "0.0029086472614529356"], + [1697023740, "0.003109156035267781"], + [1697023800, "0.002981445175995798"], + [1697023860, "0.0030650943556152"], + [1697023920, "0.002949315857020238"], + [1697023980, "0.0030294256967151605"], + [1697024040, "0.003211951468553024"], + [1697024100, "0.0031811090223253153"], + [1697024160, "0.009876169457103496"] + ], + "name": "container_cpu_usage_seconds_total" + } + ], + "container_memory_working_set_bytes": [ + { + "labels": { + "__name__": "container_memory_working_set_bytes", + "beta_kubernetes_io_arch": "amd64", + "beta_kubernetes_io_os": "linux", + "container": "discovery", + "id": "/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-pod86ae28e5_296a_4c6f_81ae_e3102580203a.slice/crio-311ddafa211336c162b5aeb91d70fbd048f94c9f18142285c0473eae845da2de.scope", + "image": "gcr.io/istio-release/pilot:1.18.2", + "instance": "crc-8cf2w-master-0", + "job": "kubernetes-nodes-cadvisor", + "kubernetes_io_arch": "amd64", + "kubernetes_io_hostname": "crc-8cf2w-master-0", + "kubernetes_io_os": "linux", + "name": "k8s_discovery_istiod-7548d4ff85-9czcn_istio-system_86ae28e5-296a-4c6f-81ae-e3102580203a_2", + "namespace": "istio-system", + "node_openshift_io_os_id": "rhcos", + "pod": "istiod-7548d4ff85-9czcn", + "topology_hostpath_csi_node": "crc-8cf2w-master-0" + }, + "datapoints": [ + [1697023560, "144.203776"], + [1697023620, "144.191488"], + [1697023680, "144.859136"], + [1697023740, "145.522688"], + [1697023800, "146.18624"], + [1697023860, "144.982016"], + [1697023920, "145.51449599999998"], + [1697023980, "144.396288"], + [1697024040, "145.055744"], + [1697024100, "143.683584"], + [1697024160, "143.683584"] + ], + "name": "container_memory_working_set_bytes" + } + ], + "grpc_received": null, + "grpc_sent": null, + "pilot_proxy_convergence_time": [ + { + "labels": {}, + "datapoints": [ + [1697023560, "NaN"], + [1697023620, "NaN"], + [1697023680, "NaN"], + [1697023740, "NaN"], + [1697023800, "NaN"], + [1697023860, "0.0002625923636363643"], + [1697023920, "NaN"], + [1697023980, "NaN"], + [1697024040, "NaN"], + [1697024100, "NaN"], + [1697024160, "NaN"] + ], + "stat": "avg", + "name": "pilot_proxy_convergence_time" + } + ], + "process_cpu_seconds_total": [ + { + "labels": {}, + "datapoints": [ + [1697023560, "0.004888888888888863"], + [1697023620, "0.0015555555555555618"], + [1697023680, "0.0015555555555555618"], + [1697023740, "0.0015555555555555618"], + [1697023800, "0.0015555555555555618"], + [1697023860, "0.0019999999999999966"], + [1697023920, "0.0015555555555555618"], + [1697023980, "0.0013333333333333836"], + [1697024040, "0.0015555555555555618"], + [1697024100, "0.0017777777777778186"], + [1697024160, "0.00511111111111112"] + ], + "name": "process_cpu_seconds_total" + } + ], + "process_resident_memory_bytes": [ + { + "labels": { + "__name__": "process_resident_memory_bytes", + "app": "istiod", + "install_operator_istio_io_owning_resource": "unknown", + "instance": "10.217.0.34:15014", + "istio": "pilot", + "istio_io_rev": "default", + "job": "kubernetes-pods", + "namespace": "istio-system", + "operator_istio_io_component": "Pilot", + "pod": "istiod-7548d4ff85-9czcn", + "pod_template_hash": "7548d4ff85", + "sidecar_istio_io_inject": "false" + }, + "datapoints": [ + [1697023560, "164.35609599999998"], + [1697023620, "164.35609599999998"], + [1697023680, "164.892672"], + [1697023740, "165.70368"], + [1697023800, "166.244352"], + [1697023860, "164.769792"], + [1697023920, "165.58079999999998"], + [1697023980, "164.462592"], + [1697024040, "165.003264"], + [1697024100, "163.6352"], + [1697024160, "163.6352"] + ], + "name": "process_resident_memory_bytes" + } + ], + "request_count": null, + "request_duration_millis": null, + "request_error_count": null, + "request_size": null, + "request_throughput": null, + "response_size": null, + "response_throughput": null, + "tcp_closed": null, + "tcp_opened": null, + "tcp_received": null, + "tcp_sent": null +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/index.ts b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/index.ts new file mode 100644 index 0000000000..7bfe9fb6a6 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/index.ts @@ -0,0 +1,51 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ + +import inbound60 from './inbound/metrics_inbound_60.json'; +import inbound120 from './inbound/metrics_inbound_120.json'; +import inbound300 from './inbound/metrics_inbound_300.json'; +import inbound600 from './inbound/metrics_inbound_600.json'; +import inbound1800 from './inbound/metrics_inbound_1800.json'; +import inbound3600 from './inbound/metrics_inbound_3600.json'; +/* Outbound Metrics */ + +import outbound60 from './outbound/metrics_outbound_60.json'; +import outbound120 from './outbound/metrics_outbound_120.json'; +import outbound300 from './outbound/metrics_outbound_300.json'; +import outbound600 from './outbound/metrics_outbound_600.json'; +import outbound1800 from './outbound/metrics_outbound_1800.json'; +import outbound3600 from './outbound/metrics_outbound_3600.json'; + +export const istioSystemMetrics = { + inbound: { + 60: inbound60, + 120: inbound120, + 300: inbound300, + 600: inbound600, + 1800: inbound1800, + 3600: inbound3600, + }, + outbound: { + 60: outbound60, + 120: outbound120, + 300: outbound300, + 600: outbound600, + 1800: outbound1800, + 3600: outbound3600, + }, +}; + +export default istioSystemMetrics; diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/outbound/metrics_outbound_120.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/outbound/metrics_outbound_120.json new file mode 100644 index 0000000000..1ed12e8c7e --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/outbound/metrics_outbound_120.json @@ -0,0 +1,112 @@ +{ + "container_cpu_usage_seconds_total": [ + { + "labels": {}, + "datapoints": [ + [1697024010, "0.0020194318109019596"], + [1697024040, "0.002755125239989775"], + [1697024070, "0.0028308143301925487"], + [1697024100, "0.0027977164583027226"], + [1697024130, "0.017605061010355652"] + ], + "name": "container_cpu_usage_seconds_total" + } + ], + "container_memory_working_set_bytes": [ + { + "labels": { + "__name__": "container_memory_working_set_bytes", + "beta_kubernetes_io_arch": "amd64", + "beta_kubernetes_io_os": "linux", + "container": "discovery", + "id": "/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-pod86ae28e5_296a_4c6f_81ae_e3102580203a.slice/crio-311ddafa211336c162b5aeb91d70fbd048f94c9f18142285c0473eae845da2de.scope", + "image": "gcr.io/istio-release/pilot:1.18.2", + "instance": "crc-8cf2w-master-0", + "job": "kubernetes-nodes-cadvisor", + "kubernetes_io_arch": "amd64", + "kubernetes_io_hostname": "crc-8cf2w-master-0", + "kubernetes_io_os": "linux", + "name": "k8s_discovery_istiod-7548d4ff85-9czcn_istio-system_86ae28e5-296a-4c6f-81ae-e3102580203a_2", + "namespace": "istio-system", + "node_openshift_io_os_id": "rhcos", + "pod": "istiod-7548d4ff85-9czcn", + "topology_hostpath_csi_node": "crc-8cf2w-master-0" + }, + "datapoints": [ + [1697024010, "144.392192"], + [1697024040, "145.055744"], + [1697024070, "143.683584"], + [1697024100, "143.683584"], + [1697024130, "143.679488"] + ], + "name": "container_memory_working_set_bytes" + } + ], + "pilot_proxy_convergence_time": [ + { + "labels": {}, + "datapoints": [ + [1697024010, "NaN"], + [1697024040, "NaN"], + [1697024070, "NaN"], + [1697024100, "NaN"], + [1697024130, "NaN"] + ], + "stat": "avg", + "name": "pilot_proxy_convergence_time" + } + ], + "process_cpu_seconds_total": [ + { + "labels": {}, + "datapoints": [ + [1697024010, "0.0013333333333333049"], + [1697024040, "0.0013333333333333049"], + [1697024070, "0.0013333333333333049"], + [1697024100, "0.002000000000000076"], + [1697024130, "0.002000000000000076"] + ], + "name": "process_cpu_seconds_total" + } + ], + "process_resident_memory_bytes": [ + { + "labels": { + "__name__": "process_resident_memory_bytes", + "app": "istiod", + "install_operator_istio_io_owning_resource": "unknown", + "instance": "10.217.0.34:15014", + "istio": "pilot", + "istio_io_rev": "default", + "job": "kubernetes-pods", + "namespace": "istio-system", + "operator_istio_io_component": "Pilot", + "pod": "istiod-7548d4ff85-9czcn", + "pod_template_hash": "7548d4ff85", + "sidecar_istio_io_inject": "false" + }, + "datapoints": [ + [1697024010, "164.462592"], + [1697024040, "165.003264"], + [1697024070, "163.6352"], + [1697024100, "163.6352"], + [1697024130, "163.6352"] + ], + "name": "process_resident_memory_bytes" + } + ], + "request_count": [ + { + "labels": {}, + "datapoints": [ + [1697024010, "1"], + [1697024040, "1"], + [1697024070, "0.9996667777407532"], + [1697024100, "1"], + [1697024130, "1"] + ], + "name": "request_count" + } + ], + "request_error_count": null +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/outbound/metrics_outbound_1800.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/outbound/metrics_outbound_1800.json new file mode 100644 index 0000000000..b23b5c5d65 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/outbound/metrics_outbound_1800.json @@ -0,0 +1,148 @@ +{ + "container_cpu_usage_seconds_total": [ + { + "labels": {}, + "datapoints": [ + [1697022180, "0.0026138895855586384"], + [1697022360, "0.004423229563643965"], + [1697022540, "0.002818351158753509"], + [1697022720, "0.0033681828956744772"], + [1697022900, "0.004075735098607482"], + [1697023080, "0.004858861411539032"], + [1697023260, "0.003327461760086153"], + [1697023440, "0.0029723897808957888"], + [1697023620, "0.005595762889521851"], + [1697023800, "0.0034129233521214435"], + [1697023980, "0.0034297933448419722"] + ], + "name": "container_cpu_usage_seconds_total" + } + ], + "container_memory_working_set_bytes": [ + { + "labels": { + "__name__": "container_memory_working_set_bytes", + "beta_kubernetes_io_arch": "amd64", + "beta_kubernetes_io_os": "linux", + "container": "discovery", + "id": "/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-pod86ae28e5_296a_4c6f_81ae_e3102580203a.slice/crio-311ddafa211336c162b5aeb91d70fbd048f94c9f18142285c0473eae845da2de.scope", + "image": "gcr.io/istio-release/pilot:1.18.2", + "instance": "crc-8cf2w-master-0", + "job": "kubernetes-nodes-cadvisor", + "kubernetes_io_arch": "amd64", + "kubernetes_io_hostname": "crc-8cf2w-master-0", + "kubernetes_io_os": "linux", + "name": "k8s_discovery_istiod-7548d4ff85-9czcn_istio-system_86ae28e5-296a-4c6f-81ae-e3102580203a_2", + "namespace": "istio-system", + "node_openshift_io_os_id": "rhcos", + "pod": "istiod-7548d4ff85-9czcn", + "topology_hostpath_csi_node": "crc-8cf2w-master-0" + }, + "datapoints": [ + [1697022180, "145.154048"], + [1697022360, "145.154048"], + [1697022540, "143.589376"], + [1697022720, "146.763776"], + [1697022900, "155.20972799999998"], + [1697023080, "152.662016"], + [1697023260, "148.979712"], + [1697023440, "146.354176"], + [1697023620, "144.191488"], + [1697023800, "146.18624"], + [1697023980, "144.396288"] + ], + "name": "container_memory_working_set_bytes" + } + ], + "pilot_proxy_convergence_time": [ + { + "labels": {}, + "datapoints": [ + [1697022180, "NaN"], + [1697022360, "NaN"], + [1697022540, "NaN"], + [1697022720, "NaN"], + [1697022900, "NaN"], + [1697023080, "NaN"], + [1697023260, "NaN"], + [1697023440, "NaN"], + [1697023620, "NaN"], + [1697023800, "NaN"], + [1697023980, "0.00026259236363636437"] + ], + "stat": "avg", + "name": "pilot_proxy_convergence_time" + } + ], + "process_cpu_seconds_total": [ + { + "labels": {}, + "datapoints": [ + [1697022180, "0.0013939393939393964"], + [1697022360, "0.002242424242424248"], + [1697022540, "0.0013333333333333478"], + [1697022720, "0.0017575757575757738"], + [1697022900, "0.001999999999999989"], + [1697023080, "0.002363636363636367"], + [1697023260, "0.0016363636363636335"], + [1697023440, "0.0015757575757575635"], + [1697023620, "0.002727272727272744"], + [1697023800, "0.001757575757575752"], + [1697023980, "0.0017575757575757738"] + ], + "name": "process_cpu_seconds_total" + } + ], + "process_resident_memory_bytes": [ + { + "labels": { + "__name__": "process_resident_memory_bytes", + "app": "istiod", + "install_operator_istio_io_owning_resource": "unknown", + "instance": "10.217.0.34:15014", + "istio": "pilot", + "istio_io_rev": "default", + "job": "kubernetes-pods", + "namespace": "istio-system", + "operator_istio_io_component": "Pilot", + "pod": "istiod-7548d4ff85-9czcn", + "pod_template_hash": "7548d4ff85", + "sidecar_istio_io_inject": "false" + }, + "datapoints": [ + [1697022180, "165.09747199999998"], + [1697022360, "165.09747199999998"], + [1697022540, "163.688448"], + [1697022720, "165.851136"], + [1697022900, "175.038464"], + [1697023080, "172.531712"], + [1697023260, "168.40704"], + [1697023440, "166.641664"], + [1697023620, "164.35609599999998"], + [1697023800, "166.244352"], + [1697023980, "164.462592"] + ], + "name": "process_resident_memory_bytes" + } + ], + "request_count": [ + { + "labels": {}, + "datapoints": [ + [1697022180, "0.9999999999999999"], + [1697022360, "0.9999999999999999"], + [1697022540, "0.9999999999999999"], + [1697022720, "0.9999999999999999"], + [1697022900, "0.9999999999999999"], + [1697023080, "0.9999999999999999"], + [1697023260, "0.9999999999999999"], + [1697023440, "0.9999999999999999"], + [1697023620, "0.9999999999999999"], + [1697023800, "0.9999999999999999"], + [1697023980, "0.9999999999999999"] + ], + "name": "request_count" + } + ], + "request_error_count": null +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/outbound/metrics_outbound_300.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/outbound/metrics_outbound_300.json new file mode 100644 index 0000000000..341f41eb51 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/outbound/metrics_outbound_300.json @@ -0,0 +1,148 @@ +{ + "container_cpu_usage_seconds_total": [ + { + "labels": {}, + "datapoints": [ + [1697023830, "0.004117320729759894"], + [1697023860, "0.00277104088632311"], + [1697023890, "0.002440995810258295"], + [1697023920, "0.0030462017153864134"], + [1697023950, "0.0011749084878141453"], + [1697023980, "0.003215558196758648"], + [1697024010, "0.0020194318109019596"], + [1697024040, "0.002755125239989775"], + [1697024070, "0.0028308143301925487"], + [1697024100, "0.0027977164583027226"], + [1697024130, "0.017605061010355652"] + ], + "name": "container_cpu_usage_seconds_total" + } + ], + "container_memory_working_set_bytes": [ + { + "labels": { + "__name__": "container_memory_working_set_bytes", + "beta_kubernetes_io_arch": "amd64", + "beta_kubernetes_io_os": "linux", + "container": "discovery", + "id": "/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-pod86ae28e5_296a_4c6f_81ae_e3102580203a.slice/crio-311ddafa211336c162b5aeb91d70fbd048f94c9f18142285c0473eae845da2de.scope", + "image": "gcr.io/istio-release/pilot:1.18.2", + "instance": "crc-8cf2w-master-0", + "job": "kubernetes-nodes-cadvisor", + "kubernetes_io_arch": "amd64", + "kubernetes_io_hostname": "crc-8cf2w-master-0", + "kubernetes_io_os": "linux", + "name": "k8s_discovery_istiod-7548d4ff85-9czcn_istio-system_86ae28e5-296a-4c6f-81ae-e3102580203a_2", + "namespace": "istio-system", + "node_openshift_io_os_id": "rhcos", + "pod": "istiod-7548d4ff85-9czcn", + "topology_hostpath_csi_node": "crc-8cf2w-master-0" + }, + "datapoints": [ + [1697023830, "144.850944"], + [1697023860, "144.982016"], + [1697023890, "144.846848"], + [1697023920, "145.51449599999998"], + [1697023950, "144.52326399999998"], + [1697023980, "144.396288"], + [1697024010, "144.392192"], + [1697024040, "145.055744"], + [1697024070, "143.683584"], + [1697024100, "143.683584"], + [1697024130, "143.679488"] + ], + "name": "container_memory_working_set_bytes" + } + ], + "pilot_proxy_convergence_time": [ + { + "labels": {}, + "datapoints": [ + [1697023830, "0.00026259236363636437"], + [1697023860, "NaN"], + [1697023890, "NaN"], + [1697023920, "NaN"], + [1697023950, "NaN"], + [1697023980, "NaN"], + [1697024010, "NaN"], + [1697024040, "NaN"], + [1697024070, "NaN"], + [1697024100, "NaN"], + [1697024130, "NaN"] + ], + "stat": "avg", + "name": "pilot_proxy_convergence_time" + } + ], + "process_cpu_seconds_total": [ + { + "labels": {}, + "datapoints": [ + [1697023830, "0.0026666666666668466"], + [1697023860, "0.0019999999999998387"], + [1697023890, "0.002000000000000076"], + [1697023920, "0.0013333333333333049"], + [1697023950, "0.0013333333333333049"], + [1697023980, "0.0013333333333335417"], + [1697024010, "0.0013333333333333049"], + [1697024040, "0.0013333333333333049"], + [1697024070, "0.0013333333333333049"], + [1697024100, "0.002000000000000076"], + [1697024130, "0.002000000000000076"] + ], + "name": "process_cpu_seconds_total" + } + ], + "process_resident_memory_bytes": [ + { + "labels": { + "__name__": "process_resident_memory_bytes", + "app": "istiod", + "install_operator_istio_io_owning_resource": "unknown", + "instance": "10.217.0.34:15014", + "istio": "pilot", + "istio_io_rev": "default", + "job": "kubernetes-pods", + "namespace": "istio-system", + "operator_istio_io_component": "Pilot", + "pod": "istiod-7548d4ff85-9czcn", + "pod_template_hash": "7548d4ff85", + "sidecar_istio_io_inject": "false" + }, + "datapoints": [ + [1697023830, "164.22912"], + [1697023860, "164.769792"], + [1697023890, "164.769792"], + [1697023920, "165.58079999999998"], + [1697023950, "164.462592"], + [1697023980, "164.462592"], + [1697024010, "164.462592"], + [1697024040, "165.003264"], + [1697024070, "163.6352"], + [1697024100, "163.6352"], + [1697024130, "163.6352"] + ], + "name": "process_resident_memory_bytes" + } + ], + "request_count": [ + { + "labels": {}, + "datapoints": [ + [1697023830, "0.9998000399920017"], + [1697023860, "1"], + [1697023890, "1"], + [1697023920, "1"], + [1697023950, "1"], + [1697023980, "1"], + [1697024010, "1"], + [1697024040, "1"], + [1697024070, "0.9996667777407532"], + [1697024100, "1"], + [1697024130, "1"] + ], + "name": "request_count" + } + ], + "request_error_count": null +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/outbound/metrics_outbound_3600.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/outbound/metrics_outbound_3600.json new file mode 100644 index 0000000000..cd77133738 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/outbound/metrics_outbound_3600.json @@ -0,0 +1,124 @@ +{ + "container_cpu_usage_seconds_total": [ + { + "labels": {}, + "datapoints": [ + [1697021640, "0.0022837365589533235"], + [1697022000, "0.003630157034545756"], + [1697022360, "0.0034882143205133696"], + [1697022720, "0.003109542147831563"], + [1697023080, "0.004421874876878809"], + [1697023440, "0.0031209359563211837"], + [1697023800, "0.004399331006493985"] + ], + "name": "container_cpu_usage_seconds_total" + } + ], + "container_memory_working_set_bytes": [ + { + "labels": { + "__name__": "container_memory_working_set_bytes", + "beta_kubernetes_io_arch": "amd64", + "beta_kubernetes_io_os": "linux", + "container": "discovery", + "id": "/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-pod86ae28e5_296a_4c6f_81ae_e3102580203a.slice/crio-311ddafa211336c162b5aeb91d70fbd048f94c9f18142285c0473eae845da2de.scope", + "image": "gcr.io/istio-release/pilot:1.18.2", + "instance": "crc-8cf2w-master-0", + "job": "kubernetes-nodes-cadvisor", + "kubernetes_io_arch": "amd64", + "kubernetes_io_hostname": "crc-8cf2w-master-0", + "kubernetes_io_os": "linux", + "name": "k8s_discovery_istiod-7548d4ff85-9czcn_istio-system_86ae28e5-296a-4c6f-81ae-e3102580203a_2", + "namespace": "istio-system", + "node_openshift_io_os_id": "rhcos", + "pod": "istiod-7548d4ff85-9czcn", + "topology_hostpath_csi_node": "crc-8cf2w-master-0" + }, + "datapoints": [ + [1697021640, "143.09376"], + [1697022000, "145.137664"], + [1697022360, "145.154048"], + [1697022720, "146.763776"], + [1697023080, "152.662016"], + [1697023440, "146.354176"], + [1697023800, "146.18624"] + ], + "name": "container_memory_working_set_bytes" + } + ], + "pilot_proxy_convergence_time": [ + { + "labels": {}, + "datapoints": [ + [1697021640, "NaN"], + [1697022000, "NaN"], + [1697022360, "NaN"], + [1697022720, "NaN"], + [1697023080, "0.00021478099999999977"], + [1697023440, "NaN"], + [1697023800, "NaN"] + ], + "stat": "avg", + "name": "pilot_proxy_convergence_time" + } + ], + "process_cpu_seconds_total": [ + { + "labels": {}, + "datapoints": [ + [1697021640, "0.001045284722222216"], + [1697022000, "0.0018260869565217364"], + [1697022360, "0.0017971014492753651"], + [1697022720, "0.0015652173913043557"], + [1697023080, "0.002173913043478261"], + [1697023440, "0.0015942028985507267"], + [1697023800, "0.002202898550724642"] + ], + "name": "process_cpu_seconds_total" + } + ], + "process_resident_memory_bytes": [ + { + "labels": { + "__name__": "process_resident_memory_bytes", + "app": "istiod", + "install_operator_istio_io_owning_resource": "unknown", + "instance": "10.217.0.34:15014", + "istio": "pilot", + "istio_io_rev": "default", + "job": "kubernetes-pods", + "namespace": "istio-system", + "operator_istio_io_component": "Pilot", + "pod": "istiod-7548d4ff85-9czcn", + "pod_template_hash": "7548d4ff85", + "sidecar_istio_io_inject": "false" + }, + "datapoints": [ + [1697021640, "163.19692799999999"], + [1697022000, "165.09747199999998"], + [1697022360, "165.09747199999998"], + [1697022720, "165.851136"], + [1697023080, "172.531712"], + [1697023440, "166.641664"], + [1697023800, "166.244352"] + ], + "name": "process_resident_memory_bytes" + } + ], + "request_count": [ + { + "labels": {}, + "datapoints": [ + [1697021640, "0.7295888888888888"], + [1697022000, "1"], + [1697022360, "1"], + [1697022720, "1"], + [1697023080, "1"], + [1697023440, "1"], + [1697023800, "1"] + ], + "name": "request_count" + } + ], + "request_error_count": null +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/outbound/metrics_outbound_60.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/outbound/metrics_outbound_60.json new file mode 100644 index 0000000000..d9aa2a50c6 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/outbound/metrics_outbound_60.json @@ -0,0 +1,100 @@ +{ + "container_cpu_usage_seconds_total": [ + { + "labels": {}, + "datapoints": [ + [1697024070, "0.0028308143301925487"], + [1697024100, "0.0027977164583027226"], + [1697024130, "0.017605061010355652"] + ], + "name": "container_cpu_usage_seconds_total" + } + ], + "container_memory_working_set_bytes": [ + { + "labels": { + "__name__": "container_memory_working_set_bytes", + "beta_kubernetes_io_arch": "amd64", + "beta_kubernetes_io_os": "linux", + "container": "discovery", + "id": "/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-pod86ae28e5_296a_4c6f_81ae_e3102580203a.slice/crio-311ddafa211336c162b5aeb91d70fbd048f94c9f18142285c0473eae845da2de.scope", + "image": "gcr.io/istio-release/pilot:1.18.2", + "instance": "crc-8cf2w-master-0", + "job": "kubernetes-nodes-cadvisor", + "kubernetes_io_arch": "amd64", + "kubernetes_io_hostname": "crc-8cf2w-master-0", + "kubernetes_io_os": "linux", + "name": "k8s_discovery_istiod-7548d4ff85-9czcn_istio-system_86ae28e5-296a-4c6f-81ae-e3102580203a_2", + "namespace": "istio-system", + "node_openshift_io_os_id": "rhcos", + "pod": "istiod-7548d4ff85-9czcn", + "topology_hostpath_csi_node": "crc-8cf2w-master-0" + }, + "datapoints": [ + [1697024070, "143.683584"], + [1697024100, "143.683584"], + [1697024130, "143.679488"] + ], + "name": "container_memory_working_set_bytes" + } + ], + "pilot_proxy_convergence_time": [ + { + "labels": {}, + "datapoints": [ + [1697024070, "NaN"], + [1697024100, "NaN"], + [1697024130, "NaN"] + ], + "stat": "avg", + "name": "pilot_proxy_convergence_time" + } + ], + "process_cpu_seconds_total": [ + { + "labels": {}, + "datapoints": [ + [1697024070, "0.0013333333333333049"], + [1697024100, "0.002000000000000076"], + [1697024130, "0.002000000000000076"] + ], + "name": "process_cpu_seconds_total" + } + ], + "process_resident_memory_bytes": [ + { + "labels": { + "__name__": "process_resident_memory_bytes", + "app": "istiod", + "install_operator_istio_io_owning_resource": "unknown", + "instance": "10.217.0.34:15014", + "istio": "pilot", + "istio_io_rev": "default", + "job": "kubernetes-pods", + "namespace": "istio-system", + "operator_istio_io_component": "Pilot", + "pod": "istiod-7548d4ff85-9czcn", + "pod_template_hash": "7548d4ff85", + "sidecar_istio_io_inject": "false" + }, + "datapoints": [ + [1697024070, "163.6352"], + [1697024100, "163.6352"], + [1697024130, "163.6352"] + ], + "name": "process_resident_memory_bytes" + } + ], + "request_count": [ + { + "labels": {}, + "datapoints": [ + [1697024070, "0.9996667777407532"], + [1697024100, "1"], + [1697024130, "1"] + ], + "name": "request_count" + } + ], + "request_error_count": null +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/outbound/metrics_outbound_600.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/outbound/metrics_outbound_600.json new file mode 100644 index 0000000000..4fcd086822 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/metrics/outbound/metrics_outbound_600.json @@ -0,0 +1,252 @@ +{ + "container_cpu_usage_seconds_total": [ + { + "labels": {}, + "datapoints": [ + [1697023500, "0.004063051366539051"], + [1697023560, "0.012649111781990258"], + [1697023620, "0.0028395890688735514"], + [1697023680, "0.0029086472614529356"], + [1697023740, "0.003109156035267781"], + [1697023800, "0.002981445175995798"], + [1697023860, "0.0030650943556152"], + [1697023920, "0.002949315857020238"], + [1697023980, "0.0030294256967151605"], + [1697024040, "0.003211951468553024"], + [1697024100, "0.0031811090223253153"] + ], + "name": "container_cpu_usage_seconds_total" + } + ], + "container_memory_working_set_bytes": [ + { + "labels": { + "__name__": "container_memory_working_set_bytes", + "beta_kubernetes_io_arch": "amd64", + "beta_kubernetes_io_os": "linux", + "container": "discovery", + "id": "/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-pod86ae28e5_296a_4c6f_81ae_e3102580203a.slice/crio-311ddafa211336c162b5aeb91d70fbd048f94c9f18142285c0473eae845da2de.scope", + "image": "gcr.io/istio-release/pilot:1.18.2", + "instance": "crc-8cf2w-master-0", + "job": "kubernetes-nodes-cadvisor", + "kubernetes_io_arch": "amd64", + "kubernetes_io_hostname": "crc-8cf2w-master-0", + "kubernetes_io_os": "linux", + "name": "k8s_discovery_istiod-7548d4ff85-9czcn_istio-system_86ae28e5-296a-4c6f-81ae-e3102580203a_2", + "namespace": "istio-system", + "node_openshift_io_os_id": "rhcos", + "pod": "istiod-7548d4ff85-9czcn", + "topology_hostpath_csi_node": "crc-8cf2w-master-0" + }, + "datapoints": [ + [1697023500, "144.195584"], + [1697023560, "144.203776"], + [1697023620, "144.191488"], + [1697023680, "144.859136"], + [1697023740, "145.522688"], + [1697023800, "146.18624"], + [1697023860, "144.982016"], + [1697023920, "145.51449599999998"], + [1697023980, "144.396288"], + [1697024040, "145.055744"], + [1697024100, "143.683584"] + ], + "name": "container_memory_working_set_bytes" + } + ], + "grpc_received": null, + "grpc_sent": null, + "pilot_proxy_convergence_time": [ + { + "labels": {}, + "datapoints": [ + [1697023500, "NaN"], + [1697023560, "NaN"], + [1697023620, "NaN"], + [1697023680, "NaN"], + [1697023740, "NaN"], + [1697023800, "NaN"], + [1697023860, "0.0002625923636363643"], + [1697023920, "NaN"], + [1697023980, "NaN"], + [1697024040, "NaN"], + [1697024100, "NaN"] + ], + "stat": "avg", + "name": "pilot_proxy_convergence_time" + } + ], + "process_cpu_seconds_total": [ + { + "labels": {}, + "datapoints": [ + [1697023500, "0.0019999999999999966"], + [1697023560, "0.004888888888888863"], + [1697023620, "0.0015555555555555618"], + [1697023680, "0.0015555555555555618"], + [1697023740, "0.0015555555555555618"], + [1697023800, "0.0015555555555555618"], + [1697023860, "0.0019999999999999966"], + [1697023920, "0.0015555555555555618"], + [1697023980, "0.0013333333333333836"], + [1697024040, "0.0015555555555555618"], + [1697024100, "0.0017777777777778186"] + ], + "name": "process_cpu_seconds_total" + } + ], + "process_resident_memory_bytes": [ + { + "labels": { + "__name__": "process_resident_memory_bytes", + "app": "istiod", + "install_operator_istio_io_owning_resource": "unknown", + "instance": "10.217.0.34:15014", + "istio": "pilot", + "istio_io_rev": "default", + "job": "kubernetes-pods", + "namespace": "istio-system", + "operator_istio_io_component": "Pilot", + "pod": "istiod-7548d4ff85-9czcn", + "pod_template_hash": "7548d4ff85", + "sidecar_istio_io_inject": "false" + }, + "datapoints": [ + [1697023500, "163.81951999999998"], + [1697023560, "164.35609599999998"], + [1697023620, "164.35609599999998"], + [1697023680, "164.892672"], + [1697023740, "165.70368"], + [1697023800, "166.244352"], + [1697023860, "164.769792"], + [1697023920, "165.58079999999998"], + [1697023980, "164.462592"], + [1697024040, "165.003264"], + [1697024100, "163.6352"] + ], + "name": "process_resident_memory_bytes" + } + ], + "request_count": [ + { + "labels": {}, + "datapoints": [ + [1697023500, "0.9999999999999999"], + [1697023560, "0.9999999999999999"], + [1697023620, "0.9999999999999999"], + [1697023680, "0.9999555575307764"], + [1697023740, "0.9999999999999999"], + [1697023800, "0.9999999999999999"], + [1697023860, "0.9999999999999999"], + [1697023920, "0.9999999999999999"], + [1697023980, "0.9999999999999999"], + [1697024040, "0.9999999999999999"], + [1697024100, "0.9999999999999999"] + ], + "name": "request_count" + } + ], + "request_duration_millis": [ + { + "labels": {}, + "datapoints": [ + [1697023500, "17.144444444444446"], + [1697023560, "17.98888888888889"], + [1697023620, "15.245555555555297"], + [1697023680, "15.845555555555297"], + [1697023740, "16.65555555555556"], + [1697023800, "15.968888888889017"], + [1697023860, "15.96888888888837"], + [1697023920, "15.522222222222222"], + [1697023980, "13.882222222222481"], + [1697024040, "15.981111111110982"], + [1697024100, "16.5466666666668"] + ], + "stat": "avg", + "name": "request_duration_millis" + } + ], + "request_error_count": null, + "request_size": [ + { + "labels": {}, + "datapoints": [ + [1697023500, "1950"], + [1697023560, "1950"], + [1697023620, "1950"], + [1697023680, "1950"], + [1697023740, "1950"], + [1697023800, "1950"], + [1697023860, "1950"], + [1697023920, "1950"], + [1697023980, "1950"], + [1697024040, "1950"], + [1697024100, "1950"] + ], + "stat": "avg", + "name": "request_size" + } + ], + "request_throughput": [ + { + "labels": {}, + "datapoints": [ + [1697023500, "1949.9999999999998"], + [1697023560, "1949.9999999999998"], + [1697023620, "1949.9999999999998"], + [1697023680, "1949.913337185014"], + [1697023740, "1949.9999999999998"], + [1697023800, "1949.9999999999998"], + [1697023860, "1949.9999999999998"], + [1697023920, "1949.9999999999998"], + [1697023980, "1949.9999999999998"], + [1697024040, "1949.9999999999998"], + [1697024100, "1949.9999999999998"] + ], + "name": "request_throughput" + } + ], + "response_size": [ + { + "labels": {}, + "datapoints": [ + [1697023500, "6127.777777777778"], + [1697023560, "6083.333333333334"], + [1697023620, "5972.222222222223"], + [1697023680, "5883.333333333334"], + [1697023740, "6083.333333333334"], + [1697023800, "6038.888888888889"], + [1697023860, "5972.222222222223"], + [1697023920, "5994.444444444444"], + [1697023980, "5905.555555555556"], + [1697024040, "6127.777777777778"], + [1697024100, "6016.666666666667"] + ], + "stat": "avg", + "name": "response_size" + } + ], + "response_throughput": [ + { + "labels": {}, + "datapoints": [ + [1697023500, "6127.777777777777"], + [1697023560, "6083.333333333333"], + [1697023620, "5972.222222222222"], + [1697023680, "5883.071863472735"], + [1697023740, "6083.333333333333"], + [1697023800, "6038.888888888888"], + [1697023860, "5972.222222222222"], + [1697023920, "5994.444444444443"], + [1697023980, "5905.555555555555"], + [1697024040, "6127.777777777777"], + [1697024100, "6016.666666666666"] + ], + "name": "response_throughput" + } + ], + "tcp_closed": null, + "tcp_opened": null, + "tcp_received": null, + "tcp_sent": null +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/services.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/services.json new file mode 100644 index 0000000000..25634aee33 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/services.json @@ -0,0 +1,378 @@ +{ + "namespace": { + "name": "istio-system", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "services": [ + { + "name": "kiali", + "namespace": "istio-system", + "istioSidecar": false, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": false, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "kiali", + "app.kubernetes.io/instance": "kiali", + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "kiali", + "app.kubernetes.io/part-of": "kiali", + "app.kubernetes.io/version": "v1.79.0", + "helm.sh/chart": "kiali-server-1.79.0", + "version": "v1.79.0" + }, + "selector": { + "app.kubernetes.io/instance": "kiali", + "app.kubernetes.io/name": "kiali" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "zipkin", + "namespace": "istio-system", + "istioSidecar": false, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "name": "zipkin" + }, + "selector": { + "app": "jaeger" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "grafana", + "namespace": "istio-system", + "istioSidecar": false, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": false, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app.kubernetes.io/instance": "grafana", + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "grafana", + "app.kubernetes.io/version": "10.1.5", + "helm.sh/chart": "grafana-6.61.1" + }, + "selector": { + "app.kubernetes.io/instance": "grafana", + "app.kubernetes.io/name": "grafana" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "istiod", + "namespace": "istio-system", + "istioSidecar": false, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "istiod", + "install.operator.istio.io/owning-resource": "installed-state", + "install.operator.istio.io/owning-resource-namespace": "istio-system", + "istio": "pilot", + "istio.io/rev": "default", + "operator.istio.io/component": "Pilot", + "operator.istio.io/managed": "Reconcile", + "operator.istio.io/version": "1.21.0-rc.0", + "release": "istio" + }, + "selector": { + "app": "istiod", + "istio": "pilot" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "jaeger-collector", + "namespace": "istio-system", + "istioSidecar": false, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "jaeger" + }, + "selector": { + "app": "jaeger" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "prometheus", + "namespace": "istio-system", + "istioSidecar": false, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": false, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app.kubernetes.io/component": "server", + "app.kubernetes.io/instance": "prometheus", + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "prometheus", + "app.kubernetes.io/part-of": "prometheus", + "app.kubernetes.io/version": "v2.48.0", + "helm.sh/chart": "prometheus-25.8.0" + }, + "selector": { + "app.kubernetes.io/component": "server", + "app.kubernetes.io/instance": "prometheus", + "app.kubernetes.io/name": "prometheus" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "tracing", + "namespace": "istio-system", + "istioSidecar": false, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "jaeger" + }, + "selector": { + "app": "jaeger" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "istio-egressgateway", + "namespace": "istio-system", + "istioSidecar": false, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "istio-egressgateway", + "install.operator.istio.io/owning-resource": "installed-state", + "install.operator.istio.io/owning-resource-namespace": "istio-system", + "istio": "egressgateway", + "istio.io/rev": "default", + "operator.istio.io/component": "EgressGateways", + "operator.istio.io/managed": "Reconcile", + "operator.istio.io/version": "1.21.0-rc.0", + "release": "istio" + }, + "selector": { + "app": "istio-egressgateway", + "istio": "egressgateway" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "istio-ingressgateway", + "namespace": "istio-system", + "istioSidecar": false, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "istio-ingressgateway", + "install.operator.istio.io/owning-resource": "installed-state", + "install.operator.istio.io/owning-resource-namespace": "istio-system", + "istio": "ingressgateway", + "istio.io/rev": "default", + "operator.istio.io/component": "IngressGateways", + "operator.istio.io/managed": "Reconcile", + "operator.istio.io/version": "1.21.0-rc.0", + "release": "istio" + }, + "selector": { + "app": "istio-ingressgateway", + "istio": "ingressgateway" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + } + ], + "validations": { + "service": { + "grafana.istio-system": { + "name": "grafana", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + }, + "istio-egressgateway.istio-system": { + "name": "istio-egressgateway", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + }, + "istio-ingressgateway.istio-system": { + "name": "istio-ingressgateway", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + }, + "istiod.istio-system": { + "name": "istiod", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + }, + "jaeger-collector.istio-system": { + "name": "jaeger-collector", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + }, + "kiali.istio-system": { + "name": "kiali", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + }, + "prometheus.istio-system": { + "name": "prometheus", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + }, + "tracing.istio-system": { + "name": "tracing", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + }, + "zipkin.istio-system": { + "name": "zipkin", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + } + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/services/grafana.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/services/grafana.json new file mode 100644 index 0000000000..50e0d00a62 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/services/grafana.json @@ -0,0 +1,353 @@ +{ + "cluster": "Kubernetes", + "destinationRules": [], + "endpoints": [ + { + "addresses": [ + { + "kind": "Pod", + "name": "grafana-6f68dfd8f4-xrqfh", + "ip": "10.244.0.29", + "port": 0 + } + ], + "ports": [ + { + "name": "service", + "protocol": "TCP", + "port": 3000 + } + ] + } + ], + "istioPermissions": { + "create": true, + "update": true, + "delete": true + }, + "istioSidecar": false, + "k8sHTTPRoutes": [], + "k8sReferenceGrants": null, + "service": { + "name": "grafana", + "createdAt": "2024-02-26T09:50:00Z", + "resourceVersion": "630", + "namespace": { + "name": "istio-system", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "labels": { + "app.kubernetes.io/instance": "grafana", + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "grafana", + "app.kubernetes.io/version": "10.1.5", + "helm.sh/chart": "grafana-6.61.1" + }, + "selectors": { + "app.kubernetes.io/instance": "grafana", + "app.kubernetes.io/name": "grafana" + }, + "type": "ClusterIP", + "ip": "10.105.137.13", + "ports": [ + { + "name": "service", + "protocol": "TCP", + "port": 3000 + } + ], + "externalName": "", + "annotations": { + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"labels\":{\"app.kubernetes.io/instance\":\"grafana\",\"app.kubernetes.io/managed-by\":\"Helm\",\"app.kubernetes.io/name\":\"grafana\",\"app.kubernetes.io/version\":\"10.1.5\",\"helm.sh/chart\":\"grafana-6.61.1\"},\"name\":\"grafana\",\"namespace\":\"istio-system\"},\"spec\":{\"ports\":[{\"name\":\"service\",\"port\":3000,\"protocol\":\"TCP\",\"targetPort\":3000}],\"selector\":{\"app.kubernetes.io/instance\":\"grafana\",\"app.kubernetes.io/name\":\"grafana\"},\"type\":\"ClusterIP\"}}\n" + }, + "healthAnnotations": {}, + "additionalDetails": [] + }, + "serviceEntries": null, + "virtualServices": [], + "workloads": [ + { + "name": "grafana", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-26T09:50:00Z", + "resourceVersion": "739", + "istioSidecar": false, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app.kubernetes.io/instance": "grafana", + "app.kubernetes.io/name": "grafana", + "sidecar.istio.io/inject": "false" + }, + "appLabel": false, + "versionLabel": false, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app.kubernetes.io/instance\":\"grafana\",\"app.kubernetes.io/managed-by\":\"Helm\",\"app.kubernetes.io/name\":\"grafana\",\"app.kubernetes.io/version\":\"10.1.5\",\"helm.sh/chart\":\"grafana-6.61.1\"},\"name\":\"grafana\",\"namespace\":\"istio-system\"},\"spec\":{\"replicas\":1,\"revisionHistoryLimit\":10,\"selector\":{\"matchLabels\":{\"app.kubernetes.io/instance\":\"grafana\",\"app.kubernetes.io/name\":\"grafana\"}},\"strategy\":{\"type\":\"RollingUpdate\"},\"template\":{\"metadata\":{\"annotations\":{\"checksum/config\":\"e6dc57066020dcc7ec73db1b5e39370203985e5071b47f1f1414ee5c42679d46\",\"checksum/dashboards-json-config\":\"01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b\",\"checksum/sc-dashboard-provider-config\":\"01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b\",\"kubectl.kubernetes.io/default-container\":\"grafana\"},\"labels\":{\"app.kubernetes.io/instance\":\"grafana\",\"app.kubernetes.io/name\":\"grafana\",\"sidecar.istio.io/inject\":\"false\"}},\"spec\":{\"automountServiceAccountToken\":true,\"containers\":[{\"env\":[{\"name\":\"POD_IP\",\"valueFrom\":{\"fieldRef\":{\"fieldPath\":\"status.podIP\"}}},{\"name\":\"GF_PATHS_DATA\",\"value\":\"/var/lib/grafana/\"},{\"name\":\"GF_PATHS_LOGS\",\"value\":\"/var/log/grafana\"},{\"name\":\"GF_PATHS_PLUGINS\",\"value\":\"/var/lib/grafana/plugins\"},{\"name\":\"GF_PATHS_PROVISIONING\",\"value\":\"/etc/grafana/provisioning\"},{\"name\":\"GF_AUTH_ANONYMOUS_ENABLED\",\"value\":\"true\"},{\"name\":\"GF_AUTH_ANONYMOUS_ORG_ROLE\",\"value\":\"Admin\"},{\"name\":\"GF_AUTH_BASIC_ENABLED\",\"value\":\"false\"},{\"name\":\"GF_SECURITY_ADMIN_PASSWORD\",\"value\":\"admin\"},{\"name\":\"GF_SECURITY_ADMIN_USER\",\"value\":\"admin\"}],\"image\":\"docker.io/grafana/grafana:10.1.5\",\"imagePullPolicy\":\"IfNotPresent\",\"livenessProbe\":{\"failureThreshold\":10,\"httpGet\":{\"path\":\"/api/health\",\"port\":3000},\"initialDelaySeconds\":60,\"timeoutSeconds\":30},\"name\":\"grafana\",\"ports\":[{\"containerPort\":3000,\"name\":\"grafana\",\"protocol\":\"TCP\"},{\"containerPort\":9094,\"name\":\"gossip-tcp\",\"protocol\":\"TCP\"},{\"containerPort\":9094,\"name\":\"gossip-udp\",\"protocol\":\"UDP\"}],\"readinessProbe\":{\"httpGet\":{\"path\":\"/api/health\",\"port\":3000}},\"securityContext\":{\"allowPrivilegeEscalation\":false,\"capabilities\":{\"drop\":[\"ALL\"]},\"seccompProfile\":{\"type\":\"RuntimeDefault\"}},\"volumeMounts\":[{\"mountPath\":\"/etc/grafana/grafana.ini\",\"name\":\"config\",\"subPath\":\"grafana.ini\"},{\"mountPath\":\"/var/lib/grafana\",\"name\":\"storage\"},{\"mountPath\":\"/var/lib/grafana/dashboards/istio\",\"name\":\"dashboards-istio\"},{\"mountPath\":\"/var/lib/grafana/dashboards/istio-services\",\"name\":\"dashboards-istio-services\"},{\"mountPath\":\"/etc/grafana/provisioning/datasources/datasources.yaml\",\"name\":\"config\",\"subPath\":\"datasources.yaml\"},{\"mountPath\":\"/etc/grafana/provisioning/dashboards/dashboardproviders.yaml\",\"name\":\"config\",\"subPath\":\"dashboardproviders.yaml\"}]}],\"enableServiceLinks\":true,\"serviceAccountName\":\"grafana\",\"volumes\":[{\"configMap\":{\"name\":\"grafana\"},\"name\":\"config\"},{\"configMap\":{\"name\":\"istio-grafana-dashboards\"},\"name\":\"dashboards-istio\"},{\"configMap\":{\"name\":\"istio-services-grafana-dashboards\"},\"name\":\"dashboards-istio-services\"},{\"emptyDir\":{},\"name\":\"storage\"}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["grafana"], + "health": { + "workloadStatus": null, + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "namespaceMTLS": { + "status": "MTLS_NOT_ENABLED", + "autoMTLSEnabled": true, + "minTLS": "" + }, + "subServices": [ + { + "name": "grafana", + "namespace": "", + "istioSidecar": false, + "cluster": "", + "istioAmbient": false, + "appLabel": false, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": null, + "ports": { + "service": 3000 + }, + "labels": null, + "selector": null, + "istioReferences": null, + "kialiWizard": "", + "serviceRegistry": "", + "health": { + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": true, + "checks": [], + "references": null + } + }, + "service": { + "grafana.istio-system": { + "name": "grafana", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "cars-v1.travel-agency": { + "name": "cars-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "control.travel-control": { + "name": "control", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "details-v1.bookinfo": { + "name": "details-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "discounts-v1.travel-agency": { + "name": "discounts-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "flights-v1.travel-agency": { + "name": "flights-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "grafana.istio-system": { + "name": "grafana", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "hotels-v1.travel-agency": { + "name": "hotels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "insurances-v1.travel-agency": { + "name": "insurances-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-egressgateway.istio-system": { + "name": "istio-egressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-ingressgateway.istio-system": { + "name": "istio-ingressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istiod.istio-system": { + "name": "istiod", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "jaeger.istio-system": { + "name": "jaeger", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali-traffic-generator.bookinfo": { + "name": "kiali-traffic-generator", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali.istio-system": { + "name": "kiali", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "mysqldb-v1.travel-agency": { + "name": "mysqldb-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "productpage-v1.bookinfo": { + "name": "productpage-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "prometheus.istio-system": { + "name": "prometheus", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "ratings-v1.bookinfo": { + "name": "ratings-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v1.bookinfo": { + "name": "reviews-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v2.bookinfo": { + "name": "reviews-v2", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v3.bookinfo": { + "name": "reviews-v3", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels-v1.travel-agency": { + "name": "travels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels.travel-portal": { + "name": "travels", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "viaggi.travel-portal": { + "name": "viaggi", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "voyages.travel-portal": { + "name": "voyages", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/services/istio_egressgateway.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/services/istio_egressgateway.json new file mode 100644 index 0000000000..c0e4055456 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/services/istio_egressgateway.json @@ -0,0 +1,373 @@ +{ + "cluster": "Kubernetes", + "destinationRules": [], + "endpoints": [ + { + "addresses": [ + { + "kind": "Pod", + "name": "istio-egressgateway-5c6fb75bff-jvk5x", + "ip": "10.244.0.30", + "port": 0 + } + ], + "ports": [ + { + "name": "http2", + "protocol": "TCP", + "port": 8080 + }, + { + "name": "https", + "protocol": "TCP", + "port": 8443 + } + ] + } + ], + "istioPermissions": { + "create": true, + "update": true, + "delete": true + }, + "istioSidecar": false, + "k8sHTTPRoutes": [], + "k8sReferenceGrants": null, + "service": { + "name": "istio-egressgateway", + "createdAt": "2024-02-26T09:49:49Z", + "resourceVersion": "549", + "namespace": { + "name": "istio-system", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "labels": { + "app": "istio-egressgateway", + "install.operator.istio.io/owning-resource": "installed-state", + "install.operator.istio.io/owning-resource-namespace": "istio-system", + "istio": "egressgateway", + "istio.io/rev": "default", + "operator.istio.io/component": "EgressGateways", + "operator.istio.io/managed": "Reconcile", + "operator.istio.io/version": "1.21.0-rc.0", + "release": "istio" + }, + "selectors": { + "app": "istio-egressgateway", + "istio": "egressgateway" + }, + "type": "ClusterIP", + "ip": "10.97.150.129", + "ports": [ + { + "name": "http2", + "protocol": "TCP", + "port": 80 + }, + { + "name": "https", + "protocol": "TCP", + "port": 443 + } + ], + "externalName": "", + "annotations": {}, + "healthAnnotations": {}, + "additionalDetails": [] + }, + "serviceEntries": null, + "virtualServices": [], + "workloads": [ + { + "name": "istio-egressgateway", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-26T09:49:49Z", + "resourceVersion": "24591", + "istioSidecar": false, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "istio-egressgateway", + "chart": "gateways", + "heritage": "Tiller", + "install.operator.istio.io/owning-resource": "unknown", + "istio": "egressgateway", + "istio.io/rev": "default", + "operator.istio.io/component": "EgressGateways", + "release": "istio", + "service.istio.io/canonical-name": "istio-egressgateway", + "service.istio.io/canonical-revision": "latest", + "sidecar.istio.io/inject": "false" + }, + "appLabel": true, + "versionLabel": false, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["istio-egressgateway-service-account"], + "health": { + "workloadStatus": null, + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "namespaceMTLS": { + "status": "MTLS_NOT_ENABLED", + "autoMTLSEnabled": true, + "minTLS": "" + }, + "subServices": [ + { + "name": "istio-egressgateway", + "namespace": "", + "istioSidecar": false, + "cluster": "", + "istioAmbient": false, + "appLabel": false, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": null, + "ports": { + "http2": 80, + "https": 443 + }, + "labels": null, + "selector": null, + "istioReferences": null, + "kialiWizard": "", + "serviceRegistry": "", + "health": { + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": true, + "checks": [], + "references": null + } + }, + "service": { + "istio-egressgateway.istio-system": { + "name": "istio-egressgateway", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "cars-v1.travel-agency": { + "name": "cars-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "control.travel-control": { + "name": "control", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "details-v1.bookinfo": { + "name": "details-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "discounts-v1.travel-agency": { + "name": "discounts-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "flights-v1.travel-agency": { + "name": "flights-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "grafana.istio-system": { + "name": "grafana", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "hotels-v1.travel-agency": { + "name": "hotels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "insurances-v1.travel-agency": { + "name": "insurances-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-egressgateway.istio-system": { + "name": "istio-egressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-ingressgateway.istio-system": { + "name": "istio-ingressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istiod.istio-system": { + "name": "istiod", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "jaeger.istio-system": { + "name": "jaeger", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali-traffic-generator.bookinfo": { + "name": "kiali-traffic-generator", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali.istio-system": { + "name": "kiali", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "mysqldb-v1.travel-agency": { + "name": "mysqldb-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "productpage-v1.bookinfo": { + "name": "productpage-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "prometheus.istio-system": { + "name": "prometheus", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "ratings-v1.bookinfo": { + "name": "ratings-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v1.bookinfo": { + "name": "reviews-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v2.bookinfo": { + "name": "reviews-v2", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v3.bookinfo": { + "name": "reviews-v3", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels-v1.travel-agency": { + "name": "travels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels.travel-portal": { + "name": "travels", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "viaggi.travel-portal": { + "name": "viaggi", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "voyages.travel-portal": { + "name": "voyages", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/services/istio_ingressgateway.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/services/istio_ingressgateway.json new file mode 100644 index 0000000000..a6b500f05b --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/services/istio_ingressgateway.json @@ -0,0 +1,406 @@ +{ + "cluster": "Kubernetes", + "destinationRules": [], + "endpoints": [ + { + "addresses": [ + { + "kind": "Pod", + "name": "istio-ingressgateway-6687fd9779-zg9f5", + "ip": "10.244.0.27", + "port": 0 + } + ], + "ports": [ + { + "name": "tls", + "protocol": "TCP", + "port": 15443 + }, + { + "name": "status-port", + "protocol": "TCP", + "port": 15021 + }, + { + "name": "tcp", + "protocol": "TCP", + "port": 31400 + }, + { + "name": "http2", + "protocol": "TCP", + "port": 8080 + }, + { + "name": "https", + "protocol": "TCP", + "port": 8443 + } + ] + } + ], + "istioPermissions": { + "create": true, + "update": true, + "delete": true + }, + "istioSidecar": false, + "k8sHTTPRoutes": [], + "k8sReferenceGrants": null, + "service": { + "name": "istio-ingressgateway", + "createdAt": "2024-02-26T09:49:49Z", + "resourceVersion": "558", + "namespace": { + "name": "istio-system", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "labels": { + "app": "istio-ingressgateway", + "install.operator.istio.io/owning-resource": "installed-state", + "install.operator.istio.io/owning-resource-namespace": "istio-system", + "istio": "ingressgateway", + "istio.io/rev": "default", + "operator.istio.io/component": "IngressGateways", + "operator.istio.io/managed": "Reconcile", + "operator.istio.io/version": "1.21.0-rc.0", + "release": "istio" + }, + "selectors": { + "app": "istio-ingressgateway", + "istio": "ingressgateway" + }, + "type": "LoadBalancer", + "ip": "10.110.59.37", + "ports": [ + { + "name": "status-port", + "protocol": "TCP", + "port": 15021 + }, + { + "name": "http2", + "protocol": "TCP", + "port": 80 + }, + { + "name": "https", + "protocol": "TCP", + "port": 443 + }, + { + "name": "tcp", + "protocol": "TCP", + "port": 31400 + }, + { + "name": "tls", + "protocol": "TCP", + "port": 15443 + } + ], + "externalName": "", + "annotations": {}, + "healthAnnotations": {}, + "additionalDetails": [] + }, + "serviceEntries": null, + "virtualServices": [], + "workloads": [ + { + "name": "istio-ingressgateway", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-26T09:49:49Z", + "resourceVersion": "24602", + "istioSidecar": false, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "istio-ingressgateway", + "chart": "gateways", + "heritage": "Tiller", + "install.operator.istio.io/owning-resource": "unknown", + "istio": "ingressgateway", + "istio.io/rev": "default", + "operator.istio.io/component": "IngressGateways", + "release": "istio", + "service.istio.io/canonical-name": "istio-ingressgateway", + "service.istio.io/canonical-revision": "latest", + "sidecar.istio.io/inject": "false" + }, + "appLabel": true, + "versionLabel": false, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["istio-ingressgateway-service-account"], + "health": { + "workloadStatus": null, + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "namespaceMTLS": { + "status": "MTLS_NOT_ENABLED", + "autoMTLSEnabled": true, + "minTLS": "" + }, + "subServices": [ + { + "name": "istio-ingressgateway", + "namespace": "", + "istioSidecar": false, + "cluster": "", + "istioAmbient": false, + "appLabel": false, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": null, + "ports": { + "http2": 80, + "https": 443, + "status-port": 15021, + "tcp": 31400, + "tls": 15443 + }, + "labels": null, + "selector": null, + "istioReferences": null, + "kialiWizard": "", + "serviceRegistry": "", + "health": { + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": true, + "checks": [], + "references": null + } + }, + "service": { + "istio-ingressgateway.istio-system": { + "name": "istio-ingressgateway", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "cars-v1.travel-agency": { + "name": "cars-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "control.travel-control": { + "name": "control", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "details-v1.bookinfo": { + "name": "details-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "discounts-v1.travel-agency": { + "name": "discounts-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "flights-v1.travel-agency": { + "name": "flights-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "grafana.istio-system": { + "name": "grafana", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "hotels-v1.travel-agency": { + "name": "hotels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "insurances-v1.travel-agency": { + "name": "insurances-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-egressgateway.istio-system": { + "name": "istio-egressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-ingressgateway.istio-system": { + "name": "istio-ingressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istiod.istio-system": { + "name": "istiod", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "jaeger.istio-system": { + "name": "jaeger", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali-traffic-generator.bookinfo": { + "name": "kiali-traffic-generator", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali.istio-system": { + "name": "kiali", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "mysqldb-v1.travel-agency": { + "name": "mysqldb-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "productpage-v1.bookinfo": { + "name": "productpage-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "prometheus.istio-system": { + "name": "prometheus", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "ratings-v1.bookinfo": { + "name": "ratings-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v1.bookinfo": { + "name": "reviews-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v2.bookinfo": { + "name": "reviews-v2", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v3.bookinfo": { + "name": "reviews-v3", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels-v1.travel-agency": { + "name": "travels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels.travel-portal": { + "name": "travels", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "viaggi.travel-portal": { + "name": "viaggi", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "voyages.travel-portal": { + "name": "voyages", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/services/istiod.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/services/istiod.json new file mode 100644 index 0000000000..d9c89d6f31 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/services/istiod.json @@ -0,0 +1,390 @@ +{ + "cluster": "Kubernetes", + "destinationRules": [], + "endpoints": [ + { + "addresses": [ + { + "kind": "Pod", + "name": "istiod-75d89c99b6-kvnb8", + "ip": "10.244.0.23", + "port": 0 + } + ], + "ports": [ + { + "name": "https-dns", + "protocol": "TCP", + "port": 15012 + }, + { + "name": "grpc-xds", + "protocol": "TCP", + "port": 15010 + }, + { + "name": "https-webhook", + "protocol": "TCP", + "port": 15017 + }, + { + "name": "http-monitoring", + "protocol": "TCP", + "port": 15014 + } + ] + } + ], + "istioPermissions": { + "create": true, + "update": true, + "delete": true + }, + "istioSidecar": false, + "k8sHTTPRoutes": [], + "k8sReferenceGrants": null, + "service": { + "name": "istiod", + "createdAt": "2024-02-26T09:49:41Z", + "resourceVersion": "474", + "namespace": { + "name": "istio-system", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "labels": { + "app": "istiod", + "install.operator.istio.io/owning-resource": "installed-state", + "install.operator.istio.io/owning-resource-namespace": "istio-system", + "istio": "pilot", + "istio.io/rev": "default", + "operator.istio.io/component": "Pilot", + "operator.istio.io/managed": "Reconcile", + "operator.istio.io/version": "1.21.0-rc.0", + "release": "istio" + }, + "selectors": { + "app": "istiod", + "istio": "pilot" + }, + "type": "ClusterIP", + "ip": "10.101.0.116", + "ports": [ + { + "name": "grpc-xds", + "protocol": "TCP", + "port": 15010 + }, + { + "name": "https-dns", + "protocol": "TCP", + "port": 15012 + }, + { + "name": "https-webhook", + "protocol": "TCP", + "port": 443 + }, + { + "name": "http-monitoring", + "protocol": "TCP", + "port": 15014 + } + ], + "externalName": "", + "annotations": {}, + "healthAnnotations": {}, + "additionalDetails": [] + }, + "serviceEntries": null, + "virtualServices": [], + "workloads": [ + { + "name": "istiod", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-26T09:49:41Z", + "resourceVersion": "24541", + "istioSidecar": false, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "istiod", + "install.operator.istio.io/owning-resource": "unknown", + "istio": "pilot", + "istio.io/rev": "default", + "operator.istio.io/component": "Pilot", + "sidecar.istio.io/inject": "false" + }, + "appLabel": true, + "versionLabel": false, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["istiod"], + "health": { + "workloadStatus": null, + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "namespaceMTLS": { + "status": "MTLS_NOT_ENABLED", + "autoMTLSEnabled": true, + "minTLS": "" + }, + "subServices": [ + { + "name": "istiod", + "namespace": "", + "istioSidecar": false, + "cluster": "", + "istioAmbient": false, + "appLabel": false, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": null, + "ports": { + "grpc-xds": 15010, + "http-monitoring": 15014, + "https-dns": 15012, + "https-webhook": 443 + }, + "labels": null, + "selector": null, + "istioReferences": null, + "kialiWizard": "", + "serviceRegistry": "", + "health": { + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": true, + "checks": [], + "references": null + } + }, + "service": { + "istiod.istio-system": { + "name": "istiod", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "cars-v1.travel-agency": { + "name": "cars-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "control.travel-control": { + "name": "control", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "details-v1.bookinfo": { + "name": "details-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "discounts-v1.travel-agency": { + "name": "discounts-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "flights-v1.travel-agency": { + "name": "flights-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "grafana.istio-system": { + "name": "grafana", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "hotels-v1.travel-agency": { + "name": "hotels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "insurances-v1.travel-agency": { + "name": "insurances-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-egressgateway.istio-system": { + "name": "istio-egressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-ingressgateway.istio-system": { + "name": "istio-ingressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istiod.istio-system": { + "name": "istiod", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "jaeger.istio-system": { + "name": "jaeger", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali-traffic-generator.bookinfo": { + "name": "kiali-traffic-generator", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali.istio-system": { + "name": "kiali", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "mysqldb-v1.travel-agency": { + "name": "mysqldb-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "productpage-v1.bookinfo": { + "name": "productpage-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "prometheus.istio-system": { + "name": "prometheus", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "ratings-v1.bookinfo": { + "name": "ratings-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v1.bookinfo": { + "name": "reviews-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v2.bookinfo": { + "name": "reviews-v2", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v3.bookinfo": { + "name": "reviews-v3", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels-v1.travel-agency": { + "name": "travels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels.travel-portal": { + "name": "travels", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "viaggi.travel-portal": { + "name": "viaggi", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "voyages.travel-portal": { + "name": "voyages", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/services/jaeger_collector.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/services/jaeger_collector.json new file mode 100644 index 0000000000..9d7945fc99 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/services/jaeger_collector.json @@ -0,0 +1,391 @@ +{ + "cluster": "Kubernetes", + "destinationRules": [], + "endpoints": [ + { + "addresses": [ + { + "kind": "Pod", + "name": "jaeger-7d7d59b9d-84qqj", + "ip": "10.244.0.17", + "port": 0 + } + ], + "ports": [ + { + "name": "http-zipkin", + "protocol": "TCP", + "port": 9411 + }, + { + "name": "jaeger-collector-grpc", + "protocol": "TCP", + "port": 14250 + }, + { + "name": "grpc-otel", + "protocol": "TCP", + "port": 4317 + }, + { + "name": "jaeger-collector-http", + "protocol": "TCP", + "port": 14268 + }, + { + "name": "http-otel", + "protocol": "TCP", + "port": 4318 + } + ] + } + ], + "istioPermissions": { + "create": true, + "update": true, + "delete": true + }, + "istioSidecar": false, + "k8sHTTPRoutes": [], + "k8sReferenceGrants": null, + "service": { + "name": "jaeger-collector", + "createdAt": "2024-02-26T09:50:00Z", + "resourceVersion": "671", + "namespace": { + "name": "istio-system", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "labels": { + "app": "jaeger" + }, + "selectors": { + "app": "jaeger" + }, + "type": "ClusterIP", + "ip": "10.110.59.129", + "ports": [ + { + "name": "jaeger-collector-http", + "protocol": "TCP", + "port": 14268 + }, + { + "name": "jaeger-collector-grpc", + "protocol": "TCP", + "port": 14250 + }, + { + "name": "http-zipkin", + "protocol": "TCP", + "port": 9411 + }, + { + "name": "grpc-otel", + "protocol": "TCP", + "port": 4317 + }, + { + "name": "http-otel", + "protocol": "TCP", + "port": 4318 + } + ], + "externalName": "", + "annotations": { + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"jaeger\"},\"name\":\"jaeger-collector\",\"namespace\":\"istio-system\"},\"spec\":{\"ports\":[{\"name\":\"jaeger-collector-http\",\"port\":14268,\"protocol\":\"TCP\",\"targetPort\":14268},{\"name\":\"jaeger-collector-grpc\",\"port\":14250,\"protocol\":\"TCP\",\"targetPort\":14250},{\"name\":\"http-zipkin\",\"port\":9411,\"targetPort\":9411},{\"name\":\"grpc-otel\",\"port\":4317},{\"name\":\"http-otel\",\"port\":4318}],\"selector\":{\"app\":\"jaeger\"},\"type\":\"ClusterIP\"}}\n" + }, + "healthAnnotations": {}, + "additionalDetails": [] + }, + "serviceEntries": null, + "virtualServices": [], + "workloads": [ + { + "name": "jaeger", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-26T09:50:00Z", + "resourceVersion": "727", + "istioSidecar": false, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "jaeger", + "sidecar.istio.io/inject": "false" + }, + "appLabel": true, + "versionLabel": false, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"jaeger\"},\"name\":\"jaeger\",\"namespace\":\"istio-system\"},\"spec\":{\"selector\":{\"matchLabels\":{\"app\":\"jaeger\"}},\"template\":{\"metadata\":{\"annotations\":{\"prometheus.io/port\":\"14269\",\"prometheus.io/scrape\":\"true\"},\"labels\":{\"app\":\"jaeger\",\"sidecar.istio.io/inject\":\"false\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"BADGER_EPHEMERAL\",\"value\":\"false\"},{\"name\":\"SPAN_STORAGE_TYPE\",\"value\":\"badger\"},{\"name\":\"BADGER_DIRECTORY_VALUE\",\"value\":\"/badger/data\"},{\"name\":\"BADGER_DIRECTORY_KEY\",\"value\":\"/badger/key\"},{\"name\":\"COLLECTOR_ZIPKIN_HOST_PORT\",\"value\":\":9411\"},{\"name\":\"MEMORY_MAX_TRACES\",\"value\":\"50000\"},{\"name\":\"QUERY_BASE_PATH\",\"value\":\"/jaeger\"}],\"image\":\"docker.io/jaegertracing/all-in-one:1.46\",\"livenessProbe\":{\"httpGet\":{\"path\":\"/\",\"port\":14269}},\"name\":\"jaeger\",\"readinessProbe\":{\"httpGet\":{\"path\":\"/\",\"port\":14269}},\"resources\":{\"requests\":{\"cpu\":\"10m\"}},\"volumeMounts\":[{\"mountPath\":\"/badger\",\"name\":\"data\"}]}],\"volumes\":[{\"emptyDir\":{},\"name\":\"data\"}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["default"], + "health": { + "workloadStatus": null, + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "namespaceMTLS": { + "status": "MTLS_NOT_ENABLED", + "autoMTLSEnabled": true, + "minTLS": "" + }, + "subServices": [ + { + "name": "jaeger-collector", + "namespace": "", + "istioSidecar": false, + "cluster": "", + "istioAmbient": false, + "appLabel": false, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": null, + "ports": { + "grpc-otel": 4317, + "http-otel": 4318, + "http-zipkin": 9411, + "jaeger-collector-grpc": 14250, + "jaeger-collector-http": 14268 + }, + "labels": null, + "selector": null, + "istioReferences": null, + "kialiWizard": "", + "serviceRegistry": "", + "health": { + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": true, + "checks": [], + "references": null + } + }, + "service": { + "jaeger-collector.istio-system": { + "name": "jaeger-collector", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "cars-v1.travel-agency": { + "name": "cars-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "control.travel-control": { + "name": "control", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "details-v1.bookinfo": { + "name": "details-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "discounts-v1.travel-agency": { + "name": "discounts-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "flights-v1.travel-agency": { + "name": "flights-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "grafana.istio-system": { + "name": "grafana", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "hotels-v1.travel-agency": { + "name": "hotels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "insurances-v1.travel-agency": { + "name": "insurances-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-egressgateway.istio-system": { + "name": "istio-egressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-ingressgateway.istio-system": { + "name": "istio-ingressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istiod.istio-system": { + "name": "istiod", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "jaeger.istio-system": { + "name": "jaeger", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali-traffic-generator.bookinfo": { + "name": "kiali-traffic-generator", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali.istio-system": { + "name": "kiali", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "mysqldb-v1.travel-agency": { + "name": "mysqldb-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "productpage-v1.bookinfo": { + "name": "productpage-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "prometheus.istio-system": { + "name": "prometheus", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "ratings-v1.bookinfo": { + "name": "ratings-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v1.bookinfo": { + "name": "reviews-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v2.bookinfo": { + "name": "reviews-v2", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v3.bookinfo": { + "name": "reviews-v3", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels-v1.travel-agency": { + "name": "travels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels.travel-portal": { + "name": "travels", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "viaggi.travel-portal": { + "name": "viaggi", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "voyages.travel-portal": { + "name": "voyages", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/services/kiali.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/services/kiali.json new file mode 100644 index 0000000000..74f82caccf --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/services/kiali.json @@ -0,0 +1,363 @@ +{ + "cluster": "Kubernetes", + "destinationRules": [], + "endpoints": [ + { + "addresses": [ + { + "kind": "Pod", + "name": "kiali-588bc98cd-ldld2", + "ip": "10.244.0.31", + "port": 0 + } + ], + "ports": [ + { + "name": "http", + "protocol": "TCP", + "port": 20001 + } + ] + } + ], + "istioPermissions": { + "create": true, + "update": true, + "delete": true + }, + "istioSidecar": false, + "k8sHTTPRoutes": [], + "k8sReferenceGrants": null, + "service": { + "name": "kiali", + "createdAt": "2024-02-26T09:50:58Z", + "resourceVersion": "810", + "namespace": { + "name": "istio-system", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "labels": { + "app": "kiali", + "app.kubernetes.io/instance": "kiali", + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "kiali", + "app.kubernetes.io/part-of": "kiali", + "app.kubernetes.io/version": "v1.79.0", + "helm.sh/chart": "kiali-server-1.79.0", + "version": "v1.79.0" + }, + "selectors": { + "app.kubernetes.io/instance": "kiali", + "app.kubernetes.io/name": "kiali" + }, + "type": "ClusterIP", + "ip": "10.100.201.52", + "ports": [ + { + "name": "http", + "protocol": "TCP", + "appProtocol": "http", + "port": 20001 + } + ], + "externalName": "", + "annotations": { + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"kiali\",\"app.kubernetes.io/instance\":\"kiali\",\"app.kubernetes.io/managed-by\":\"Helm\",\"app.kubernetes.io/name\":\"kiali\",\"app.kubernetes.io/part-of\":\"kiali\",\"app.kubernetes.io/version\":\"v1.79.0\",\"helm.sh/chart\":\"kiali-server-1.79.0\",\"version\":\"v1.79.0\"},\"name\":\"kiali\",\"namespace\":\"istio-system\"},\"spec\":{\"ports\":[{\"appProtocol\":\"http\",\"name\":\"http\",\"port\":20001,\"protocol\":\"TCP\"}],\"selector\":{\"app.kubernetes.io/instance\":\"kiali\",\"app.kubernetes.io/name\":\"kiali\"}}}\n" + }, + "healthAnnotations": {}, + "additionalDetails": [] + }, + "serviceEntries": null, + "virtualServices": [], + "workloads": [ + { + "name": "kiali", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-26T09:50:58Z", + "resourceVersion": "24613", + "istioSidecar": false, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "kiali", + "app.kubernetes.io/instance": "kiali", + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "kiali", + "app.kubernetes.io/part-of": "kiali", + "app.kubernetes.io/version": "v1.79.0", + "helm.sh/chart": "kiali-server-1.79.0", + "sidecar.istio.io/inject": "false", + "version": "v1.79.0" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"kiali\",\"app.kubernetes.io/instance\":\"kiali\",\"app.kubernetes.io/managed-by\":\"Helm\",\"app.kubernetes.io/name\":\"kiali\",\"app.kubernetes.io/part-of\":\"kiali\",\"app.kubernetes.io/version\":\"v1.79.0\",\"helm.sh/chart\":\"kiali-server-1.79.0\",\"version\":\"v1.79.0\"},\"name\":\"kiali\",\"namespace\":\"istio-system\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app.kubernetes.io/instance\":\"kiali\",\"app.kubernetes.io/name\":\"kiali\"}},\"strategy\":{\"rollingUpdate\":{\"maxSurge\":1,\"maxUnavailable\":1},\"type\":\"RollingUpdate\"},\"template\":{\"metadata\":{\"annotations\":{\"checksum/config\":\"ce97ed2896a797e7aace42e18922786c78956f2ee862cfae70cc24ff1a9a600f\",\"kiali.io/dashboards\":\"go,kiali\",\"prometheus.io/port\":\"\",\"prometheus.io/scrape\":\"false\"},\"labels\":{\"app\":\"kiali\",\"app.kubernetes.io/instance\":\"kiali\",\"app.kubernetes.io/managed-by\":\"Helm\",\"app.kubernetes.io/name\":\"kiali\",\"app.kubernetes.io/part-of\":\"kiali\",\"app.kubernetes.io/version\":\"v1.79.0\",\"helm.sh/chart\":\"kiali-server-1.79.0\",\"sidecar.istio.io/inject\":\"false\",\"version\":\"v1.79.0\"},\"name\":\"kiali\"},\"spec\":{\"containers\":[{\"command\":[\"/opt/kiali/kiali\",\"-config\",\"/kiali-configuration/config.yaml\"],\"env\":[{\"name\":\"ACTIVE_NAMESPACE\",\"valueFrom\":{\"fieldRef\":{\"fieldPath\":\"metadata.namespace\"}}},{\"name\":\"LOG_LEVEL\",\"value\":\"info\"},{\"name\":\"LOG_FORMAT\",\"value\":\"text\"},{\"name\":\"LOG_TIME_FIELD_FORMAT\",\"value\":\"2006-01-02T15:04:05Z07:00\"},{\"name\":\"LOG_SAMPLER_RATE\",\"value\":\"1\"}],\"image\":\"quay.io/kiali/kiali:v1.79\",\"imagePullPolicy\":\"Always\",\"livenessProbe\":{\"httpGet\":{\"path\":\"/kiali/healthz\",\"port\":\"api-port\",\"scheme\":\"HTTP\"},\"initialDelaySeconds\":5,\"periodSeconds\":30},\"name\":\"kiali\",\"ports\":[{\"containerPort\":20001,\"name\":\"api-port\"}],\"readinessProbe\":{\"httpGet\":{\"path\":\"/kiali/healthz\",\"port\":\"api-port\",\"scheme\":\"HTTP\"},\"initialDelaySeconds\":5,\"periodSeconds\":30},\"resources\":{\"limits\":{\"memory\":\"1Gi\"},\"requests\":{\"cpu\":\"10m\",\"memory\":\"64Mi\"}},\"securityContext\":{\"allowPrivilegeEscalation\":false,\"capabilities\":{\"drop\":[\"ALL\"]},\"privileged\":false,\"readOnlyRootFilesystem\":true,\"runAsNonRoot\":true},\"volumeMounts\":[{\"mountPath\":\"/kiali-configuration\",\"name\":\"kiali-configuration\"},{\"mountPath\":\"/kiali-cert\",\"name\":\"kiali-cert\"},{\"mountPath\":\"/kiali-secret\",\"name\":\"kiali-secret\"},{\"mountPath\":\"/kiali-cabundle\",\"name\":\"kiali-cabundle\"}]}],\"serviceAccountName\":\"kiali\",\"volumes\":[{\"configMap\":{\"name\":\"kiali\"},\"name\":\"kiali-configuration\"},{\"name\":\"kiali-cert\",\"secret\":{\"optional\":true,\"secretName\":\"istio.kiali-service-account\"}},{\"name\":\"kiali-secret\",\"secret\":{\"optional\":true,\"secretName\":\"kiali\"}},{\"configMap\":{\"name\":\"kiali-cabundle\",\"optional\":true},\"name\":\"kiali-cabundle\"}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["kiali"], + "health": { + "workloadStatus": null, + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "namespaceMTLS": { + "status": "MTLS_NOT_ENABLED", + "autoMTLSEnabled": true, + "minTLS": "" + }, + "subServices": [ + { + "name": "kiali", + "namespace": "", + "istioSidecar": false, + "cluster": "", + "istioAmbient": false, + "appLabel": false, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": null, + "ports": { + "http": 20001 + }, + "labels": null, + "selector": null, + "istioReferences": null, + "kialiWizard": "", + "serviceRegistry": "", + "health": { + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": true, + "checks": [], + "references": null + } + }, + "service": { + "kiali.istio-system": { + "name": "kiali", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "cars-v1.travel-agency": { + "name": "cars-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "control.travel-control": { + "name": "control", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "details-v1.bookinfo": { + "name": "details-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "discounts-v1.travel-agency": { + "name": "discounts-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "flights-v1.travel-agency": { + "name": "flights-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "grafana.istio-system": { + "name": "grafana", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "hotels-v1.travel-agency": { + "name": "hotels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "insurances-v1.travel-agency": { + "name": "insurances-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-egressgateway.istio-system": { + "name": "istio-egressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-ingressgateway.istio-system": { + "name": "istio-ingressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istiod.istio-system": { + "name": "istiod", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "jaeger.istio-system": { + "name": "jaeger", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali-traffic-generator.bookinfo": { + "name": "kiali-traffic-generator", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali.istio-system": { + "name": "kiali", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "mysqldb-v1.travel-agency": { + "name": "mysqldb-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "productpage-v1.bookinfo": { + "name": "productpage-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "prometheus.istio-system": { + "name": "prometheus", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "ratings-v1.bookinfo": { + "name": "ratings-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v1.bookinfo": { + "name": "reviews-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v2.bookinfo": { + "name": "reviews-v2", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v3.bookinfo": { + "name": "reviews-v3", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels-v1.travel-agency": { + "name": "travels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels.travel-portal": { + "name": "travels", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "viaggi.travel-portal": { + "name": "viaggi", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "voyages.travel-portal": { + "name": "voyages", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/services/prometheus.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/services/prometheus.json new file mode 100644 index 0000000000..1702cb02e4 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/services/prometheus.json @@ -0,0 +1,361 @@ +{ + "cluster": "Kubernetes", + "destinationRules": [], + "endpoints": [ + { + "addresses": [ + { + "kind": "Pod", + "name": "prometheus-7545dd48db-gkbgq", + "ip": "10.244.0.22", + "port": 0 + } + ], + "ports": [ + { + "name": "http", + "protocol": "TCP", + "port": 9090 + } + ] + } + ], + "istioPermissions": { + "create": true, + "update": true, + "delete": true + }, + "istioSidecar": false, + "k8sHTTPRoutes": [], + "k8sReferenceGrants": null, + "service": { + "name": "prometheus", + "createdAt": "2024-02-26T09:49:59Z", + "resourceVersion": "611", + "namespace": { + "name": "istio-system", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "labels": { + "app.kubernetes.io/component": "server", + "app.kubernetes.io/instance": "prometheus", + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "prometheus", + "app.kubernetes.io/part-of": "prometheus", + "app.kubernetes.io/version": "v2.48.0", + "helm.sh/chart": "prometheus-25.8.0" + }, + "selectors": { + "app.kubernetes.io/component": "server", + "app.kubernetes.io/instance": "prometheus", + "app.kubernetes.io/name": "prometheus" + }, + "type": "ClusterIP", + "ip": "10.105.233.222", + "ports": [ + { + "name": "http", + "protocol": "TCP", + "port": 9090 + } + ], + "externalName": "", + "annotations": { + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"labels\":{\"app.kubernetes.io/component\":\"server\",\"app.kubernetes.io/instance\":\"prometheus\",\"app.kubernetes.io/managed-by\":\"Helm\",\"app.kubernetes.io/name\":\"prometheus\",\"app.kubernetes.io/part-of\":\"prometheus\",\"app.kubernetes.io/version\":\"v2.48.0\",\"helm.sh/chart\":\"prometheus-25.8.0\"},\"name\":\"prometheus\",\"namespace\":\"istio-system\"},\"spec\":{\"ports\":[{\"name\":\"http\",\"port\":9090,\"protocol\":\"TCP\",\"targetPort\":9090}],\"selector\":{\"app.kubernetes.io/component\":\"server\",\"app.kubernetes.io/instance\":\"prometheus\",\"app.kubernetes.io/name\":\"prometheus\"},\"sessionAffinity\":\"None\",\"type\":\"ClusterIP\"}}\n" + }, + "healthAnnotations": {}, + "additionalDetails": [] + }, + "serviceEntries": null, + "virtualServices": [], + "workloads": [ + { + "name": "prometheus", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-26T09:49:59Z", + "resourceVersion": "754", + "istioSidecar": false, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app.kubernetes.io/component": "server", + "app.kubernetes.io/instance": "prometheus", + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "prometheus", + "app.kubernetes.io/part-of": "prometheus", + "app.kubernetes.io/version": "v2.48.0", + "helm.sh/chart": "prometheus-25.8.0", + "sidecar.istio.io/inject": "false" + }, + "appLabel": false, + "versionLabel": false, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app.kubernetes.io/component\":\"server\",\"app.kubernetes.io/instance\":\"prometheus\",\"app.kubernetes.io/managed-by\":\"Helm\",\"app.kubernetes.io/name\":\"prometheus\",\"app.kubernetes.io/part-of\":\"prometheus\",\"app.kubernetes.io/version\":\"v2.48.0\",\"helm.sh/chart\":\"prometheus-25.8.0\"},\"name\":\"prometheus\",\"namespace\":\"istio-system\"},\"spec\":{\"replicas\":1,\"revisionHistoryLimit\":10,\"selector\":{\"matchLabels\":{\"app.kubernetes.io/component\":\"server\",\"app.kubernetes.io/instance\":\"prometheus\",\"app.kubernetes.io/name\":\"prometheus\"}},\"strategy\":{\"rollingUpdate\":null,\"type\":\"Recreate\"},\"template\":{\"metadata\":{\"labels\":{\"app.kubernetes.io/component\":\"server\",\"app.kubernetes.io/instance\":\"prometheus\",\"app.kubernetes.io/managed-by\":\"Helm\",\"app.kubernetes.io/name\":\"prometheus\",\"app.kubernetes.io/part-of\":\"prometheus\",\"app.kubernetes.io/version\":\"v2.48.0\",\"helm.sh/chart\":\"prometheus-25.8.0\",\"sidecar.istio.io/inject\":\"false\"}},\"spec\":{\"containers\":[{\"args\":[\"--watched-dir=/etc/config\",\"--reload-url=http://127.0.0.1:9090/-/reload\"],\"image\":\"ghcr.io/prometheus-operator/prometheus-config-reloader:v0.67.0\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"prometheus-server-configmap-reload\",\"volumeMounts\":[{\"mountPath\":\"/etc/config\",\"name\":\"config-volume\",\"readOnly\":true}]},{\"args\":[\"--storage.tsdb.retention.time=15d\",\"--config.file=/etc/config/prometheus.yml\",\"--storage.tsdb.path=/data\",\"--web.console.libraries=/etc/prometheus/console_libraries\",\"--web.console.templates=/etc/prometheus/consoles\",\"--web.enable-lifecycle\"],\"image\":\"prom/prometheus:v2.48.0\",\"imagePullPolicy\":\"IfNotPresent\",\"livenessProbe\":{\"failureThreshold\":3,\"httpGet\":{\"path\":\"/-/healthy\",\"port\":9090,\"scheme\":\"HTTP\"},\"initialDelaySeconds\":30,\"periodSeconds\":15,\"successThreshold\":1,\"timeoutSeconds\":10},\"name\":\"prometheus-server\",\"ports\":[{\"containerPort\":9090}],\"readinessProbe\":{\"failureThreshold\":3,\"httpGet\":{\"path\":\"/-/ready\",\"port\":9090,\"scheme\":\"HTTP\"},\"initialDelaySeconds\":0,\"periodSeconds\":5,\"successThreshold\":1,\"timeoutSeconds\":4},\"volumeMounts\":[{\"mountPath\":\"/etc/config\",\"name\":\"config-volume\"},{\"mountPath\":\"/data\",\"name\":\"storage-volume\",\"subPath\":\"\"}]}],\"dnsPolicy\":\"ClusterFirst\",\"enableServiceLinks\":true,\"serviceAccountName\":\"prometheus\",\"terminationGracePeriodSeconds\":300,\"volumes\":[{\"configMap\":{\"name\":\"prometheus\"},\"name\":\"config-volume\"},{\"emptyDir\":{},\"name\":\"storage-volume\"}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["prometheus"], + "health": { + "workloadStatus": null, + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "namespaceMTLS": { + "status": "MTLS_NOT_ENABLED", + "autoMTLSEnabled": true, + "minTLS": "" + }, + "subServices": [ + { + "name": "prometheus", + "namespace": "", + "istioSidecar": false, + "cluster": "", + "istioAmbient": false, + "appLabel": false, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": null, + "ports": { + "http": 9090 + }, + "labels": null, + "selector": null, + "istioReferences": null, + "kialiWizard": "", + "serviceRegistry": "", + "health": { + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": true, + "checks": [], + "references": null + } + }, + "service": { + "prometheus.istio-system": { + "name": "prometheus", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "cars-v1.travel-agency": { + "name": "cars-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "control.travel-control": { + "name": "control", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "details-v1.bookinfo": { + "name": "details-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "discounts-v1.travel-agency": { + "name": "discounts-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "flights-v1.travel-agency": { + "name": "flights-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "grafana.istio-system": { + "name": "grafana", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "hotels-v1.travel-agency": { + "name": "hotels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "insurances-v1.travel-agency": { + "name": "insurances-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-egressgateway.istio-system": { + "name": "istio-egressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-ingressgateway.istio-system": { + "name": "istio-ingressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istiod.istio-system": { + "name": "istiod", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "jaeger.istio-system": { + "name": "jaeger", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali-traffic-generator.bookinfo": { + "name": "kiali-traffic-generator", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali.istio-system": { + "name": "kiali", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "mysqldb-v1.travel-agency": { + "name": "mysqldb-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "productpage-v1.bookinfo": { + "name": "productpage-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "prometheus.istio-system": { + "name": "prometheus", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "ratings-v1.bookinfo": { + "name": "ratings-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v1.bookinfo": { + "name": "reviews-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v2.bookinfo": { + "name": "reviews-v2", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v3.bookinfo": { + "name": "reviews-v3", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels-v1.travel-agency": { + "name": "travels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels.travel-portal": { + "name": "travels", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "viaggi.travel-portal": { + "name": "viaggi", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "voyages.travel-portal": { + "name": "voyages", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/services/tracing.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/services/tracing.json new file mode 100644 index 0000000000..b0398ed225 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/services/tracing.json @@ -0,0 +1,358 @@ +{ + "cluster": "Kubernetes", + "destinationRules": [], + "endpoints": [ + { + "addresses": [ + { + "kind": "Pod", + "name": "jaeger-7d7d59b9d-84qqj", + "ip": "10.244.0.17", + "port": 0 + } + ], + "ports": [ + { + "name": "grpc-query", + "protocol": "TCP", + "port": 16685 + }, + { + "name": "http-query", + "protocol": "TCP", + "port": 16686 + } + ] + } + ], + "istioPermissions": { + "create": true, + "update": true, + "delete": true + }, + "istioSidecar": false, + "k8sHTTPRoutes": [], + "k8sReferenceGrants": null, + "service": { + "name": "tracing", + "createdAt": "2024-02-26T09:50:00Z", + "resourceVersion": "658", + "namespace": { + "name": "istio-system", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "labels": { + "app": "jaeger" + }, + "selectors": { + "app": "jaeger" + }, + "type": "ClusterIP", + "ip": "10.108.198.238", + "ports": [ + { + "name": "http-query", + "protocol": "TCP", + "port": 80 + }, + { + "name": "grpc-query", + "protocol": "TCP", + "port": 16685 + } + ], + "externalName": "", + "annotations": { + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"jaeger\"},\"name\":\"tracing\",\"namespace\":\"istio-system\"},\"spec\":{\"ports\":[{\"name\":\"http-query\",\"port\":80,\"protocol\":\"TCP\",\"targetPort\":16686},{\"name\":\"grpc-query\",\"port\":16685,\"protocol\":\"TCP\",\"targetPort\":16685}],\"selector\":{\"app\":\"jaeger\"},\"type\":\"ClusterIP\"}}\n" + }, + "healthAnnotations": {}, + "additionalDetails": [] + }, + "serviceEntries": null, + "virtualServices": [], + "workloads": [ + { + "name": "jaeger", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-26T09:50:00Z", + "resourceVersion": "727", + "istioSidecar": false, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "jaeger", + "sidecar.istio.io/inject": "false" + }, + "appLabel": true, + "versionLabel": false, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"jaeger\"},\"name\":\"jaeger\",\"namespace\":\"istio-system\"},\"spec\":{\"selector\":{\"matchLabels\":{\"app\":\"jaeger\"}},\"template\":{\"metadata\":{\"annotations\":{\"prometheus.io/port\":\"14269\",\"prometheus.io/scrape\":\"true\"},\"labels\":{\"app\":\"jaeger\",\"sidecar.istio.io/inject\":\"false\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"BADGER_EPHEMERAL\",\"value\":\"false\"},{\"name\":\"SPAN_STORAGE_TYPE\",\"value\":\"badger\"},{\"name\":\"BADGER_DIRECTORY_VALUE\",\"value\":\"/badger/data\"},{\"name\":\"BADGER_DIRECTORY_KEY\",\"value\":\"/badger/key\"},{\"name\":\"COLLECTOR_ZIPKIN_HOST_PORT\",\"value\":\":9411\"},{\"name\":\"MEMORY_MAX_TRACES\",\"value\":\"50000\"},{\"name\":\"QUERY_BASE_PATH\",\"value\":\"/jaeger\"}],\"image\":\"docker.io/jaegertracing/all-in-one:1.46\",\"livenessProbe\":{\"httpGet\":{\"path\":\"/\",\"port\":14269}},\"name\":\"jaeger\",\"readinessProbe\":{\"httpGet\":{\"path\":\"/\",\"port\":14269}},\"resources\":{\"requests\":{\"cpu\":\"10m\"}},\"volumeMounts\":[{\"mountPath\":\"/badger\",\"name\":\"data\"}]}],\"volumes\":[{\"emptyDir\":{},\"name\":\"data\"}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["default"], + "health": { + "workloadStatus": null, + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "namespaceMTLS": { + "status": "MTLS_NOT_ENABLED", + "autoMTLSEnabled": true, + "minTLS": "" + }, + "subServices": [ + { + "name": "tracing", + "namespace": "", + "istioSidecar": false, + "cluster": "", + "istioAmbient": false, + "appLabel": false, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": null, + "ports": { + "grpc-query": 16685, + "http-query": 80 + }, + "labels": null, + "selector": null, + "istioReferences": null, + "kialiWizard": "", + "serviceRegistry": "", + "health": { + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": true, + "checks": [], + "references": null + } + }, + "service": { + "tracing.istio-system": { + "name": "tracing", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "cars-v1.travel-agency": { + "name": "cars-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "control.travel-control": { + "name": "control", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "details-v1.bookinfo": { + "name": "details-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "discounts-v1.travel-agency": { + "name": "discounts-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "flights-v1.travel-agency": { + "name": "flights-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "grafana.istio-system": { + "name": "grafana", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "hotels-v1.travel-agency": { + "name": "hotels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "insurances-v1.travel-agency": { + "name": "insurances-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-egressgateway.istio-system": { + "name": "istio-egressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-ingressgateway.istio-system": { + "name": "istio-ingressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istiod.istio-system": { + "name": "istiod", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "jaeger.istio-system": { + "name": "jaeger", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali-traffic-generator.bookinfo": { + "name": "kiali-traffic-generator", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali.istio-system": { + "name": "kiali", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "mysqldb-v1.travel-agency": { + "name": "mysqldb-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "productpage-v1.bookinfo": { + "name": "productpage-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "prometheus.istio-system": { + "name": "prometheus", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "ratings-v1.bookinfo": { + "name": "ratings-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v1.bookinfo": { + "name": "reviews-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v2.bookinfo": { + "name": "reviews-v2", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v3.bookinfo": { + "name": "reviews-v3", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels-v1.travel-agency": { + "name": "travels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels.travel-portal": { + "name": "travels", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "viaggi.travel-portal": { + "name": "viaggi", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "voyages.travel-portal": { + "name": "voyages", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/services/zipkin.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/services/zipkin.json new file mode 100644 index 0000000000..2f9fbcc257 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/services/zipkin.json @@ -0,0 +1,347 @@ +{ + "cluster": "Kubernetes", + "destinationRules": [], + "endpoints": [ + { + "addresses": [ + { + "kind": "Pod", + "name": "jaeger-7d7d59b9d-84qqj", + "ip": "10.244.0.17", + "port": 0 + } + ], + "ports": [ + { + "name": "http-query", + "protocol": "TCP", + "port": 9411 + } + ] + } + ], + "istioPermissions": { + "create": true, + "update": true, + "delete": true + }, + "istioSidecar": false, + "k8sHTTPRoutes": [], + "k8sReferenceGrants": null, + "service": { + "name": "zipkin", + "createdAt": "2024-02-26T09:50:00Z", + "resourceVersion": "667", + "namespace": { + "name": "istio-system", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "labels": { + "name": "zipkin" + }, + "selectors": { + "app": "jaeger" + }, + "type": "ClusterIP", + "ip": "10.106.185.100", + "ports": [ + { + "name": "http-query", + "protocol": "TCP", + "port": 9411 + } + ], + "externalName": "", + "annotations": { + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"labels\":{\"name\":\"zipkin\"},\"name\":\"zipkin\",\"namespace\":\"istio-system\"},\"spec\":{\"ports\":[{\"name\":\"http-query\",\"port\":9411,\"targetPort\":9411}],\"selector\":{\"app\":\"jaeger\"}}}\n" + }, + "healthAnnotations": {}, + "additionalDetails": [] + }, + "serviceEntries": null, + "virtualServices": [], + "workloads": [ + { + "name": "jaeger", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-26T09:50:00Z", + "resourceVersion": "727", + "istioSidecar": false, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "jaeger", + "sidecar.istio.io/inject": "false" + }, + "appLabel": true, + "versionLabel": false, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"jaeger\"},\"name\":\"jaeger\",\"namespace\":\"istio-system\"},\"spec\":{\"selector\":{\"matchLabels\":{\"app\":\"jaeger\"}},\"template\":{\"metadata\":{\"annotations\":{\"prometheus.io/port\":\"14269\",\"prometheus.io/scrape\":\"true\"},\"labels\":{\"app\":\"jaeger\",\"sidecar.istio.io/inject\":\"false\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"BADGER_EPHEMERAL\",\"value\":\"false\"},{\"name\":\"SPAN_STORAGE_TYPE\",\"value\":\"badger\"},{\"name\":\"BADGER_DIRECTORY_VALUE\",\"value\":\"/badger/data\"},{\"name\":\"BADGER_DIRECTORY_KEY\",\"value\":\"/badger/key\"},{\"name\":\"COLLECTOR_ZIPKIN_HOST_PORT\",\"value\":\":9411\"},{\"name\":\"MEMORY_MAX_TRACES\",\"value\":\"50000\"},{\"name\":\"QUERY_BASE_PATH\",\"value\":\"/jaeger\"}],\"image\":\"docker.io/jaegertracing/all-in-one:1.46\",\"livenessProbe\":{\"httpGet\":{\"path\":\"/\",\"port\":14269}},\"name\":\"jaeger\",\"readinessProbe\":{\"httpGet\":{\"path\":\"/\",\"port\":14269}},\"resources\":{\"requests\":{\"cpu\":\"10m\"}},\"volumeMounts\":[{\"mountPath\":\"/badger\",\"name\":\"data\"}]}],\"volumes\":[{\"emptyDir\":{},\"name\":\"data\"}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["default"], + "health": { + "workloadStatus": null, + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "namespaceMTLS": { + "status": "MTLS_NOT_ENABLED", + "autoMTLSEnabled": true, + "minTLS": "" + }, + "subServices": [ + { + "name": "zipkin", + "namespace": "", + "istioSidecar": false, + "cluster": "", + "istioAmbient": false, + "appLabel": false, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": null, + "ports": { + "http-query": 9411 + }, + "labels": null, + "selector": null, + "istioReferences": null, + "kialiWizard": "", + "serviceRegistry": "", + "health": { + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": true, + "checks": [], + "references": null + } + }, + "service": { + "zipkin.istio-system": { + "name": "zipkin", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "cars-v1.travel-agency": { + "name": "cars-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "control.travel-control": { + "name": "control", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "details-v1.bookinfo": { + "name": "details-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "discounts-v1.travel-agency": { + "name": "discounts-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "flights-v1.travel-agency": { + "name": "flights-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "grafana.istio-system": { + "name": "grafana", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "hotels-v1.travel-agency": { + "name": "hotels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "insurances-v1.travel-agency": { + "name": "insurances-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-egressgateway.istio-system": { + "name": "istio-egressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-ingressgateway.istio-system": { + "name": "istio-ingressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istiod.istio-system": { + "name": "istiod", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "jaeger.istio-system": { + "name": "jaeger", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali-traffic-generator.bookinfo": { + "name": "kiali-traffic-generator", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali.istio-system": { + "name": "kiali", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "mysqldb-v1.travel-agency": { + "name": "mysqldb-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "productpage-v1.bookinfo": { + "name": "productpage-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "prometheus.istio-system": { + "name": "prometheus", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "ratings-v1.bookinfo": { + "name": "ratings-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v1.bookinfo": { + "name": "reviews-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v2.bookinfo": { + "name": "reviews-v2", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v3.bookinfo": { + "name": "reviews-v3", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels-v1.travel-agency": { + "name": "travels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels.travel-portal": { + "name": "travels", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "viaggi.travel-portal": { + "name": "viaggi", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "voyages.travel-portal": { + "name": "voyages", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/spans.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/spans.json new file mode 100644 index 0000000000..fe51488c70 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/spans.json @@ -0,0 +1 @@ +[] diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/tls.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/tls.json new file mode 100644 index 0000000000..ea7db32cbb --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/tls.json @@ -0,0 +1 @@ +{ "status": "MTLS_NOT_ENABLED", "autoMTLSEnabled": true, "minTLS": "" } diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/workloads.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/workloads.json new file mode 100644 index 0000000000..5035889528 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/workloads.json @@ -0,0 +1,374 @@ +{ + "namespace": { + "name": "istio-system", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "workloads": [ + { + "name": "grafana", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-01-29T20:09:28Z", + "resourceVersion": "756", + "istioSidecar": false, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app.kubernetes.io/instance": "grafana", + "app.kubernetes.io/name": "grafana", + "sidecar.istio.io/inject": "false" + }, + "appLabel": false, + "versionLabel": false, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app.kubernetes.io/instance\":\"grafana\",\"app.kubernetes.io/managed-by\":\"Helm\",\"app.kubernetes.io/name\":\"grafana\",\"app.kubernetes.io/version\":\"10.1.5\",\"helm.sh/chart\":\"grafana-6.61.1\"},\"name\":\"grafana\",\"namespace\":\"istio-system\"},\"spec\":{\"replicas\":1,\"revisionHistoryLimit\":10,\"selector\":{\"matchLabels\":{\"app.kubernetes.io/instance\":\"grafana\",\"app.kubernetes.io/name\":\"grafana\"}},\"strategy\":{\"type\":\"RollingUpdate\"},\"template\":{\"metadata\":{\"annotations\":{\"checksum/config\":\"e6dc57066020dcc7ec73db1b5e39370203985e5071b47f1f1414ee5c42679d46\",\"checksum/dashboards-json-config\":\"01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b\",\"checksum/sc-dashboard-provider-config\":\"01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b\",\"kubectl.kubernetes.io/default-container\":\"grafana\"},\"labels\":{\"app.kubernetes.io/instance\":\"grafana\",\"app.kubernetes.io/name\":\"grafana\",\"sidecar.istio.io/inject\":\"false\"}},\"spec\":{\"automountServiceAccountToken\":true,\"containers\":[{\"env\":[{\"name\":\"POD_IP\",\"valueFrom\":{\"fieldRef\":{\"fieldPath\":\"status.podIP\"}}},{\"name\":\"GF_PATHS_DATA\",\"value\":\"/var/lib/grafana/\"},{\"name\":\"GF_PATHS_LOGS\",\"value\":\"/var/log/grafana\"},{\"name\":\"GF_PATHS_PLUGINS\",\"value\":\"/var/lib/grafana/plugins\"},{\"name\":\"GF_PATHS_PROVISIONING\",\"value\":\"/etc/grafana/provisioning\"},{\"name\":\"GF_AUTH_ANONYMOUS_ENABLED\",\"value\":\"true\"},{\"name\":\"GF_AUTH_ANONYMOUS_ORG_ROLE\",\"value\":\"Admin\"},{\"name\":\"GF_AUTH_BASIC_ENABLED\",\"value\":\"false\"},{\"name\":\"GF_SECURITY_ADMIN_PASSWORD\",\"value\":\"admin\"},{\"name\":\"GF_SECURITY_ADMIN_USER\",\"value\":\"admin\"}],\"image\":\"docker.io/grafana/grafana:10.1.5\",\"imagePullPolicy\":\"IfNotPresent\",\"livenessProbe\":{\"failureThreshold\":10,\"httpGet\":{\"path\":\"/api/health\",\"port\":3000},\"initialDelaySeconds\":60,\"timeoutSeconds\":30},\"name\":\"grafana\",\"ports\":[{\"containerPort\":3000,\"name\":\"grafana\",\"protocol\":\"TCP\"},{\"containerPort\":9094,\"name\":\"gossip-tcp\",\"protocol\":\"TCP\"},{\"containerPort\":9094,\"name\":\"gossip-udp\",\"protocol\":\"UDP\"}],\"readinessProbe\":{\"httpGet\":{\"path\":\"/api/health\",\"port\":3000}},\"securityContext\":{\"allowPrivilegeEscalation\":false,\"capabilities\":{\"drop\":[\"ALL\"]},\"seccompProfile\":{\"type\":\"RuntimeDefault\"}},\"volumeMounts\":[{\"mountPath\":\"/etc/grafana/grafana.ini\",\"name\":\"config\",\"subPath\":\"grafana.ini\"},{\"mountPath\":\"/var/lib/grafana\",\"name\":\"storage\"},{\"mountPath\":\"/var/lib/grafana/dashboards/istio\",\"name\":\"dashboards-istio\"},{\"mountPath\":\"/var/lib/grafana/dashboards/istio-services\",\"name\":\"dashboards-istio-services\"},{\"mountPath\":\"/etc/grafana/provisioning/datasources/datasources.yaml\",\"name\":\"config\",\"subPath\":\"datasources.yaml\"},{\"mountPath\":\"/etc/grafana/provisioning/dashboards/dashboardproviders.yaml\",\"name\":\"config\",\"subPath\":\"dashboardproviders.yaml\"}]}],\"enableServiceLinks\":true,\"serviceAccountName\":\"grafana\",\"volumes\":[{\"configMap\":{\"name\":\"grafana\"},\"name\":\"config\"},{\"configMap\":{\"name\":\"istio-grafana-dashboards\"},\"name\":\"dashboards-istio\"},{\"configMap\":{\"name\":\"istio-services-grafana-dashboards\"},\"name\":\"dashboards-istio-services\"},{\"emptyDir\":{},\"name\":\"storage\"}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["grafana"], + "health": { + "workloadStatus": { + "name": "grafana", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": -1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "istio-egressgateway", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-01-29T20:09:17Z", + "resourceVersion": "26870", + "istioSidecar": false, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "istio-egressgateway", + "chart": "gateways", + "heritage": "Tiller", + "install.operator.istio.io/owning-resource": "unknown", + "istio": "egressgateway", + "istio.io/rev": "default", + "operator.istio.io/component": "EgressGateways", + "release": "istio", + "service.istio.io/canonical-name": "istio-egressgateway", + "service.istio.io/canonical-revision": "latest", + "sidecar.istio.io/inject": "false" + }, + "appLabel": true, + "versionLabel": false, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["istio-egressgateway-service-account"], + "health": { + "workloadStatus": { + "name": "istio-egressgateway", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": -1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "istio-ingressgateway", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-01-29T20:09:17Z", + "resourceVersion": "26868", + "istioSidecar": false, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "istio-ingressgateway", + "chart": "gateways", + "heritage": "Tiller", + "install.operator.istio.io/owning-resource": "unknown", + "istio": "ingressgateway", + "istio.io/rev": "default", + "operator.istio.io/component": "IngressGateways", + "release": "istio", + "service.istio.io/canonical-name": "istio-ingressgateway", + "service.istio.io/canonical-revision": "latest", + "sidecar.istio.io/inject": "false" + }, + "appLabel": true, + "versionLabel": false, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["istio-ingressgateway-service-account"], + "health": { + "workloadStatus": { + "name": "istio-ingressgateway", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": -1 + }, + "requests": { + "inbound": {}, + "outbound": { + "http": { + "200": 1.0000017094046316 + } + }, + "healthAnnotations": {} + } + } + }, + { + "name": "istiod", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-01-29T20:09:07Z", + "resourceVersion": "541", + "istioSidecar": false, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "istiod", + "install.operator.istio.io/owning-resource": "unknown", + "istio": "pilot", + "istio.io/rev": "default", + "operator.istio.io/component": "Pilot", + "sidecar.istio.io/inject": "false" + }, + "appLabel": true, + "versionLabel": false, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["istiod"], + "health": { + "workloadStatus": { + "name": "istiod", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": -1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "jaeger", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-01-29T20:09:28Z", + "resourceVersion": "772", + "istioSidecar": false, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "jaeger", + "sidecar.istio.io/inject": "false" + }, + "appLabel": true, + "versionLabel": false, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"jaeger\"},\"name\":\"jaeger\",\"namespace\":\"istio-system\"},\"spec\":{\"selector\":{\"matchLabels\":{\"app\":\"jaeger\"}},\"template\":{\"metadata\":{\"annotations\":{\"prometheus.io/port\":\"14269\",\"prometheus.io/scrape\":\"true\"},\"labels\":{\"app\":\"jaeger\",\"sidecar.istio.io/inject\":\"false\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"BADGER_EPHEMERAL\",\"value\":\"false\"},{\"name\":\"SPAN_STORAGE_TYPE\",\"value\":\"badger\"},{\"name\":\"BADGER_DIRECTORY_VALUE\",\"value\":\"/badger/data\"},{\"name\":\"BADGER_DIRECTORY_KEY\",\"value\":\"/badger/key\"},{\"name\":\"COLLECTOR_ZIPKIN_HOST_PORT\",\"value\":\":9411\"},{\"name\":\"MEMORY_MAX_TRACES\",\"value\":\"50000\"},{\"name\":\"QUERY_BASE_PATH\",\"value\":\"/jaeger\"}],\"image\":\"docker.io/jaegertracing/all-in-one:1.46\",\"livenessProbe\":{\"httpGet\":{\"path\":\"/\",\"port\":14269}},\"name\":\"jaeger\",\"readinessProbe\":{\"httpGet\":{\"path\":\"/\",\"port\":14269}},\"resources\":{\"requests\":{\"cpu\":\"10m\"}},\"volumeMounts\":[{\"mountPath\":\"/badger\",\"name\":\"data\"}]}],\"volumes\":[{\"emptyDir\":{},\"name\":\"data\"}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["default"], + "health": { + "workloadStatus": { + "name": "jaeger", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": -1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "kiali", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-01-29T20:10:06Z", + "resourceVersion": "1056", + "istioSidecar": false, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "kiali", + "app.kubernetes.io/instance": "kiali", + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "kiali", + "app.kubernetes.io/part-of": "kiali", + "app.kubernetes.io/version": "v1.79.0", + "helm.sh/chart": "kiali-server-1.79.0", + "sidecar.istio.io/inject": "false", + "version": "v1.79.0" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"kiali\",\"app.kubernetes.io/instance\":\"kiali\",\"app.kubernetes.io/managed-by\":\"Helm\",\"app.kubernetes.io/name\":\"kiali\",\"app.kubernetes.io/part-of\":\"kiali\",\"app.kubernetes.io/version\":\"v1.79.0\",\"helm.sh/chart\":\"kiali-server-1.79.0\",\"version\":\"v1.79.0\"},\"name\":\"kiali\",\"namespace\":\"istio-system\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app.kubernetes.io/instance\":\"kiali\",\"app.kubernetes.io/name\":\"kiali\"}},\"strategy\":{\"rollingUpdate\":{\"maxSurge\":1,\"maxUnavailable\":1},\"type\":\"RollingUpdate\"},\"template\":{\"metadata\":{\"annotations\":{\"checksum/config\":\"ce97ed2896a797e7aace42e18922786c78956f2ee862cfae70cc24ff1a9a600f\",\"kiali.io/dashboards\":\"go,kiali\",\"prometheus.io/port\":\"\",\"prometheus.io/scrape\":\"false\"},\"labels\":{\"app\":\"kiali\",\"app.kubernetes.io/instance\":\"kiali\",\"app.kubernetes.io/managed-by\":\"Helm\",\"app.kubernetes.io/name\":\"kiali\",\"app.kubernetes.io/part-of\":\"kiali\",\"app.kubernetes.io/version\":\"v1.79.0\",\"helm.sh/chart\":\"kiali-server-1.79.0\",\"sidecar.istio.io/inject\":\"false\",\"version\":\"v1.79.0\"},\"name\":\"kiali\"},\"spec\":{\"containers\":[{\"command\":[\"/opt/kiali/kiali\",\"-config\",\"/kiali-configuration/config.yaml\"],\"env\":[{\"name\":\"ACTIVE_NAMESPACE\",\"valueFrom\":{\"fieldRef\":{\"fieldPath\":\"metadata.namespace\"}}},{\"name\":\"LOG_LEVEL\",\"value\":\"info\"},{\"name\":\"LOG_FORMAT\",\"value\":\"text\"},{\"name\":\"LOG_TIME_FIELD_FORMAT\",\"value\":\"2006-01-02T15:04:05Z07:00\"},{\"name\":\"LOG_SAMPLER_RATE\",\"value\":\"1\"}],\"image\":\"quay.io/kiali/kiali:v1.79\",\"imagePullPolicy\":\"Always\",\"livenessProbe\":{\"httpGet\":{\"path\":\"/kiali/healthz\",\"port\":\"api-port\",\"scheme\":\"HTTP\"},\"initialDelaySeconds\":5,\"periodSeconds\":30},\"name\":\"kiali\",\"ports\":[{\"containerPort\":20001,\"name\":\"api-port\"}],\"readinessProbe\":{\"httpGet\":{\"path\":\"/kiali/healthz\",\"port\":\"api-port\",\"scheme\":\"HTTP\"},\"initialDelaySeconds\":5,\"periodSeconds\":30},\"resources\":{\"limits\":{\"memory\":\"1Gi\"},\"requests\":{\"cpu\":\"10m\",\"memory\":\"64Mi\"}},\"securityContext\":{\"allowPrivilegeEscalation\":false,\"capabilities\":{\"drop\":[\"ALL\"]},\"privileged\":false,\"readOnlyRootFilesystem\":true,\"runAsNonRoot\":true},\"volumeMounts\":[{\"mountPath\":\"/kiali-configuration\",\"name\":\"kiali-configuration\"},{\"mountPath\":\"/kiali-cert\",\"name\":\"kiali-cert\"},{\"mountPath\":\"/kiali-secret\",\"name\":\"kiali-secret\"},{\"mountPath\":\"/kiali-cabundle\",\"name\":\"kiali-cabundle\"}]}],\"serviceAccountName\":\"kiali\",\"volumes\":[{\"configMap\":{\"name\":\"kiali\"},\"name\":\"kiali-configuration\"},{\"name\":\"kiali-cert\",\"secret\":{\"optional\":true,\"secretName\":\"istio.kiali-service-account\"}},{\"name\":\"kiali-secret\",\"secret\":{\"optional\":true,\"secretName\":\"kiali\"}},{\"configMap\":{\"name\":\"kiali-cabundle\",\"optional\":true},\"name\":\"kiali-cabundle\"}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["kiali"], + "health": { + "workloadStatus": { + "name": "kiali", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": -1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "prometheus", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-01-29T20:09:28Z", + "resourceVersion": "26771", + "istioSidecar": false, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app.kubernetes.io/component": "server", + "app.kubernetes.io/instance": "prometheus", + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "prometheus", + "app.kubernetes.io/part-of": "prometheus", + "app.kubernetes.io/version": "v2.48.0", + "helm.sh/chart": "prometheus-25.8.0", + "sidecar.istio.io/inject": "false" + }, + "appLabel": false, + "versionLabel": false, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app.kubernetes.io/component\":\"server\",\"app.kubernetes.io/instance\":\"prometheus\",\"app.kubernetes.io/managed-by\":\"Helm\",\"app.kubernetes.io/name\":\"prometheus\",\"app.kubernetes.io/part-of\":\"prometheus\",\"app.kubernetes.io/version\":\"v2.48.0\",\"helm.sh/chart\":\"prometheus-25.8.0\"},\"name\":\"prometheus\",\"namespace\":\"istio-system\"},\"spec\":{\"replicas\":1,\"revisionHistoryLimit\":10,\"selector\":{\"matchLabels\":{\"app.kubernetes.io/component\":\"server\",\"app.kubernetes.io/instance\":\"prometheus\",\"app.kubernetes.io/name\":\"prometheus\"}},\"strategy\":{\"rollingUpdate\":null,\"type\":\"Recreate\"},\"template\":{\"metadata\":{\"labels\":{\"app.kubernetes.io/component\":\"server\",\"app.kubernetes.io/instance\":\"prometheus\",\"app.kubernetes.io/managed-by\":\"Helm\",\"app.kubernetes.io/name\":\"prometheus\",\"app.kubernetes.io/part-of\":\"prometheus\",\"app.kubernetes.io/version\":\"v2.48.0\",\"helm.sh/chart\":\"prometheus-25.8.0\",\"sidecar.istio.io/inject\":\"false\"}},\"spec\":{\"containers\":[{\"args\":[\"--watched-dir=/etc/config\",\"--reload-url=http://127.0.0.1:9090/-/reload\"],\"image\":\"ghcr.io/prometheus-operator/prometheus-config-reloader:v0.67.0\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"prometheus-server-configmap-reload\",\"volumeMounts\":[{\"mountPath\":\"/etc/config\",\"name\":\"config-volume\",\"readOnly\":true}]},{\"args\":[\"--storage.tsdb.retention.time=15d\",\"--config.file=/etc/config/prometheus.yml\",\"--storage.tsdb.path=/data\",\"--web.console.libraries=/etc/prometheus/console_libraries\",\"--web.console.templates=/etc/prometheus/consoles\",\"--web.enable-lifecycle\"],\"image\":\"prom/prometheus:v2.48.0\",\"imagePullPolicy\":\"IfNotPresent\",\"livenessProbe\":{\"failureThreshold\":3,\"httpGet\":{\"path\":\"/-/healthy\",\"port\":9090,\"scheme\":\"HTTP\"},\"initialDelaySeconds\":30,\"periodSeconds\":15,\"successThreshold\":1,\"timeoutSeconds\":10},\"name\":\"prometheus-server\",\"ports\":[{\"containerPort\":9090}],\"readinessProbe\":{\"failureThreshold\":3,\"httpGet\":{\"path\":\"/-/ready\",\"port\":9090,\"scheme\":\"HTTP\"},\"initialDelaySeconds\":0,\"periodSeconds\":5,\"successThreshold\":1,\"timeoutSeconds\":4},\"volumeMounts\":[{\"mountPath\":\"/etc/config\",\"name\":\"config-volume\"},{\"mountPath\":\"/data\",\"name\":\"storage-volume\",\"subPath\":\"\"}]}],\"dnsPolicy\":\"ClusterFirst\",\"enableServiceLinks\":true,\"serviceAccountName\":\"prometheus\",\"terminationGracePeriodSeconds\":300,\"volumes\":[{\"configMap\":{\"name\":\"prometheus\"},\"name\":\"config-volume\"},{\"emptyDir\":{},\"name\":\"storage-volume\"}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["prometheus"], + "health": { + "workloadStatus": { + "name": "prometheus", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": -1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + } + ], + "validations": { + "workload": { + "grafana.istio-system": { + "name": "grafana", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-egressgateway.istio-system": { + "name": "istio-egressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-ingressgateway.istio-system": { + "name": "istio-ingressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istiod.istio-system": { + "name": "istiod", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "jaeger.istio-system": { + "name": "jaeger", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali.istio-system": { + "name": "kiali", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "prometheus.istio-system": { + "name": "prometheus", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/workloads/grafana.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/workloads/grafana.json new file mode 100644 index 0000000000..0176417d10 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/workloads/grafana.json @@ -0,0 +1,155 @@ +{ + "name": "grafana", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-15T09:24:58Z", + "resourceVersion": "1095", + "istioInjectionAnnotation": false, + "istioSidecar": false, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "grafana", + "app.kubernetes.io/instance": "grafana", + "app.kubernetes.io/name": "grafana", + "sidecar.istio.io/inject": "false" + }, + "appLabel": true, + "versionLabel": false, + "podCount": 0, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app.kubernetes.io/instance\":\"grafana\",\"app.kubernetes.io/managed-by\":\"Helm\",\"app.kubernetes.io/name\":\"grafana\",\"app.kubernetes.io/version\":\"9.5.5\",\"helm.sh/chart\":\"grafana-6.57.4\"},\"name\":\"grafana\",\"namespace\":\"istio-system\"},\"spec\":{\"replicas\":1,\"revisionHistoryLimit\":10,\"selector\":{\"matchLabels\":{\"app.kubernetes.io/instance\":\"grafana\",\"app.kubernetes.io/name\":\"grafana\"}},\"strategy\":{\"type\":\"RollingUpdate\"},\"template\":{\"metadata\":{\"annotations\":{\"checksum/config\":\"aec3d18ca2ea82d1d48f8965db1440aba0680ed2f32c5a29e6cdb5e7afc8b395\",\"checksum/dashboards-json-config\":\"01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b\",\"checksum/sc-dashboard-provider-config\":\"01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b\",\"kubectl.kubernetes.io/default-container\":\"grafana\"},\"labels\":{\"app\":\"grafana\",\"app.kubernetes.io/instance\":\"grafana\",\"app.kubernetes.io/name\":\"grafana\",\"sidecar.istio.io/inject\":\"false\"}},\"spec\":{\"automountServiceAccountToken\":true,\"containers\":[{\"env\":[{\"name\":\"POD_IP\",\"valueFrom\":{\"fieldRef\":{\"fieldPath\":\"status.podIP\"}}},{\"name\":\"GF_PATHS_DATA\",\"value\":\"/var/lib/grafana/\"},{\"name\":\"GF_PATHS_LOGS\",\"value\":\"/var/log/grafana\"},{\"name\":\"GF_PATHS_PLUGINS\",\"value\":\"/var/lib/grafana/plugins\"},{\"name\":\"GF_PATHS_PROVISIONING\",\"value\":\"/etc/grafana/provisioning\"},{\"name\":\"GF_AUTH_ANONYMOUS_ENABLED\",\"value\":\"true\"},{\"name\":\"GF_AUTH_ANONYMOUS_ORG_ROLE\",\"value\":\"Admin\"},{\"name\":\"GF_AUTH_BASIC_ENABLED\",\"value\":\"false\"},{\"name\":\"GF_SECURITY_ADMIN_PASSWORD\",\"value\":\"admin\"},{\"name\":\"GF_SECURITY_ADMIN_USER\",\"value\":\"admin\"}],\"image\":\"docker.io/grafana/grafana:9.5.5\",\"imagePullPolicy\":\"IfNotPresent\",\"livenessProbe\":{\"failureThreshold\":10,\"httpGet\":{\"path\":\"/api/health\",\"port\":3000},\"initialDelaySeconds\":60,\"timeoutSeconds\":30},\"name\":\"grafana\",\"ports\":[{\"containerPort\":3000,\"name\":\"grafana\",\"protocol\":\"TCP\"},{\"containerPort\":9094,\"name\":\"gossip-tcp\",\"protocol\":\"TCP\"},{\"containerPort\":9094,\"name\":\"gossip-udp\",\"protocol\":\"UDP\"}],\"readinessProbe\":{\"httpGet\":{\"path\":\"/api/health\",\"port\":3000}},\"securityContext\":{\"allowPrivilegeEscalation\":false,\"capabilities\":{\"drop\":[\"ALL\"]},\"seccompProfile\":{\"type\":\"RuntimeDefault\"}},\"volumeMounts\":[{\"mountPath\":\"/etc/grafana/grafana.ini\",\"name\":\"config\",\"subPath\":\"grafana.ini\"},{\"mountPath\":\"/var/lib/grafana\",\"name\":\"storage\"},{\"mountPath\":\"/var/lib/grafana/dashboards/istio\",\"name\":\"dashboards-istio\"},{\"mountPath\":\"/var/lib/grafana/dashboards/istio-services\",\"name\":\"dashboards-istio-services\"},{\"mountPath\":\"/etc/grafana/provisioning/datasources/datasources.yaml\",\"name\":\"config\",\"subPath\":\"datasources.yaml\"},{\"mountPath\":\"/etc/grafana/provisioning/dashboards/dashboardproviders.yaml\",\"name\":\"config\",\"subPath\":\"dashboardproviders.yaml\"}]}],\"enableServiceLinks\":true,\"securityContext\":{\"fsGroup\":472,\"runAsGroup\":472,\"runAsNonRoot\":true,\"runAsUser\":472},\"serviceAccountName\":\"grafana\",\"volumes\":[{\"configMap\":{\"name\":\"grafana\"},\"name\":\"config\"},{\"configMap\":{\"name\":\"istio-grafana-dashboards\"},\"name\":\"dashboards-istio\"},{\"configMap\":{\"name\":\"istio-services-grafana-dashboards\"},\"name\":\"dashboards-istio-services\"},{\"emptyDir\":{},\"name\":\"storage\"}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": null, + "dashboardAnnotations": {}, + "serviceAccountNames": null, + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "pods": [ + { + "name": "grafana-b8bbdc84d-pgmx4", + "labels": { + "app": "grafana", + "app.kubernetes.io/instance": "grafana", + "app.kubernetes.io/name": "grafana", + "pod-template-hash": "b8bbdc84d", + "sidecar.istio.io/inject": "false" + }, + "createdAt": "2024-02-15T09:24:58Z", + "createdBy": [ + { + "name": "grafana-b8bbdc84d", + "kind": "ReplicaSet" + } + ], + "containers": [ + { + "name": "grafana", + "image": "docker.io/grafana/grafana:9.5.5", + "isProxy": false, + "isReady": true, + "isAmbient": false + } + ], + "istioContainers": null, + "istioInitContainers": null, + "status": "Running", + "statusMessage": "", + "statusReason": "", + "appLabel": true, + "versionLabel": false, + "annotations": { + "checksum/config": "aec3d18ca2ea82d1d48f8965db1440aba0680ed2f32c5a29e6cdb5e7afc8b395", + "checksum/dashboards-json-config": "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b", + "checksum/sc-dashboard-provider-config": "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b", + "kubectl.kubernetes.io/default-container": "grafana" + }, + "proxyStatus": null, + "serviceAccountName": "grafana" + } + ], + "services": [ + { + "name": "grafana", + "namespace": "istio-system", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": false, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app.kubernetes.io/instance": "grafana", + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "grafana", + "app.kubernetes.io/version": "9.5.5", + "helm.sh/chart": "grafana-6.57.4" + }, + "selector": { + "app.kubernetes.io/instance": "grafana", + "app.kubernetes.io/name": "grafana" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + } + ], + "runtimes": [], + "additionalDetails": [], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": true, + "checks": [], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "grafana.istio-system": { + "name": "grafana", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + }, + "waypointWorkloads": null, + "health": { + "workloadStatus": { + "name": "grafana", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": -1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/workloads/istio_egressgateway.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/workloads/istio_egressgateway.json new file mode 100644 index 0000000000..354968cfec --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/workloads/istio_egressgateway.json @@ -0,0 +1,183 @@ +{ + "name": "istio-egressgateway", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-15T09:24:44Z", + "resourceVersion": "16281", + "istioInjectionAnnotation": false, + "istioSidecar": false, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "istio-egressgateway", + "chart": "gateways", + "heritage": "Tiller", + "install.operator.istio.io/owning-resource": "unknown", + "istio": "egressgateway", + "istio.io/rev": "default", + "operator.istio.io/component": "EgressGateways", + "release": "istio", + "service.istio.io/canonical-name": "istio-egressgateway", + "service.istio.io/canonical-revision": "latest", + "sidecar.istio.io/inject": "false" + }, + "appLabel": true, + "versionLabel": false, + "podCount": 0, + "annotations": { + "deployment.kubernetes.io/revision": "1" + }, + "healthAnnotations": {}, + "istioReferences": null, + "dashboardAnnotations": {}, + "serviceAccountNames": null, + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "pods": [ + { + "name": "istio-egressgateway-55bc68746f-l87v2", + "labels": { + "app": "istio-egressgateway", + "chart": "gateways", + "heritage": "Tiller", + "install.operator.istio.io/owning-resource": "unknown", + "istio": "egressgateway", + "istio.io/rev": "default", + "operator.istio.io/component": "EgressGateways", + "pod-template-hash": "55bc68746f", + "release": "istio", + "service.istio.io/canonical-name": "istio-egressgateway", + "service.istio.io/canonical-revision": "latest", + "sidecar.istio.io/inject": "false" + }, + "createdAt": "2024-02-15T09:24:44Z", + "createdBy": [ + { + "name": "istio-egressgateway-55bc68746f", + "kind": "ReplicaSet" + } + ], + "containers": [ + { + "name": "istio-proxy", + "image": "gcr.io/istio-release/proxyv2:1.20.1", + "isProxy": true, + "isReady": true, + "isAmbient": false + } + ], + "istioContainers": null, + "istioInitContainers": null, + "status": "Running", + "statusMessage": "", + "statusReason": "", + "appLabel": true, + "versionLabel": false, + "annotations": { + "istio.io/rev": "default", + "prometheus.io/path": "/stats/prometheus", + "prometheus.io/port": "15020", + "prometheus.io/scrape": "true", + "sidecar.istio.io/inject": "false" + }, + "proxyStatus": null, + "serviceAccountName": "istio-egressgateway-service-account" + } + ], + "services": [ + { + "name": "istio-egressgateway", + "namespace": "istio-system", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "istio-egressgateway", + "install.operator.istio.io/owning-resource": "installed-state", + "install.operator.istio.io/owning-resource-namespace": "istio-system", + "istio": "egressgateway", + "istio.io/rev": "default", + "operator.istio.io/component": "EgressGateways", + "operator.istio.io/managed": "Reconcile", + "operator.istio.io/version": "1.20.1", + "release": "istio" + }, + "selector": { + "app": "istio-egressgateway", + "istio": "egressgateway" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + } + ], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "additionalDetails": [], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": true, + "checks": [], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "istio-egressgateway.istio-system": { + "name": "istio-egressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + }, + "waypointWorkloads": null, + "health": { + "workloadStatus": { + "name": "istio-egressgateway", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": -1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/workloads/istio_ingressgateway.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/workloads/istio_ingressgateway.json new file mode 100644 index 0000000000..250aa688cd --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/workloads/istio_ingressgateway.json @@ -0,0 +1,187 @@ +{ + "name": "istio-ingressgateway", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-15T09:24:44Z", + "resourceVersion": "16279", + "istioInjectionAnnotation": false, + "istioSidecar": false, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "istio-ingressgateway", + "chart": "gateways", + "heritage": "Tiller", + "install.operator.istio.io/owning-resource": "unknown", + "istio": "ingressgateway", + "istio.io/rev": "default", + "operator.istio.io/component": "IngressGateways", + "release": "istio", + "service.istio.io/canonical-name": "istio-ingressgateway", + "service.istio.io/canonical-revision": "latest", + "sidecar.istio.io/inject": "false" + }, + "appLabel": true, + "versionLabel": false, + "podCount": 0, + "annotations": { + "deployment.kubernetes.io/revision": "1" + }, + "healthAnnotations": {}, + "istioReferences": null, + "dashboardAnnotations": {}, + "serviceAccountNames": null, + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "pods": [ + { + "name": "istio-ingressgateway-7998f4487c-llhrj", + "labels": { + "app": "istio-ingressgateway", + "chart": "gateways", + "heritage": "Tiller", + "install.operator.istio.io/owning-resource": "unknown", + "istio": "ingressgateway", + "istio.io/rev": "default", + "operator.istio.io/component": "IngressGateways", + "pod-template-hash": "7998f4487c", + "release": "istio", + "service.istio.io/canonical-name": "istio-ingressgateway", + "service.istio.io/canonical-revision": "latest", + "sidecar.istio.io/inject": "false" + }, + "createdAt": "2024-02-15T09:24:44Z", + "createdBy": [ + { + "name": "istio-ingressgateway-7998f4487c", + "kind": "ReplicaSet" + } + ], + "containers": [ + { + "name": "istio-proxy", + "image": "gcr.io/istio-release/proxyv2:1.20.1", + "isProxy": true, + "isReady": true, + "isAmbient": false + } + ], + "istioContainers": null, + "istioInitContainers": null, + "status": "Running", + "statusMessage": "", + "statusReason": "", + "appLabel": true, + "versionLabel": false, + "annotations": { + "istio.io/rev": "default", + "prometheus.io/path": "/stats/prometheus", + "prometheus.io/port": "15020", + "prometheus.io/scrape": "true", + "sidecar.istio.io/inject": "false" + }, + "proxyStatus": null, + "serviceAccountName": "istio-ingressgateway-service-account" + } + ], + "services": [ + { + "name": "istio-ingressgateway", + "namespace": "istio-system", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "istio-ingressgateway", + "install.operator.istio.io/owning-resource": "installed-state", + "install.operator.istio.io/owning-resource-namespace": "istio-system", + "istio": "ingressgateway", + "istio.io/rev": "default", + "operator.istio.io/component": "IngressGateways", + "operator.istio.io/managed": "Reconcile", + "operator.istio.io/version": "1.20.1", + "release": "istio" + }, + "selector": { + "app": "istio-ingressgateway", + "istio": "ingressgateway" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + } + ], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "additionalDetails": [], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": true, + "checks": [], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "istio-ingressgateway.istio-system": { + "name": "istio-ingressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + }, + "waypointWorkloads": null, + "health": { + "workloadStatus": { + "name": "istio-ingressgateway", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": -1 + }, + "requests": { + "inbound": {}, + "outbound": { + "http": { + "200": 0.9999999999999999 + } + }, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/workloads/istiod.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/workloads/istiod.json new file mode 100644 index 0000000000..5ddf582380 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/workloads/istiod.json @@ -0,0 +1,172 @@ +{ + "name": "istiod", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-15T09:24:36Z", + "resourceVersion": "852", + "istioInjectionAnnotation": false, + "istioSidecar": false, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "istiod", + "install.operator.istio.io/owning-resource": "unknown", + "istio": "pilot", + "istio.io/rev": "default", + "operator.istio.io/component": "Pilot", + "sidecar.istio.io/inject": "false" + }, + "appLabel": true, + "versionLabel": false, + "podCount": 0, + "annotations": { + "deployment.kubernetes.io/revision": "1" + }, + "healthAnnotations": {}, + "istioReferences": null, + "dashboardAnnotations": {}, + "serviceAccountNames": null, + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "pods": [ + { + "name": "istiod-74586f98bb-khmv4", + "labels": { + "app": "istiod", + "install.operator.istio.io/owning-resource": "unknown", + "istio": "pilot", + "istio.io/rev": "default", + "operator.istio.io/component": "Pilot", + "pod-template-hash": "74586f98bb", + "sidecar.istio.io/inject": "false" + }, + "createdAt": "2024-02-15T09:24:36Z", + "createdBy": [ + { + "name": "istiod-74586f98bb", + "kind": "ReplicaSet" + } + ], + "containers": [ + { + "name": "discovery", + "image": "gcr.io/istio-release/pilot:1.20.1", + "isProxy": false, + "isReady": true, + "isAmbient": false + } + ], + "istioContainers": null, + "istioInitContainers": null, + "status": "Running", + "statusMessage": "", + "statusReason": "", + "appLabel": true, + "versionLabel": false, + "annotations": { + "ambient.istio.io/redirection": "disabled", + "prometheus.io/port": "15014", + "prometheus.io/scrape": "true", + "sidecar.istio.io/inject": "false" + }, + "proxyStatus": null, + "serviceAccountName": "istiod" + } + ], + "services": [ + { + "name": "istiod", + "namespace": "istio-system", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "istiod", + "install.operator.istio.io/owning-resource": "installed-state", + "install.operator.istio.io/owning-resource-namespace": "istio-system", + "istio": "pilot", + "istio.io/rev": "default", + "operator.istio.io/component": "Pilot", + "operator.istio.io/managed": "Reconcile", + "operator.istio.io/version": "1.20.1", + "release": "istio" + }, + "selector": { + "app": "istiod", + "istio": "pilot" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + } + ], + "runtimes": [ + { + "name": "Go", + "dashboardRefs": [ + { + "template": "go", + "title": "Go Metrics" + } + ] + } + ], + "additionalDetails": [], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": true, + "checks": [], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "istiod.istio-system": { + "name": "istiod", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + }, + "waypointWorkloads": null, + "health": { + "workloadStatus": { + "name": "istiod", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": -1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/workloads/jaeger.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/workloads/jaeger.json new file mode 100644 index 0000000000..7dd725d45e --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/workloads/jaeger.json @@ -0,0 +1,210 @@ +{ + "name": "jaeger", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-15T09:24:59Z", + "resourceVersion": "1068", + "istioInjectionAnnotation": false, + "istioSidecar": false, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "jaeger", + "sidecar.istio.io/inject": "false" + }, + "appLabel": true, + "versionLabel": false, + "podCount": 0, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"jaeger\"},\"name\":\"jaeger\",\"namespace\":\"istio-system\"},\"spec\":{\"selector\":{\"matchLabels\":{\"app\":\"jaeger\"}},\"template\":{\"metadata\":{\"annotations\":{\"prometheus.io/port\":\"14269\",\"prometheus.io/scrape\":\"true\"},\"labels\":{\"app\":\"jaeger\",\"sidecar.istio.io/inject\":\"false\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"BADGER_EPHEMERAL\",\"value\":\"false\"},{\"name\":\"SPAN_STORAGE_TYPE\",\"value\":\"badger\"},{\"name\":\"BADGER_DIRECTORY_VALUE\",\"value\":\"/badger/data\"},{\"name\":\"BADGER_DIRECTORY_KEY\",\"value\":\"/badger/key\"},{\"name\":\"COLLECTOR_ZIPKIN_HOST_PORT\",\"value\":\":9411\"},{\"name\":\"MEMORY_MAX_TRACES\",\"value\":\"50000\"},{\"name\":\"QUERY_BASE_PATH\",\"value\":\"/jaeger\"}],\"image\":\"docker.io/jaegertracing/all-in-one:1.46\",\"livenessProbe\":{\"httpGet\":{\"path\":\"/\",\"port\":14269}},\"name\":\"jaeger\",\"readinessProbe\":{\"httpGet\":{\"path\":\"/\",\"port\":14269}},\"resources\":{\"requests\":{\"cpu\":\"10m\"}},\"volumeMounts\":[{\"mountPath\":\"/badger\",\"name\":\"data\"}]}],\"volumes\":[{\"emptyDir\":{},\"name\":\"data\"}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": null, + "dashboardAnnotations": {}, + "serviceAccountNames": null, + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "pods": [ + { + "name": "jaeger-7d7d59b9d-q8wzb", + "labels": { + "app": "jaeger", + "pod-template-hash": "7d7d59b9d", + "sidecar.istio.io/inject": "false" + }, + "createdAt": "2024-02-15T09:24:59Z", + "createdBy": [ + { + "name": "jaeger-7d7d59b9d", + "kind": "ReplicaSet" + } + ], + "containers": [ + { + "name": "jaeger", + "image": "docker.io/jaegertracing/all-in-one:1.46", + "isProxy": false, + "isReady": true, + "isAmbient": false + } + ], + "istioContainers": null, + "istioInitContainers": null, + "status": "Running", + "statusMessage": "", + "statusReason": "", + "appLabel": true, + "versionLabel": false, + "annotations": { + "prometheus.io/port": "14269", + "prometheus.io/scrape": "true" + }, + "proxyStatus": null, + "serviceAccountName": "default" + } + ], + "services": [ + { + "name": "jaeger-collector", + "namespace": "istio-system", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "jaeger" + }, + "selector": { + "app": "jaeger" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "zipkin", + "namespace": "istio-system", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "name": "zipkin" + }, + "selector": { + "app": "jaeger" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "tracing", + "namespace": "istio-system", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "jaeger" + }, + "selector": { + "app": "jaeger" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + } + ], + "runtimes": [ + { + "name": "Go", + "dashboardRefs": [ + { + "template": "go", + "title": "Go Metrics" + } + ] + } + ], + "additionalDetails": [], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": true, + "checks": [], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "jaeger.istio-system": { + "name": "jaeger", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + }, + "waypointWorkloads": null, + "health": { + "workloadStatus": { + "name": "jaeger", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": -1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/workloads/kiali.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/workloads/kiali.json new file mode 100644 index 0000000000..bb30fc0cc4 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/workloads/kiali.json @@ -0,0 +1,187 @@ +{ + "name": "kiali", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-15T09:25:30Z", + "resourceVersion": "16310", + "istioInjectionAnnotation": false, + "istioSidecar": false, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "kiali", + "app.kubernetes.io/instance": "kiali", + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "kiali", + "app.kubernetes.io/part-of": "kiali", + "app.kubernetes.io/version": "v1.76.0", + "helm.sh/chart": "kiali-server-1.76.0", + "sidecar.istio.io/inject": "false", + "version": "v1.76.0" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 0, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"kiali\",\"app.kubernetes.io/instance\":\"kiali\",\"app.kubernetes.io/managed-by\":\"Helm\",\"app.kubernetes.io/name\":\"kiali\",\"app.kubernetes.io/part-of\":\"kiali\",\"app.kubernetes.io/version\":\"v1.76.0\",\"helm.sh/chart\":\"kiali-server-1.76.0\",\"version\":\"v1.76.0\"},\"name\":\"kiali\",\"namespace\":\"istio-system\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app.kubernetes.io/instance\":\"kiali\",\"app.kubernetes.io/name\":\"kiali\"}},\"strategy\":{\"rollingUpdate\":{\"maxSurge\":1,\"maxUnavailable\":1},\"type\":\"RollingUpdate\"},\"template\":{\"metadata\":{\"annotations\":{\"checksum/config\":\"aebd819b94172ef9b148702b7bb438ac35bd1eb284bbb9b13769d8576374fbda\",\"kiali.io/dashboards\":\"go,kiali\",\"prometheus.io/port\":\"9090\",\"prometheus.io/scrape\":\"true\"},\"labels\":{\"app\":\"kiali\",\"app.kubernetes.io/instance\":\"kiali\",\"app.kubernetes.io/managed-by\":\"Helm\",\"app.kubernetes.io/name\":\"kiali\",\"app.kubernetes.io/part-of\":\"kiali\",\"app.kubernetes.io/version\":\"v1.76.0\",\"helm.sh/chart\":\"kiali-server-1.76.0\",\"sidecar.istio.io/inject\":\"false\",\"version\":\"v1.76.0\"},\"name\":\"kiali\"},\"spec\":{\"containers\":[{\"command\":[\"/opt/kiali/kiali\",\"-config\",\"/kiali-configuration/config.yaml\"],\"env\":[{\"name\":\"ACTIVE_NAMESPACE\",\"valueFrom\":{\"fieldRef\":{\"fieldPath\":\"metadata.namespace\"}}},{\"name\":\"LOG_LEVEL\",\"value\":\"info\"},{\"name\":\"LOG_FORMAT\",\"value\":\"text\"},{\"name\":\"LOG_TIME_FIELD_FORMAT\",\"value\":\"2006-01-02T15:04:05Z07:00\"},{\"name\":\"LOG_SAMPLER_RATE\",\"value\":\"1\"}],\"image\":\"quay.io/kiali/kiali:v1.76\",\"imagePullPolicy\":\"Always\",\"livenessProbe\":{\"httpGet\":{\"path\":\"/kiali/healthz\",\"port\":\"api-port\",\"scheme\":\"HTTP\"},\"initialDelaySeconds\":5,\"periodSeconds\":30},\"name\":\"kiali\",\"ports\":[{\"containerPort\":20001,\"name\":\"api-port\"},{\"containerPort\":9090,\"name\":\"http-metrics\"}],\"readinessProbe\":{\"httpGet\":{\"path\":\"/kiali/healthz\",\"port\":\"api-port\",\"scheme\":\"HTTP\"},\"initialDelaySeconds\":5,\"periodSeconds\":30},\"resources\":{\"limits\":{\"memory\":\"1Gi\"},\"requests\":{\"cpu\":\"10m\",\"memory\":\"64Mi\"}},\"securityContext\":{\"allowPrivilegeEscalation\":false,\"capabilities\":{\"drop\":[\"ALL\"]},\"privileged\":false,\"readOnlyRootFilesystem\":true,\"runAsNonRoot\":true},\"volumeMounts\":[{\"mountPath\":\"/kiali-configuration\",\"name\":\"kiali-configuration\"},{\"mountPath\":\"/kiali-cert\",\"name\":\"kiali-cert\"},{\"mountPath\":\"/kiali-secret\",\"name\":\"kiali-secret\"},{\"mountPath\":\"/kiali-cabundle\",\"name\":\"kiali-cabundle\"}]}],\"serviceAccountName\":\"kiali\",\"volumes\":[{\"configMap\":{\"name\":\"kiali\"},\"name\":\"kiali-configuration\"},{\"name\":\"kiali-cert\",\"secret\":{\"optional\":true,\"secretName\":\"istio.kiali-service-account\"}},{\"name\":\"kiali-secret\",\"secret\":{\"optional\":true,\"secretName\":\"kiali\"}},{\"configMap\":{\"name\":\"kiali-cabundle\",\"optional\":true},\"name\":\"kiali-cabundle\"}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": null, + "dashboardAnnotations": {}, + "serviceAccountNames": null, + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "pods": [ + { + "name": "kiali-545878ddbb-swl5j", + "labels": { + "app": "kiali", + "app.kubernetes.io/instance": "kiali", + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "kiali", + "app.kubernetes.io/part-of": "kiali", + "app.kubernetes.io/version": "v1.76.0", + "helm.sh/chart": "kiali-server-1.76.0", + "pod-template-hash": "545878ddbb", + "sidecar.istio.io/inject": "false", + "version": "v1.76.0" + }, + "createdAt": "2024-02-15T09:25:30Z", + "createdBy": [ + { + "name": "kiali-545878ddbb", + "kind": "ReplicaSet" + } + ], + "containers": [ + { + "name": "kiali", + "image": "quay.io/kiali/kiali:v1.76", + "isProxy": false, + "isReady": true, + "isAmbient": false + } + ], + "istioContainers": null, + "istioInitContainers": null, + "status": "Running", + "statusMessage": "", + "statusReason": "", + "appLabel": true, + "versionLabel": true, + "annotations": { + "checksum/config": "aebd819b94172ef9b148702b7bb438ac35bd1eb284bbb9b13769d8576374fbda", + "kiali.io/dashboards": "go,kiali", + "prometheus.io/port": "9090", + "prometheus.io/scrape": "true" + }, + "proxyStatus": null, + "serviceAccountName": "kiali" + } + ], + "services": [ + { + "name": "kiali", + "namespace": "istio-system", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": false, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "kiali", + "app.kubernetes.io/instance": "kiali", + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "kiali", + "app.kubernetes.io/part-of": "kiali", + "app.kubernetes.io/version": "v1.76.0", + "helm.sh/chart": "kiali-server-1.76.0", + "version": "v1.76.0" + }, + "selector": { + "app.kubernetes.io/instance": "kiali", + "app.kubernetes.io/name": "kiali" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + } + ], + "runtimes": [ + { + "name": "Go", + "dashboardRefs": [ + { + "template": "go", + "title": "Go Metrics" + } + ] + }, + { + "name": "", + "dashboardRefs": [ + { + "template": "kiali", + "title": "Kiali Internal Metrics" + } + ] + } + ], + "additionalDetails": [], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": true, + "checks": [], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "kiali.istio-system": { + "name": "kiali", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + }, + "waypointWorkloads": null, + "health": { + "workloadStatus": { + "name": "kiali", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": -1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/workloads/prometheus.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/workloads/prometheus.json new file mode 100644 index 0000000000..cc5cbd93c3 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/istio-system/workloads/prometheus.json @@ -0,0 +1,162 @@ +{ + "name": "prometheus", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-15T09:24:58Z", + "resourceVersion": "1113", + "istioInjectionAnnotation": false, + "istioSidecar": false, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "prometheus", + "chart": "prometheus-19.6.1", + "component": "server", + "heritage": "Helm", + "release": "prometheus", + "sidecar.istio.io/inject": "false" + }, + "appLabel": true, + "versionLabel": false, + "podCount": 0, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"prometheus\",\"chart\":\"prometheus-19.6.1\",\"component\":\"server\",\"heritage\":\"Helm\",\"release\":\"prometheus\"},\"name\":\"prometheus\",\"namespace\":\"istio-system\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"prometheus\",\"component\":\"server\",\"release\":\"prometheus\"}},\"strategy\":{\"rollingUpdate\":null,\"type\":\"Recreate\"},\"template\":{\"metadata\":{\"labels\":{\"app\":\"prometheus\",\"chart\":\"prometheus-19.6.1\",\"component\":\"server\",\"heritage\":\"Helm\",\"release\":\"prometheus\",\"sidecar.istio.io/inject\":\"false\"}},\"spec\":{\"containers\":[{\"args\":[\"--volume-dir=/etc/config\",\"--webhook-url=http://127.0.0.1:9090/-/reload\"],\"image\":\"jimmidyson/configmap-reload:v0.8.0\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"prometheus-server-configmap-reload\",\"resources\":{},\"volumeMounts\":[{\"mountPath\":\"/etc/config\",\"name\":\"config-volume\",\"readOnly\":true}]},{\"args\":[\"--storage.tsdb.retention.time=15d\",\"--config.file=/etc/config/prometheus.yml\",\"--storage.tsdb.path=/data\",\"--web.console.libraries=/etc/prometheus/console_libraries\",\"--web.console.templates=/etc/prometheus/consoles\",\"--web.enable-lifecycle\"],\"image\":\"prom/prometheus:v2.41.0\",\"imagePullPolicy\":\"IfNotPresent\",\"livenessProbe\":{\"failureThreshold\":3,\"httpGet\":{\"path\":\"/-/healthy\",\"port\":9090,\"scheme\":\"HTTP\"},\"initialDelaySeconds\":30,\"periodSeconds\":15,\"successThreshold\":1,\"timeoutSeconds\":10},\"name\":\"prometheus-server\",\"ports\":[{\"containerPort\":9090}],\"readinessProbe\":{\"failureThreshold\":3,\"httpGet\":{\"path\":\"/-/ready\",\"port\":9090,\"scheme\":\"HTTP\"},\"initialDelaySeconds\":0,\"periodSeconds\":5,\"successThreshold\":1,\"timeoutSeconds\":4},\"resources\":{},\"volumeMounts\":[{\"mountPath\":\"/etc/config\",\"name\":\"config-volume\"},{\"mountPath\":\"/data\",\"name\":\"storage-volume\",\"subPath\":\"\"}]}],\"dnsPolicy\":\"ClusterFirst\",\"enableServiceLinks\":true,\"securityContext\":{\"fsGroup\":65534,\"runAsGroup\":65534,\"runAsNonRoot\":true,\"runAsUser\":65534},\"serviceAccountName\":\"prometheus\",\"terminationGracePeriodSeconds\":300,\"volumes\":[{\"configMap\":{\"name\":\"prometheus\"},\"name\":\"config-volume\"},{\"emptyDir\":{},\"name\":\"storage-volume\"}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": null, + "dashboardAnnotations": {}, + "serviceAccountNames": null, + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "pods": [ + { + "name": "prometheus-db8b4588f-hhrn9", + "labels": { + "app": "prometheus", + "chart": "prometheus-19.6.1", + "component": "server", + "heritage": "Helm", + "pod-template-hash": "db8b4588f", + "release": "prometheus", + "sidecar.istio.io/inject": "false" + }, + "createdAt": "2024-02-15T09:24:58Z", + "createdBy": [ + { + "name": "prometheus-db8b4588f", + "kind": "ReplicaSet" + } + ], + "containers": [ + { + "name": "prometheus-server-configmap-reload", + "image": "jimmidyson/configmap-reload:v0.8.0", + "isProxy": false, + "isReady": true, + "isAmbient": false + }, + { + "name": "prometheus-server", + "image": "prom/prometheus:v2.41.0", + "isProxy": false, + "isReady": true, + "isAmbient": false + } + ], + "istioContainers": null, + "istioInitContainers": null, + "status": "Running", + "statusMessage": "", + "statusReason": "", + "appLabel": true, + "versionLabel": false, + "annotations": null, + "proxyStatus": null, + "serviceAccountName": "prometheus" + } + ], + "services": [ + { + "name": "prometheus", + "namespace": "istio-system", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "prometheus", + "chart": "prometheus-19.6.1", + "component": "server", + "heritage": "Helm", + "release": "prometheus" + }, + "selector": { + "app": "prometheus", + "component": "server", + "release": "prometheus" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + } + ], + "runtimes": [], + "additionalDetails": [], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": true, + "checks": [], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "prometheus.istio-system": { + "name": "prometheus", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + }, + "waypointWorkloads": null, + "health": { + "workloadStatus": { + "name": "prometheus", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": -1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/apps.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/apps.json new file mode 100644 index 0000000000..408327ae7e --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/apps.json @@ -0,0 +1,201 @@ +{ + "namespace": { + "name": "travel-agency", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "cluster": "", + "applications": [ + { + "name": "insurances", + "cluster": "Kubernetes", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "insurances", + "version": "v1" + }, + "istioReferences": [], + "health": { + "workloadStatuses": [ + { + "name": "insurances-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "mysqldb", + "cluster": "Kubernetes", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "mysqldb", + "version": "v1" + }, + "istioReferences": [], + "health": { + "workloadStatuses": [ + { + "name": "mysqldb-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "travels", + "cluster": "Kubernetes", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "travels", + "version": "v1" + }, + "istioReferences": [], + "health": { + "workloadStatuses": [ + { + "name": "travels-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "cars", + "cluster": "Kubernetes", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "cars", + "version": "v1" + }, + "istioReferences": [], + "health": { + "workloadStatuses": [ + { + "name": "cars-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "discounts", + "cluster": "Kubernetes", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "discounts", + "version": "v1" + }, + "istioReferences": [], + "health": { + "workloadStatuses": [ + { + "name": "discounts-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "flights", + "cluster": "Kubernetes", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "flights", + "version": "v1" + }, + "istioReferences": [], + "health": { + "workloadStatuses": [ + { + "name": "flights-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "hotels", + "cluster": "Kubernetes", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "hotels", + "version": "v1" + }, + "istioReferences": [], + "health": { + "workloadStatuses": [ + { + "name": "hotels-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + } + ] +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/apps/cars.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/apps/cars.json new file mode 100644 index 0000000000..41bbac8eff --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/apps/cars.json @@ -0,0 +1,62 @@ +{ + "namespace": { + "name": "travel-agency", + "cluster": "Kubernetes", + "isAmbient": false, + "labels": { + "istio-injection": "enabled", + "kubernetes.io/metadata.name": "travel-agency" + }, + "annotations": null + }, + "name": "cars", + "cluster": "Kubernetes", + "workloads": [ + { + "workloadName": "cars-v1", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "cars", + "version": "v1" + }, + "serviceAccountNames": ["default"] + } + ], + "serviceNames": ["cars"], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "health": { + "workloadStatuses": [ + { + "name": "cars-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": { + "http": { + "200": 0.2666666666666666 + } + }, + "outbound": { + "http": { + "200": 0.2666666666666666 + } + }, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/apps/discounts.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/apps/discounts.json new file mode 100644 index 0000000000..64916636f4 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/apps/discounts.json @@ -0,0 +1,58 @@ +{ + "namespace": { + "name": "travel-agency", + "cluster": "Kubernetes", + "isAmbient": false, + "labels": { + "istio-injection": "enabled", + "kubernetes.io/metadata.name": "travel-agency" + }, + "annotations": null + }, + "name": "discounts", + "cluster": "Kubernetes", + "workloads": [ + { + "workloadName": "discounts-v1", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "discounts", + "version": "v1" + }, + "serviceAccountNames": ["default"] + } + ], + "serviceNames": ["discounts"], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "health": { + "workloadStatuses": [ + { + "name": "discounts-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": { + "http": { + "200": 1.333333333333333 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/apps/flights.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/apps/flights.json new file mode 100644 index 0000000000..2f7c95f664 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/apps/flights.json @@ -0,0 +1,62 @@ +{ + "namespace": { + "name": "travel-agency", + "cluster": "Kubernetes", + "isAmbient": false, + "labels": { + "istio-injection": "enabled", + "kubernetes.io/metadata.name": "travel-agency" + }, + "annotations": null + }, + "name": "flights", + "cluster": "Kubernetes", + "workloads": [ + { + "workloadName": "flights-v1", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "flights", + "version": "v1" + }, + "serviceAccountNames": ["default"] + } + ], + "serviceNames": ["flights"], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "health": { + "workloadStatuses": [ + { + "name": "flights-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": { + "http": { + "200": 0.2666666666666666 + } + }, + "outbound": { + "http": { + "200": 0.2666666666666666 + } + }, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/apps/hotels.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/apps/hotels.json new file mode 100644 index 0000000000..4cee4ad274 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/apps/hotels.json @@ -0,0 +1,62 @@ +{ + "namespace": { + "name": "travel-agency", + "cluster": "Kubernetes", + "isAmbient": false, + "labels": { + "istio-injection": "enabled", + "kubernetes.io/metadata.name": "travel-agency" + }, + "annotations": null + }, + "name": "hotels", + "cluster": "Kubernetes", + "workloads": [ + { + "workloadName": "hotels-v1", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "hotels", + "version": "v1" + }, + "serviceAccountNames": ["default"] + } + ], + "serviceNames": ["hotels"], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "health": { + "workloadStatuses": [ + { + "name": "hotels-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": { + "http": { + "200": 0.8000711174326607 + } + }, + "outbound": { + "http": { + "200": 0.39999999999999997 + } + }, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/apps/insurances.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/apps/insurances.json new file mode 100644 index 0000000000..28f3c4b8e5 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/apps/insurances.json @@ -0,0 +1,62 @@ +{ + "namespace": { + "name": "travel-agency", + "cluster": "Kubernetes", + "isAmbient": false, + "labels": { + "istio-injection": "enabled", + "kubernetes.io/metadata.name": "travel-agency" + }, + "annotations": null + }, + "name": "insurances", + "cluster": "Kubernetes", + "workloads": [ + { + "workloadName": "insurances-v1", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "insurances", + "version": "v1" + }, + "serviceAccountNames": ["default"] + } + ], + "serviceNames": ["insurances"], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "health": { + "workloadStatuses": [ + { + "name": "insurances-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": { + "http": { + "200": 0.39999999999999997 + } + }, + "outbound": { + "http": { + "200": 0.39999999999999997 + } + }, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/apps/mysqldb.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/apps/mysqldb.json new file mode 100644 index 0000000000..b1834c5c87 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/apps/mysqldb.json @@ -0,0 +1,54 @@ +{ + "namespace": { + "name": "travel-agency", + "cluster": "Kubernetes", + "isAmbient": false, + "labels": { + "istio-injection": "enabled", + "kubernetes.io/metadata.name": "travel-agency" + }, + "annotations": null + }, + "name": "mysqldb", + "cluster": "Kubernetes", + "workloads": [ + { + "workloadName": "mysqldb-v1", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "mysqldb", + "version": "v1" + }, + "serviceAccountNames": ["default"] + } + ], + "serviceNames": ["mysqldb"], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "health": { + "workloadStatuses": [ + { + "name": "mysqldb-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/apps/travels.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/apps/travels.json new file mode 100644 index 0000000000..4cf37680c7 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/apps/travels.json @@ -0,0 +1,62 @@ +{ + "namespace": { + "name": "travel-agency", + "cluster": "Kubernetes", + "isAmbient": false, + "labels": { + "istio-injection": "enabled", + "kubernetes.io/metadata.name": "travel-agency" + }, + "annotations": null + }, + "name": "travels", + "cluster": "Kubernetes", + "workloads": [ + { + "workloadName": "travels-v1", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "travels", + "version": "v1" + }, + "serviceAccountNames": ["default"] + } + ], + "serviceNames": ["travels"], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "health": { + "workloadStatuses": [ + { + "name": "travels-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": { + "http": { + "200": 0.7999999999999998 + } + }, + "outbound": { + "http": { + "200": 1.733333333333333 + } + }, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/dashboard.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/dashboard.json new file mode 100644 index 0000000000..75e746ecd6 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/dashboard.json @@ -0,0 +1,158 @@ +{ + "name": "", + "title": "Inbound Metrics", + "charts": [ + { + "name": "Request volume", + "unit": "ops", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "Request duration", + "unit": "seconds", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "Request size", + "unit": "bytes", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "Response size", + "unit": "bytes", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "Request throughput", + "unit": "bitrate", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "Response throughput", + "unit": "bitrate", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "gRPC received", + "unit": "msgrate", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "gRPC sent", + "unit": "msgrate", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "TCP opened", + "unit": "connrate", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "TCP closed", + "unit": "connrate", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "TCP received", + "unit": "bitrate", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "TCP sent", + "unit": "bitrate", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + } + ], + "aggregations": [ + { + "label": "destination_canonical_revision", + "displayName": "Local version", + "singleSelection": false + }, + { + "label": "source_workload_namespace", + "displayName": "Remote namespace", + "singleSelection": false + }, + { + "label": "source_canonical_service", + "displayName": "Remote app", + "singleSelection": false + }, + { + "label": "source_canonical_revision", + "displayName": "Remote version", + "singleSelection": false + }, + { + "label": "response_code", + "displayName": "Response code", + "singleSelection": false + }, + { + "label": "grpc_response_status", + "displayName": "GRPC status", + "singleSelection": false + }, + { + "label": "response_flags", + "displayName": "Response flags", + "singleSelection": false + }, + { + "label": "connection_security_policy", + "displayName": "Connection Security Policy", + "singleSelection": false + } + ], + "externalLinks": null, + "rows": 3 +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/health/app.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/health/app.json new file mode 100644 index 0000000000..a73a7af661 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/health/app.json @@ -0,0 +1,172 @@ +{ + "cars": { + "workloadStatuses": [ + { + "name": "cars-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": { + "http": { + "200": 0.26322191455252564 + } + }, + "outbound": { + "http": { + "200": 0.2649572649572649 + } + }, + "healthAnnotations": {} + } + }, + "discounts": { + "workloadStatuses": [ + { + "name": "discounts-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": { + "http": { + "200": 1.3299145299145296 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + }, + "flights": { + "workloadStatuses": [ + { + "name": "flights-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 0 + } + ], + "requests": { + "inbound": { + "http": { + "200": 0.2653657058650162 + } + }, + "outbound": { + "http": { + "200": 0.2666666666666666 + } + }, + "healthAnnotations": {} + } + }, + "hotels": { + "workloadStatuses": [ + { + "name": "hotels-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": { + "http": { + "200": 0.7991927774830533 + } + }, + "outbound": { + "http": { + "200": 0.39829059829059826 + } + }, + "healthAnnotations": {} + } + }, + "insurances": { + "workloadStatuses": [ + { + "name": "insurances-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": { + "http": { + "200": 0.39883943943412903 + } + }, + "outbound": { + "http": { + "200": 0.39999999999999997 + } + }, + "healthAnnotations": {} + } + }, + "mysqldb": { + "workloadStatuses": [ + { + "name": "mysqldb-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "travels": { + "workloadStatuses": [ + { + "name": "travels-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + { + "name": "travels-v2", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + { + "name": "travels-v3", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": { + "http": { + "200": 0.7942120752085292 + } + }, + "outbound": { + "http": { + "200": 1.9840915760326658 + } + }, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/health/service.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/health/service.json new file mode 100644 index 0000000000..338f0ad2c2 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/health/service.json @@ -0,0 +1,75 @@ +{ + "cars": { + "requests": { + "inbound": { + "http": { + "200": 0.260085535042735 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + }, + "discounts": { + "requests": { + "inbound": { + "http": { + "200": 1.3299145299145296 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + }, + "flights": { + "requests": { + "inbound": { + "http": { + "200": 0.26561828319088315 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + }, + "hotels": { + "requests": { + "inbound": { + "http": { + "200": 0.7984701908831908 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + }, + "insurances": { + "requests": { + "inbound": { + "http": { + "200": 0.3991372467236467 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + }, + "mysqldb": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "travels": { + "requests": { + "inbound": { + "http": { + "200": 0.793200482030932 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/health/workload.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/health/workload.json new file mode 100644 index 0000000000..1b21415624 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/health/workload.json @@ -0,0 +1,188 @@ +{ + "cars-v1": { + "workloadStatus": { + "name": "cars-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": { + "http": { + "200": 0.2600759354226021 + } + }, + "outbound": { + "http": { + "200": 0.2649572649572649 + } + }, + "healthAnnotations": {} + } + }, + "discounts-v1": { + "workloadStatus": { + "name": "discounts-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": { + "http": { + "200": 1.3299145299145296 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + }, + "flights-v1": { + "workloadStatus": { + "name": "flights-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": { + "http": { + "200": 0.2656132557771446 + } + }, + "outbound": { + "http": { + "200": 0.2666666666666666 + } + }, + "healthAnnotations": {} + } + }, + "hotels-v1": { + "workloadStatus": { + "name": "hotels-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": { + "http": { + "200": 0.7984947065527065 + } + }, + "outbound": { + "http": { + "200": 0.39829059829059826 + } + }, + "healthAnnotations": {} + } + }, + "insurances-v1": { + "workloadStatus": { + "name": "insurances-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": { + "http": { + "200": 0.3991459420702754 + } + }, + "outbound": { + "http": { + "200": 0.39999999999999997 + } + }, + "healthAnnotations": {} + } + }, + "mysqldb-v1": { + "workloadStatus": { + "name": "mysqldb-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "travels-v1": { + "workloadStatus": { + "name": "travels-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": { + "http": { + "200": 0.49743589743589733 + } + }, + "outbound": { + "http": { + "200": 1.1008547008547007 + } + }, + "healthAnnotations": {} + } + }, + "travels-v2": { + "workloadStatus": { + "name": "travels-v2", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": { + "http": { + "200": 0.1514719596391263 + } + }, + "outbound": { + "http": { + "200": 0.32564116856600195 + } + }, + "healthAnnotations": {} + } + }, + "travels-v3": { + "workloadStatus": { + "name": "travels-v3", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": { + "http": { + "200": 0.1476955061728395 + } + }, + "outbound": { + "http": { + "200": 0.29358963325102877 + } + }, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/istio_config.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/istio_config.json new file mode 100644 index 0000000000..fc5f992b73 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/istio_config.json @@ -0,0 +1,29 @@ +{ + "namespace": { + "name": "travel-agency", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "destinationRules": [], + "envoyFilters": [], + "gateways": [], + "serviceEntries": [], + "sidecars": [], + "virtualServices": [], + "workloadEntries": [], + "workloadGroups": [], + "wasmPlugins": [], + "telemetries": [], + "k8sGateways": [], + "k8sGRPCRoutes": [], + "k8sHTTPRoutes": [], + "k8sReferenceGrants": [], + "k8sTCPRoutes": [], + "k8sTLSRoutes": [], + "authorizationPolicies": [], + "peerAuthentications": [], + "requestAuthentications": [], + "validations": {} +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/inbound/metrics_inbound_120.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/inbound/metrics_inbound_120.json new file mode 100644 index 0000000000..ddf90f9504 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/inbound/metrics_inbound_120.json @@ -0,0 +1,28 @@ +{ + "request_count": [ + { + "labels": {}, + "datapoints": [ + [1697024130, "3.933244474064202"], + [1697024160, "3.800053774557242"], + [1697024190, "3.8666666666666685"], + [1697024220, "3.9334756314478847"], + [1697024250, "3.800000000000001"] + ], + "name": "request_count" + } + ], + "request_error_count": [ + { + "labels": {}, + "datapoints": [ + [1697024130, "0"], + [1697024160, "0"], + [1697024190, "0"], + [1697024220, "0"], + [1697024250, "0"] + ], + "name": "request_error_count" + } + ] +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/inbound/metrics_inbound_1800.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/inbound/metrics_inbound_1800.json new file mode 100644 index 0000000000..8909e1ecf8 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/inbound/metrics_inbound_1800.json @@ -0,0 +1,40 @@ +{ + "request_count": [ + { + "labels": {}, + "datapoints": [ + [1697022360, "3.872727272727272"], + [1697022540, "3.8545359783060222"], + [1697022720, "3.8545454545454536"], + [1697022900, "3.8424242424242423"], + [1697023080, "3.8849503289542557"], + [1697023260, "3.872730798962184"], + [1697023440, "3.866666666666666"], + [1697023620, "3.8787878787878785"], + [1697023800, "3.7999692964648504"], + [1697023980, "3.866666666666666"], + [1697024160, "3.8545352074830523"] + ], + "name": "request_count" + } + ], + "request_error_count": [ + { + "labels": {}, + "datapoints": [ + [1697022360, "0"], + [1697022540, "0"], + [1697022720, "0"], + [1697022900, "0"], + [1697023080, "0"], + [1697023260, "0"], + [1697023440, "0"], + [1697023620, "0"], + [1697023800, "0"], + [1697023980, "0"], + [1697024160, "0"] + ], + "name": "request_error_count" + } + ] +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/inbound/metrics_inbound_300.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/inbound/metrics_inbound_300.json new file mode 100644 index 0000000000..67504e1639 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/inbound/metrics_inbound_300.json @@ -0,0 +1,40 @@ +{ + "request_count": [ + { + "labels": {}, + "datapoints": [ + [1697023950, "3.8000000000000007"], + [1697023980, "3.8000000000000016"], + [1697024010, "3.799946691548685"], + [1697024040, "3.933386677335468"], + [1697024070, "3.8000000000000016"], + [1697024100, "3.866729028197065"], + [1697024130, "3.933244474064202"], + [1697024160, "3.800053774557242"], + [1697024190, "3.8666666666666685"], + [1697024220, "3.9334756314478847"], + [1697024250, "3.800000000000001"] + ], + "name": "request_count" + } + ], + "request_error_count": [ + { + "labels": {}, + "datapoints": [ + [1697023950, "0"], + [1697023980, "0"], + [1697024010, "0"], + [1697024040, "0"], + [1697024070, "0"], + [1697024100, "0"], + [1697024130, "0"], + [1697024160, "0"], + [1697024190, "0"], + [1697024220, "0"], + [1697024250, "0"] + ], + "name": "request_error_count" + } + ] +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/inbound/metrics_inbound_3600.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/inbound/metrics_inbound_3600.json new file mode 100644 index 0000000000..936ede0342 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/inbound/metrics_inbound_3600.json @@ -0,0 +1,34 @@ +{ + "request_count": [ + { + "labels": {}, + "datapoints": [ + [1697021640, "2.741467670887799"], + [1697022000, "3.8637681159420296"], + [1697022360, "3.886961159447176"], + [1697022720, "3.852173913043479"], + [1697023080, "3.87536231884058"], + [1697023440, "3.8695668557168306"], + [1697023800, "3.831869372789426"], + [1697024160, "3.8637611596017596"] + ], + "name": "request_count" + } + ], + "request_error_count": [ + { + "labels": {}, + "datapoints": [ + [1697021640, "0"], + [1697022000, "0"], + [1697022360, "0"], + [1697022720, "0"], + [1697023080, "0"], + [1697023440, "0"], + [1697023800, "0"], + [1697024160, "0"] + ], + "name": "request_error_count" + } + ] +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/inbound/metrics_inbound_60.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/inbound/metrics_inbound_60.json new file mode 100644 index 0000000000..ef4e583f44 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/inbound/metrics_inbound_60.json @@ -0,0 +1,24 @@ +{ + "request_count": [ + { + "labels": {}, + "datapoints": [ + [1697024190, "3.8666666666666685"], + [1697024220, "3.9334756314478847"], + [1697024250, "3.800000000000001"] + ], + "name": "request_count" + } + ], + "request_error_count": [ + { + "labels": {}, + "datapoints": [ + [1697024190, "0"], + [1697024220, "0"], + [1697024250, "0"] + ], + "name": "request_error_count" + } + ] +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/inbound/metrics_inbound_600.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/inbound/metrics_inbound_600.json new file mode 100644 index 0000000000..f626ff6190 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/inbound/metrics_inbound_600.json @@ -0,0 +1,216 @@ +{ + "grpc_received": null, + "grpc_sent": null, + "request_count": [ + { + "labels": {}, + "datapoints": [ + [1697023620, "3.9333333333333322"], + [1697023680, "3.8444444444444428"], + [1697023740, "3.844444444444443"], + [1697023800, "3.6443941298905074"], + [1697023860, "3.911016329996248"], + [1697023920, "3.844444444444443"], + [1697023980, "3.8444444444444446"], + [1697024040, "3.844454815506219"], + [1697024100, "3.8666222273573743"], + [1697024160, "3.8666133439978667"], + [1697024220, "3.86663111585122"] + ], + "name": "request_count" + } + ], + "request_duration_millis": [ + { + "labels": {}, + "datapoints": [ + [1697023620, "6.566379310344839"], + [1697023680, "6.0295977011493616"], + [1697023740, "5.244848484848487"], + [1697023800, "5.478065206312723"], + [1697023860, "5.412254385266055"], + [1697023920, "5.532183908045853"], + [1697023980, "4.92413793103454"], + [1697024040, "6.368985326269782"], + [1697024100, "7.1145999315657855"], + [1697024160, "5.6739383767877145"], + [1697024220, "5.092213150551359"] + ], + "stat": "avg", + "name": "request_duration_millis" + } + ], + "request_error_count": [ + { + "labels": {}, + "datapoints": [ + [1697023620, "0"], + [1697023680, "0"], + [1697023740, "0"], + [1697023800, "0"], + [1697023860, "0"], + [1697023920, "0"], + [1697023980, "0"], + [1697024040, "0"], + [1697024100, "0"], + [1697024160, "0"], + [1697024220, "0"] + ], + "name": "request_error_count" + } + ], + "request_size": [ + { + "labels": {}, + "datapoints": [ + [1697023620, "1366.0919540229886"], + [1697023680, "1366.666666666667"], + [1697023740, "1360.3030303030305"], + [1697023800, "1365.3831644528366"], + [1697023860, "1364.942895021214"], + [1697023920, "1364.9425287356325"], + [1697023980, "1364.367816091954"], + [1697024040, "1365.5168872809536"], + [1697024100, "1364.3682110995646"], + [1697024160, "1365.607152888307"], + [1697024220, "1364.9426661211412"] + ], + "stat": "avg", + "name": "request_size" + } + ], + "request_throughput": [ + { + "labels": {}, + "datapoints": [ + [1697023620, "5282.222222222221"], + [1697023680, "5284.444444444443"], + [1697023740, "4987.7777777777765"], + [1697023800, "5127.703630078002"], + [1697023860, "5277.649823272713"], + [1697023920, "5277.777777777778"], + [1697023980, "5275.555555555556"], + [1697024040, "5280.014815802535"], + [1697024100, "5275.496451337396"], + [1697024160, "5249.928014397122"], + [1697024220, "5277.729784176925"] + ], + "name": "request_throughput" + } + ], + "response_size": [ + { + "labels": {}, + "datapoints": [ + [1697023620, "1598.275862068966"], + [1697023680, "1598.2758620689665"], + [1697023740, "1628.1818181818187"], + [1697023800, "1572.5156425114612"], + [1697023860, "1598.289301932234"], + [1697023920, "1598.2758620689658"], + [1697023980, "1598.2758620689654"], + [1697024040, "1598.2777065514515"], + [1697024100, "1598.278817440177"], + [1697024160, "1600.8746926872575"], + [1697024220, "1598.2809030603103"] + ], + "stat": "avg", + "name": "response_size" + } + ], + "response_throughput": [ + { + "labels": {}, + "datapoints": [ + [1697023620, "6180"], + [1697023680, "6180.000000000001"], + [1697023740, "5969.999999999999"], + [1697023800, "5905.59073700882"], + [1697023860, "6179.900479829393"], + [1697023920, "6180"], + [1697023980, "6180"], + [1697024040, "6180.026075812462"], + [1697024100, "6179.940401028648"], + [1697024160, "6154.388455642205"], + [1697024220, "6179.962671643781"] + ], + "name": "response_throughput" + } + ], + "tcp_closed": [ + { + "labels": {}, + "datapoints": [ + [1697023620, "1.733333333333333"], + [1697023680, "1.733333333333333"], + [1697023740, "1.733333333333333"], + [1697023800, "1.733333333333333"], + [1697023860, "1.733333333333333"], + [1697023920, "1.733333333333333"], + [1697023980, "1.733333333333333"], + [1697024040, "1.733333333333333"], + [1697024100, "1.733333333333333"], + [1697024160, "1.733333333333333"], + [1697024220, "1.733333333333333"] + ], + "name": "tcp_closed" + } + ], + "tcp_opened": [ + { + "labels": {}, + "datapoints": [ + [1697023620, "1.733333333333333"], + [1697023680, "1.733333333333333"], + [1697023740, "1.733333333333333"], + [1697023800, "1.733333333333333"], + [1697023860, "1.733333333333333"], + [1697023920, "1.733333333333333"], + [1697023980, "1.733333333333333"], + [1697024040, "1.733333333333333"], + [1697024100, "1.733333333333333"], + [1697024160, "1.733333333333333"], + [1697024220, "1.733333333333333"] + ], + "name": "tcp_opened" + } + ], + "tcp_received": [ + { + "labels": {}, + "datapoints": [ + [1697023620, "957.5999999999998"], + [1697023680, "958.2888888888888"], + [1697023740, "957.6222222222221"], + [1697023800, "958.1555555555556"], + [1697023860, "957.3999999999999"], + [1697023920, "957.4444444444443"], + [1697023980, "957.2444444444443"], + [1697024040, "958.2444444444443"], + [1697024100, "957.511111111111"], + [1697024160, "958.1333333333333"], + [1697024220, "957.3333333333333"] + ], + "name": "tcp_received" + } + ], + "tcp_sent": [ + { + "labels": {}, + "datapoints": [ + [1697023620, "324.9555555555555"], + [1697023680, "326.1333333333333"], + [1697023740, "325.17777777777775"], + [1697023800, "326.1111111111111"], + [1697023860, "324.75555555555553"], + [1697023920, "324.66666666666663"], + [1697023980, "324.3555555555555"], + [1697024040, "326.0222222222222"], + [1697024100, "324.66666666666663"], + [1697024160, "325.99999999999994"], + [1697024220, "324.7777777777777"] + ], + "name": "tcp_sent" + } + ] +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/index.ts b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/index.ts new file mode 100644 index 0000000000..a3930117bb --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/index.ts @@ -0,0 +1,51 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ + +import inbound60 from './inbound/metrics_inbound_60.json'; +import inbound120 from './inbound/metrics_inbound_120.json'; +import inbound300 from './inbound/metrics_inbound_300.json'; +import inbound600 from './inbound/metrics_inbound_600.json'; +import inbound1800 from './inbound/metrics_inbound_1800.json'; +import inbound3600 from './inbound/metrics_inbound_3600.json'; +/* Outbound Metrics */ + +import outbound60 from './outbound/metrics_outbound_60.json'; +import outbound120 from './outbound/metrics_outbound_120.json'; +import outbound300 from './outbound/metrics_outbound_300.json'; +import outbound600 from './outbound/metrics_outbound_600.json'; +import outbound1800 from './outbound/metrics_outbound_1800.json'; +import outbound3600 from './outbound/metrics_outbound_3600.json'; + +export const travelAgencyMetrics = { + inbound: { + 60: inbound60, + 120: inbound120, + 300: inbound300, + 600: inbound600, + 1800: inbound1800, + 3600: inbound3600, + }, + outbound: { + 60: outbound60, + 120: outbound120, + 300: outbound300, + 600: outbound600, + 1800: outbound1800, + 3600: outbound3600, + }, +}; + +export default travelAgencyMetrics; diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/outbound/metrics_outbound_120.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/outbound/metrics_outbound_120.json new file mode 100644 index 0000000000..1084dd865d --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/outbound/metrics_outbound_120.json @@ -0,0 +1,16 @@ +{ + "request_count": [ + { + "labels": {}, + "datapoints": [ + [1697024190, "3.0666666666666673"], + [1697024220, "3.1334756314478835"], + [1697024250, "3.0000000000000004"], + [1697024280, "3.0666666666666673"], + [1697024310, "3.13326224118013"] + ], + "name": "request_count" + } + ], + "request_error_count": null +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/outbound/metrics_outbound_1800.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/outbound/metrics_outbound_1800.json new file mode 100644 index 0000000000..240a8b90d2 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/outbound/metrics_outbound_1800.json @@ -0,0 +1,22 @@ +{ + "request_count": [ + { + "labels": {}, + "datapoints": [ + [1697022360, "3.0727272727272723"], + [1697022540, "3.0545359783060224"], + [1697022720, "3.072727272727272"], + [1697022900, "3.0484848484848484"], + [1697023080, "3.0728291168330446"], + [1697023260, "3.072727272727272"], + [1697023440, "3.0727272727272723"], + [1697023620, "3.0606060606060606"], + [1697023800, "2.9999692964648506"], + [1697023980, "3.0606060606060597"], + [1697024160, "3.0605915159448593"] + ], + "name": "request_count" + } + ], + "request_error_count": null +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/outbound/metrics_outbound_300.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/outbound/metrics_outbound_300.json new file mode 100644 index 0000000000..e4e25a85d0 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/outbound/metrics_outbound_300.json @@ -0,0 +1,22 @@ +{ + "request_count": [ + { + "labels": {}, + "datapoints": [ + [1697024010, "3.0666000222148173"], + [1697024040, "3.1333866773354675"], + [1697024070, "3.0000000000000004"], + [1697024100, "3.0666756171822707"], + [1697024130, "3.133244474064201"], + [1697024160, "3.000053774557241"], + [1697024190, "3.0666666666666673"], + [1697024220, "3.1334756314478835"], + [1697024250, "3.0000000000000004"], + [1697024280, "3.0666666666666673"], + [1697024310, "3.13326224118013"] + ], + "name": "request_count" + } + ], + "request_error_count": null +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/outbound/metrics_outbound_3600.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/outbound/metrics_outbound_3600.json new file mode 100644 index 0000000000..2c501bbf59 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/outbound/metrics_outbound_3600.json @@ -0,0 +1,19 @@ +{ + "request_count": [ + { + "labels": {}, + "datapoints": [ + [1697021640, "2.1670810770697164"], + [1697022000, "3.069565217391305"], + [1697022360, "3.0869611594471746"], + [1697022720, "3.0608695652173914"], + [1697023080, "3.069565217391305"], + [1697023440, "3.0695652173913044"], + [1697023800, "3.0318693727894255"], + [1697024160, "3.0637611596017598"] + ], + "name": "request_count" + } + ], + "request_error_count": null +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/outbound/metrics_outbound_60.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/outbound/metrics_outbound_60.json new file mode 100644 index 0000000000..0f2af383be --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/outbound/metrics_outbound_60.json @@ -0,0 +1,14 @@ +{ + "request_count": [ + { + "labels": {}, + "datapoints": [ + [1697024250, "3.0000000000000004"], + [1697024280, "3.0666666666666673"], + [1697024310, "3.13326224118013"] + ], + "name": "request_count" + } + ], + "request_error_count": null +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/outbound/metrics_outbound_600.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/outbound/metrics_outbound_600.json new file mode 100644 index 0000000000..f768e774be --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/metrics/outbound/metrics_outbound_600.json @@ -0,0 +1,198 @@ +{ + "grpc_received": null, + "grpc_sent": null, + "request_count": [ + { + "labels": {}, + "datapoints": [ + [1697023680, "3.066666666666666"], + [1697023740, "3.0666666666666664"], + [1697023800, "2.822109677148661"], + [1697023860, "3.0665718855518036"], + [1697023920, "3.066666666666666"], + [1697023980, "3.0666666666666664"], + [1697024040, "3.0666666666666664"], + [1697024100, "3.0666311158512194"], + [1697024160, "3.066613343997867"], + [1697024220, "3.0666311158512203"], + [1697024280, "3.066666666666667"] + ], + "name": "request_count" + } + ], + "request_duration_millis": [ + { + "labels": {}, + "datapoints": [ + [1697023680, "4.850362318840522"], + [1697023740, "4.438372093023219"], + [1697023800, "4.504722864182922"], + [1697023860, "4.575570249658066"], + [1697023920, "4.5568840579709216"], + [1697023980, "4.083333333333391"], + [1697024040, "5.183333333333363"], + [1697024100, "6.056815740306035"], + [1697024160, "4.519259624156209"], + [1697024220, "4.197780125318008"], + [1697024280, "3.9851449275362336"] + ], + "stat": "avg", + "name": "request_duration_millis" + } + ], + "request_error_count": null, + "request_size": [ + { + "labels": {}, + "datapoints": [ + [1697023680, "1397.1014492753623"], + [1697023740, "1391.0852713178294"], + [1697023800, "1396.6183165397285"], + [1697023860, "1394.9289248450104"], + [1697023920, "1394.927536231884"], + [1697023980, "1394.2028985507245"], + [1697024040, "1395.6521739130435"], + [1697024100, "1394.2034109857157"], + [1697024160, "1395.9862068965522"], + [1697024220, "1394.9280570674496"], + [1697024280, "1395.6521739130435"] + ], + "stat": "avg", + "name": "request_size" + } + ], + "request_throughput": [ + { + "labels": {}, + "datapoints": [ + [1697023680, "4284.444444444443"], + [1697023740, "3987.7777777777774"], + [1697023800, "4127.6258419284695"], + [1697023860, "4277.649823272714"], + [1697023920, "4277.777777777777"], + [1697023980, "4275.555555555556"], + [1697024040, "4280"], + [1697024100, "4275.507561954702"], + [1697024160, "4249.928014397121"], + [1697024220, "4277.729784176925"], + [1697024280, "4279.999999999999"] + ], + "name": "request_throughput" + } + ], + "response_size": [ + { + "labels": {}, + "datapoints": [ + [1697023680, "1384.7826086956525"], + [1697023740, "1408.139534883721"], + [1697023800, "1343.996157532804"], + [1697023860, "1384.7929561031394"], + [1697023920, "1384.782608695652"], + [1697023980, "1384.7826086956522"], + [1697024040, "1384.7826086956527"], + [1697024100, "1384.7864897606667"], + [1697024160, "1386.5022441160374"], + [1697024220, "1384.7864897606673"], + [1697024280, "1384.7826086956522"] + ], + "stat": "avg", + "name": "response_size" + } + ], + "response_throughput": [ + { + "labels": {}, + "datapoints": [ + [1697023680, "4246.666666666667"], + [1697023740, "4036.666666666666"], + [1697023800, "3972.1040498949824"], + [1697023860, "4246.567146496061"], + [1697023920, "4246.666666666666"], + [1697023980, "4246.666666666667"], + [1697024040, "4246.666666666668"], + [1697024100, "4246.629338310448"], + [1697024160, "4221.055122308871"], + [1697024220, "4246.629338310448"], + [1697024280, "4246.666666666666"] + ], + "name": "response_throughput" + } + ], + "tcp_closed": [ + { + "labels": {}, + "datapoints": [ + [1697023680, "1.733333333333333"], + [1697023740, "1.733333333333333"], + [1697023800, "1.733333333333333"], + [1697023860, "1.733333333333333"], + [1697023920, "1.733333333333333"], + [1697023980, "1.733333333333333"], + [1697024040, "1.733333333333333"], + [1697024100, "1.733333333333333"], + [1697024160, "1.733333333333333"], + [1697024220, "1.733333333333333"], + [1697024280, "1.733333333333333"] + ], + "name": "tcp_closed" + } + ], + "tcp_opened": [ + { + "labels": {}, + "datapoints": [ + [1697023680, "1.733333333333333"], + [1697023740, "1.733333333333333"], + [1697023800, "1.733333333333333"], + [1697023860, "1.733333333333333"], + [1697023920, "1.733333333333333"], + [1697023980, "1.733333333333333"], + [1697024040, "1.733333333333333"], + [1697024100, "1.733333333333333"], + [1697024160, "1.733333333333333"], + [1697024220, "1.733333333333333"], + [1697024280, "1.733333333333333"] + ], + "name": "tcp_opened" + } + ], + "tcp_received": [ + { + "labels": {}, + "datapoints": [ + [1697023680, "958.2888888888888"], + [1697023740, "957.6222222222221"], + [1697023800, "958.1555555555556"], + [1697023860, "957.3999999999999"], + [1697023920, "957.4444444444443"], + [1697023980, "957.2444444444443"], + [1697024040, "958.2444444444443"], + [1697024100, "957.511111111111"], + [1697024160, "958.1333333333333"], + [1697024220, "957.3333333333333"], + [1697024280, "957.7555555555554"] + ], + "name": "tcp_received" + } + ], + "tcp_sent": [ + { + "labels": {}, + "datapoints": [ + [1697023680, "326.1333333333333"], + [1697023740, "325.17777777777775"], + [1697023800, "326.1111111111111"], + [1697023860, "324.75555555555553"], + [1697023920, "324.66666666666663"], + [1697023980, "324.3555555555555"], + [1697024040, "326.0222222222222"], + [1697024100, "324.66666666666663"], + [1697024160, "325.99999999999994"], + [1697024220, "324.7777777777777"], + [1697024280, "325.26666666666665"] + ], + "name": "tcp_sent" + } + ] +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/services.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/services.json new file mode 100644 index 0000000000..d2ef8f57ec --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/services.json @@ -0,0 +1,272 @@ +{ + "namespace": { + "name": "travel-agency", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "services": [ + { + "name": "insurances", + "namespace": "travel-agency", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "insurances" + }, + "selector": { + "app": "insurances" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "travels", + "namespace": "travel-agency", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "travels" + }, + "selector": { + "app": "travels" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "mysqldb", + "namespace": "travel-agency", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "mysqldb" + }, + "selector": { + "app": "mysqldb" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "cars", + "namespace": "travel-agency", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "cars" + }, + "selector": { + "app": "cars" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "discounts", + "namespace": "travel-agency", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "discounts" + }, + "selector": { + "app": "discounts" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": { + "http": { + "200": 0.22438000000000002 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "flights", + "namespace": "travel-agency", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "flights" + }, + "selector": { + "app": "flights" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": { + "http": { + "200": 0.08368666666666667 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "hotels", + "namespace": "travel-agency", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "hotels" + }, + "selector": { + "app": "hotels" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": { + "http": { + "200": 0.2813866666666667 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + } + } + ], + "validations": { + "service": { + "cars.travel-agency": { + "name": "cars", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + }, + "discounts.travel-agency": { + "name": "discounts", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + }, + "flights.travel-agency": { + "name": "flights", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + }, + "hotels.travel-agency": { + "name": "hotels", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + }, + "insurances.travel-agency": { + "name": "insurances", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + }, + "mysqldb.travel-agency": { + "name": "mysqldb", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + }, + "travels.travel-agency": { + "name": "travels", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + } + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/services/cars.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/services/cars.json new file mode 100644 index 0000000000..fd74ee72a1 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/services/cars.json @@ -0,0 +1,351 @@ +{ + "cluster": "Kubernetes", + "destinationRules": [], + "endpoints": [ + { + "addresses": [ + { + "kind": "Pod", + "name": "cars-v1-6c869ff769-whw74", + "ip": "10.244.0.38", + "port": 0 + } + ], + "ports": [ + { + "name": "http", + "protocol": "TCP", + "port": 8000 + } + ] + } + ], + "istioPermissions": { + "create": true, + "update": true, + "delete": true + }, + "istioSidecar": true, + "k8sHTTPRoutes": [], + "k8sReferenceGrants": null, + "service": { + "name": "cars", + "createdAt": "2024-02-27T13:11:51Z", + "resourceVersion": "53549", + "namespace": { + "name": "travel-agency", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "labels": { + "app": "cars" + }, + "selectors": { + "app": "cars" + }, + "type": "ClusterIP", + "ip": "10.101.236.172", + "ports": [ + { + "name": "http", + "protocol": "TCP", + "port": 8000 + } + ], + "externalName": "", + "annotations": { + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"cars\"},\"name\":\"cars\",\"namespace\":\"travel-agency\"},\"spec\":{\"ports\":[{\"name\":\"http\",\"port\":8000}],\"selector\":{\"app\":\"cars\"}}}\n" + }, + "healthAnnotations": {}, + "additionalDetails": [] + }, + "serviceEntries": null, + "virtualServices": [], + "workloads": [ + { + "name": "cars-v1", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-27T13:11:51Z", + "resourceVersion": "54007", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "cars", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"name\":\"cars-v1\",\"namespace\":\"travel-agency\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"cars\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"annotations\":{\"proxy.istio.io/config\":\"tracing:\\n zipkin:\\n address: zipkin.istio-system:9411\\n sampling: 10\\n custom_tags:\\n http.header.portal:\\n header:\\n name: portal\\n http.header.device:\\n header:\\n name: device\\n http.header.user:\\n header:\\n name: user\\n http.header.travel:\\n header:\\n name: travel\\n\",\"readiness.status.sidecar.istio.io/applicationPorts\":\"\"},\"labels\":{\"app\":\"cars\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"CURRENT_SERVICE\",\"value\":\"cars\"},{\"name\":\"CURRENT_VERSION\",\"value\":\"v1\"},{\"name\":\"LISTEN_ADDRESS\",\"value\":\":8000\"},{\"name\":\"DISCOUNTS_SERVICE\",\"value\":\"http://discounts.travel-agency:8000\"},{\"name\":\"MYSQL_SERVICE\",\"value\":\"mysqldb.travel-agency:3306\"},{\"name\":\"MYSQL_USER\",\"value\":\"root\"},{\"name\":\"MYSQL_PASSWORD\",\"valueFrom\":{\"secretKeyRef\":{\"key\":\"rootpasswd\",\"name\":\"mysql-credentials\"}}},{\"name\":\"MYSQL_DATABASE\",\"value\":\"test\"}],\"image\":\"quay.io/kiali/demo_travels_cars:v1\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"cars\",\"ports\":[{\"containerPort\":8000}],\"securityContext\":{\"allowPrivilegeEscalation\":false,\"capabilities\":{\"drop\":[\"ALL\"]},\"privileged\":false,\"readOnlyRootFilesystem\":true}}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["default"], + "health": { + "workloadStatus": null, + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "health": { + "requests": { + "inbound": { + "http": { + "200": 0.2666785190452909 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + }, + "namespaceMTLS": { + "status": "MTLS_NOT_ENABLED", + "autoMTLSEnabled": true, + "minTLS": "" + }, + "subServices": [ + { + "name": "cars", + "namespace": "", + "istioSidecar": false, + "cluster": "", + "istioAmbient": false, + "appLabel": false, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": null, + "ports": { + "http": 8000 + }, + "labels": null, + "selector": null, + "istioReferences": null, + "kialiWizard": "", + "serviceRegistry": "", + "health": { + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": true, + "checks": [], + "references": null + } + }, + "service": { + "cars.travel-agency": { + "name": "cars", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "cars-v1.travel-agency": { + "name": "cars-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "control.travel-control": { + "name": "control", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "details-v1.bookinfo": { + "name": "details-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "discounts-v1.travel-agency": { + "name": "discounts-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "flights-v1.travel-agency": { + "name": "flights-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "grafana.istio-system": { + "name": "grafana", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "hotels-v1.travel-agency": { + "name": "hotels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "insurances-v1.travel-agency": { + "name": "insurances-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-egressgateway.istio-system": { + "name": "istio-egressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-ingressgateway.istio-system": { + "name": "istio-ingressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istiod.istio-system": { + "name": "istiod", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "jaeger.istio-system": { + "name": "jaeger", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali-traffic-generator.bookinfo": { + "name": "kiali-traffic-generator", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali.istio-system": { + "name": "kiali", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "mysqldb-v1.travel-agency": { + "name": "mysqldb-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "productpage-v1.bookinfo": { + "name": "productpage-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "prometheus.istio-system": { + "name": "prometheus", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "ratings-v1.bookinfo": { + "name": "ratings-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v1.bookinfo": { + "name": "reviews-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v2.bookinfo": { + "name": "reviews-v2", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v3.bookinfo": { + "name": "reviews-v3", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels-v1.travel-agency": { + "name": "travels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels.travel-portal": { + "name": "travels", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "viaggi.travel-portal": { + "name": "viaggi", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "voyages.travel-portal": { + "name": "voyages", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/services/discounts.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/services/discounts.json new file mode 100644 index 0000000000..e8225edccc --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/services/discounts.json @@ -0,0 +1,351 @@ +{ + "cluster": "Kubernetes", + "destinationRules": [], + "endpoints": [ + { + "addresses": [ + { + "kind": "Pod", + "name": "discounts-v1-76f667c5db-6k77v", + "ip": "10.244.0.32", + "port": 0 + } + ], + "ports": [ + { + "name": "http", + "protocol": "TCP", + "port": 8000 + } + ] + } + ], + "istioPermissions": { + "create": true, + "update": true, + "delete": true + }, + "istioSidecar": true, + "k8sHTTPRoutes": [], + "k8sReferenceGrants": null, + "service": { + "name": "discounts", + "createdAt": "2024-02-27T13:11:51Z", + "resourceVersion": "53571", + "namespace": { + "name": "travel-agency", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "labels": { + "app": "discounts" + }, + "selectors": { + "app": "discounts" + }, + "type": "ClusterIP", + "ip": "10.110.234.254", + "ports": [ + { + "name": "http", + "protocol": "TCP", + "port": 8000 + } + ], + "externalName": "", + "annotations": { + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"discounts\"},\"name\":\"discounts\",\"namespace\":\"travel-agency\"},\"spec\":{\"ports\":[{\"name\":\"http\",\"port\":8000}],\"selector\":{\"app\":\"discounts\"}}}\n" + }, + "healthAnnotations": {}, + "additionalDetails": [] + }, + "serviceEntries": null, + "virtualServices": [], + "workloads": [ + { + "name": "discounts-v1", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-27T13:11:51Z", + "resourceVersion": "53820", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "discounts", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"name\":\"discounts-v1\",\"namespace\":\"travel-agency\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"discounts\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"annotations\":{\"proxy.istio.io/config\":\"tracing:\\n zipkin:\\n address: zipkin.istio-system:9411\\n sampling: 10\\n custom_tags:\\n http.header.portal:\\n header:\\n name: portal\\n http.header.device:\\n header:\\n name: device\\n http.header.user:\\n header:\\n name: user\\n http.header.travel:\\n header:\\n name: travel\\n\",\"readiness.status.sidecar.istio.io/applicationPorts\":\"\"},\"labels\":{\"app\":\"discounts\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"CURRENT_SERVICE\",\"value\":\"discounts\"},{\"name\":\"CURRENT_VERSION\",\"value\":\"v1\"},{\"name\":\"LISTEN_ADDRESS\",\"value\":\":8000\"}],\"image\":\"quay.io/kiali/demo_travels_discounts:v1\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"discounts\",\"ports\":[{\"containerPort\":8000}],\"securityContext\":{\"allowPrivilegeEscalation\":false,\"capabilities\":{\"drop\":[\"ALL\"]},\"privileged\":false,\"readOnlyRootFilesystem\":true}}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["default"], + "health": { + "workloadStatus": null, + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "health": { + "requests": { + "inbound": { + "http": { + "200": 1.333333333333333 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + }, + "namespaceMTLS": { + "status": "MTLS_NOT_ENABLED", + "autoMTLSEnabled": true, + "minTLS": "" + }, + "subServices": [ + { + "name": "discounts", + "namespace": "", + "istioSidecar": false, + "cluster": "", + "istioAmbient": false, + "appLabel": false, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": null, + "ports": { + "http": 8000 + }, + "labels": null, + "selector": null, + "istioReferences": null, + "kialiWizard": "", + "serviceRegistry": "", + "health": { + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": true, + "checks": [], + "references": null + } + }, + "service": { + "discounts.travel-agency": { + "name": "discounts", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "cars-v1.travel-agency": { + "name": "cars-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "control.travel-control": { + "name": "control", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "details-v1.bookinfo": { + "name": "details-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "discounts-v1.travel-agency": { + "name": "discounts-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "flights-v1.travel-agency": { + "name": "flights-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "grafana.istio-system": { + "name": "grafana", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "hotels-v1.travel-agency": { + "name": "hotels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "insurances-v1.travel-agency": { + "name": "insurances-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-egressgateway.istio-system": { + "name": "istio-egressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-ingressgateway.istio-system": { + "name": "istio-ingressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istiod.istio-system": { + "name": "istiod", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "jaeger.istio-system": { + "name": "jaeger", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali-traffic-generator.bookinfo": { + "name": "kiali-traffic-generator", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali.istio-system": { + "name": "kiali", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "mysqldb-v1.travel-agency": { + "name": "mysqldb-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "productpage-v1.bookinfo": { + "name": "productpage-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "prometheus.istio-system": { + "name": "prometheus", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "ratings-v1.bookinfo": { + "name": "ratings-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v1.bookinfo": { + "name": "reviews-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v2.bookinfo": { + "name": "reviews-v2", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v3.bookinfo": { + "name": "reviews-v3", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels-v1.travel-agency": { + "name": "travels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels.travel-portal": { + "name": "travels", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "viaggi.travel-portal": { + "name": "viaggi", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "voyages.travel-portal": { + "name": "voyages", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/services/flights.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/services/flights.json new file mode 100644 index 0000000000..5ed1d41356 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/services/flights.json @@ -0,0 +1,351 @@ +{ + "cluster": "Kubernetes", + "destinationRules": [], + "endpoints": [ + { + "addresses": [ + { + "kind": "Pod", + "name": "flights-v1-5c654b5b7f-mfnk9", + "ip": "10.244.0.33", + "port": 0 + } + ], + "ports": [ + { + "name": "http", + "protocol": "TCP", + "port": 8000 + } + ] + } + ], + "istioPermissions": { + "create": true, + "update": true, + "delete": true + }, + "istioSidecar": true, + "k8sHTTPRoutes": [], + "k8sReferenceGrants": null, + "service": { + "name": "flights", + "createdAt": "2024-02-27T13:11:51Z", + "resourceVersion": "53591", + "namespace": { + "name": "travel-agency", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "labels": { + "app": "flights" + }, + "selectors": { + "app": "flights" + }, + "type": "ClusterIP", + "ip": "10.108.231.237", + "ports": [ + { + "name": "http", + "protocol": "TCP", + "port": 8000 + } + ], + "externalName": "", + "annotations": { + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"flights\"},\"name\":\"flights\",\"namespace\":\"travel-agency\"},\"spec\":{\"ports\":[{\"name\":\"http\",\"port\":8000}],\"selector\":{\"app\":\"flights\"}}}\n" + }, + "healthAnnotations": {}, + "additionalDetails": [] + }, + "serviceEntries": null, + "virtualServices": [], + "workloads": [ + { + "name": "flights-v1", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-27T13:11:51Z", + "resourceVersion": "53878", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "flights", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"name\":\"flights-v1\",\"namespace\":\"travel-agency\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"flights\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"annotations\":{\"proxy.istio.io/config\":\"tracing:\\n zipkin:\\n address: zipkin.istio-system:9411\\n sampling: 10\\n custom_tags:\\n http.header.portal:\\n header:\\n name: portal\\n http.header.device:\\n header:\\n name: device\\n http.header.user:\\n header:\\n name: user\\n http.header.travel:\\n header:\\n name: travel\\n\",\"readiness.status.sidecar.istio.io/applicationPorts\":\"\"},\"labels\":{\"app\":\"flights\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"CURRENT_SERVICE\",\"value\":\"flights\"},{\"name\":\"CURRENT_VERSION\",\"value\":\"v1\"},{\"name\":\"LISTEN_ADDRESS\",\"value\":\":8000\"},{\"name\":\"DISCOUNTS_SERVICE\",\"value\":\"http://discounts.travel-agency:8000\"},{\"name\":\"MYSQL_SERVICE\",\"value\":\"mysqldb.travel-agency:3306\"},{\"name\":\"MYSQL_USER\",\"value\":\"root\"},{\"name\":\"MYSQL_PASSWORD\",\"valueFrom\":{\"secretKeyRef\":{\"key\":\"rootpasswd\",\"name\":\"mysql-credentials\"}}},{\"name\":\"MYSQL_DATABASE\",\"value\":\"test\"}],\"image\":\"quay.io/kiali/demo_travels_flights:v1\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"flights\",\"ports\":[{\"containerPort\":8000}],\"securityContext\":{\"allowPrivilegeEscalation\":false,\"capabilities\":{\"drop\":[\"ALL\"]},\"privileged\":false,\"readOnlyRootFilesystem\":true}}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["default"], + "health": { + "workloadStatus": null, + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "health": { + "requests": { + "inbound": { + "http": { + "200": 0.2666666666666666 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + }, + "namespaceMTLS": { + "status": "MTLS_NOT_ENABLED", + "autoMTLSEnabled": true, + "minTLS": "" + }, + "subServices": [ + { + "name": "flights", + "namespace": "", + "istioSidecar": false, + "cluster": "", + "istioAmbient": false, + "appLabel": false, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": null, + "ports": { + "http": 8000 + }, + "labels": null, + "selector": null, + "istioReferences": null, + "kialiWizard": "", + "serviceRegistry": "", + "health": { + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": true, + "checks": [], + "references": null + } + }, + "service": { + "flights.travel-agency": { + "name": "flights", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "cars-v1.travel-agency": { + "name": "cars-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "control.travel-control": { + "name": "control", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "details-v1.bookinfo": { + "name": "details-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "discounts-v1.travel-agency": { + "name": "discounts-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "flights-v1.travel-agency": { + "name": "flights-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "grafana.istio-system": { + "name": "grafana", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "hotels-v1.travel-agency": { + "name": "hotels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "insurances-v1.travel-agency": { + "name": "insurances-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-egressgateway.istio-system": { + "name": "istio-egressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-ingressgateway.istio-system": { + "name": "istio-ingressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istiod.istio-system": { + "name": "istiod", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "jaeger.istio-system": { + "name": "jaeger", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali-traffic-generator.bookinfo": { + "name": "kiali-traffic-generator", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali.istio-system": { + "name": "kiali", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "mysqldb-v1.travel-agency": { + "name": "mysqldb-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "productpage-v1.bookinfo": { + "name": "productpage-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "prometheus.istio-system": { + "name": "prometheus", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "ratings-v1.bookinfo": { + "name": "ratings-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v1.bookinfo": { + "name": "reviews-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v2.bookinfo": { + "name": "reviews-v2", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v3.bookinfo": { + "name": "reviews-v3", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels-v1.travel-agency": { + "name": "travels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels.travel-portal": { + "name": "travels", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "viaggi.travel-portal": { + "name": "viaggi", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "voyages.travel-portal": { + "name": "voyages", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/services/hotels.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/services/hotels.json new file mode 100644 index 0000000000..297cb0ec58 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/services/hotels.json @@ -0,0 +1,351 @@ +{ + "cluster": "Kubernetes", + "destinationRules": [], + "endpoints": [ + { + "addresses": [ + { + "kind": "Pod", + "name": "hotels-v1-57d9574745-f56rn", + "ip": "10.244.0.34", + "port": 0 + } + ], + "ports": [ + { + "name": "http", + "protocol": "TCP", + "port": 8000 + } + ] + } + ], + "istioPermissions": { + "create": true, + "update": true, + "delete": true + }, + "istioSidecar": true, + "k8sHTTPRoutes": [], + "k8sReferenceGrants": null, + "service": { + "name": "hotels", + "createdAt": "2024-02-27T13:11:51Z", + "resourceVersion": "53609", + "namespace": { + "name": "travel-agency", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "labels": { + "app": "hotels" + }, + "selectors": { + "app": "hotels" + }, + "type": "ClusterIP", + "ip": "10.101.55.152", + "ports": [ + { + "name": "http", + "protocol": "TCP", + "port": 8000 + } + ], + "externalName": "", + "annotations": { + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"hotels\"},\"name\":\"hotels\",\"namespace\":\"travel-agency\"},\"spec\":{\"ports\":[{\"name\":\"http\",\"port\":8000}],\"selector\":{\"app\":\"hotels\"}}}\n" + }, + "healthAnnotations": {}, + "additionalDetails": [] + }, + "serviceEntries": null, + "virtualServices": [], + "workloads": [ + { + "name": "hotels-v1", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-27T13:11:51Z", + "resourceVersion": "53857", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "hotels", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"name\":\"hotels-v1\",\"namespace\":\"travel-agency\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"hotels\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"annotations\":{\"proxy.istio.io/config\":\"tracing:\\n zipkin:\\n address: zipkin.istio-system:9411\\n sampling: 10\\n custom_tags:\\n http.header.portal:\\n header:\\n name: portal\\n http.header.device:\\n header:\\n name: device\\n http.header.user:\\n header:\\n name: user\\n http.header.travel:\\n header:\\n name: travel\\n\",\"readiness.status.sidecar.istio.io/applicationPorts\":\"\"},\"labels\":{\"app\":\"hotels\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"CURRENT_SERVICE\",\"value\":\"hotels\"},{\"name\":\"CURRENT_VERSION\",\"value\":\"v1\"},{\"name\":\"LISTEN_ADDRESS\",\"value\":\":8000\"},{\"name\":\"DISCOUNTS_SERVICE\",\"value\":\"http://discounts.travel-agency:8000\"},{\"name\":\"MYSQL_SERVICE\",\"value\":\"mysqldb.travel-agency:3306\"},{\"name\":\"MYSQL_USER\",\"value\":\"root\"},{\"name\":\"MYSQL_PASSWORD\",\"valueFrom\":{\"secretKeyRef\":{\"key\":\"rootpasswd\",\"name\":\"mysql-credentials\"}}},{\"name\":\"MYSQL_DATABASE\",\"value\":\"test\"}],\"image\":\"quay.io/kiali/demo_travels_hotels:v1\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"hotels\",\"ports\":[{\"containerPort\":8000}],\"securityContext\":{\"allowPrivilegeEscalation\":false,\"capabilities\":{\"drop\":[\"ALL\"]},\"privileged\":false,\"readOnlyRootFilesystem\":true}}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["default"], + "health": { + "workloadStatus": null, + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "health": { + "requests": { + "inbound": { + "http": { + "200": 0.7999999999999999 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + }, + "namespaceMTLS": { + "status": "MTLS_NOT_ENABLED", + "autoMTLSEnabled": true, + "minTLS": "" + }, + "subServices": [ + { + "name": "hotels", + "namespace": "", + "istioSidecar": false, + "cluster": "", + "istioAmbient": false, + "appLabel": false, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": null, + "ports": { + "http": 8000 + }, + "labels": null, + "selector": null, + "istioReferences": null, + "kialiWizard": "", + "serviceRegistry": "", + "health": { + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": true, + "checks": [], + "references": null + } + }, + "service": { + "hotels.travel-agency": { + "name": "hotels", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "cars-v1.travel-agency": { + "name": "cars-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "control.travel-control": { + "name": "control", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "details-v1.bookinfo": { + "name": "details-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "discounts-v1.travel-agency": { + "name": "discounts-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "flights-v1.travel-agency": { + "name": "flights-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "grafana.istio-system": { + "name": "grafana", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "hotels-v1.travel-agency": { + "name": "hotels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "insurances-v1.travel-agency": { + "name": "insurances-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-egressgateway.istio-system": { + "name": "istio-egressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-ingressgateway.istio-system": { + "name": "istio-ingressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istiod.istio-system": { + "name": "istiod", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "jaeger.istio-system": { + "name": "jaeger", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali-traffic-generator.bookinfo": { + "name": "kiali-traffic-generator", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali.istio-system": { + "name": "kiali", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "mysqldb-v1.travel-agency": { + "name": "mysqldb-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "productpage-v1.bookinfo": { + "name": "productpage-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "prometheus.istio-system": { + "name": "prometheus", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "ratings-v1.bookinfo": { + "name": "ratings-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v1.bookinfo": { + "name": "reviews-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v2.bookinfo": { + "name": "reviews-v2", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v3.bookinfo": { + "name": "reviews-v3", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels-v1.travel-agency": { + "name": "travels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels.travel-portal": { + "name": "travels", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "viaggi.travel-portal": { + "name": "viaggi", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "voyages.travel-portal": { + "name": "voyages", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/services/insurances.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/services/insurances.json new file mode 100644 index 0000000000..fc040892c2 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/services/insurances.json @@ -0,0 +1,351 @@ +{ + "cluster": "Kubernetes", + "destinationRules": [], + "endpoints": [ + { + "addresses": [ + { + "kind": "Pod", + "name": "insurances-v1-b66754b7b-j6htz", + "ip": "10.244.0.35", + "port": 0 + } + ], + "ports": [ + { + "name": "http", + "protocol": "TCP", + "port": 8000 + } + ] + } + ], + "istioPermissions": { + "create": true, + "update": true, + "delete": true + }, + "istioSidecar": true, + "k8sHTTPRoutes": [], + "k8sReferenceGrants": null, + "service": { + "name": "insurances", + "createdAt": "2024-02-27T13:11:51Z", + "resourceVersion": "53625", + "namespace": { + "name": "travel-agency", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "labels": { + "app": "insurances" + }, + "selectors": { + "app": "insurances" + }, + "type": "ClusterIP", + "ip": "10.104.235.240", + "ports": [ + { + "name": "http", + "protocol": "TCP", + "port": 8000 + } + ], + "externalName": "", + "annotations": { + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"insurances\"},\"name\":\"insurances\",\"namespace\":\"travel-agency\"},\"spec\":{\"ports\":[{\"name\":\"http\",\"port\":8000}],\"selector\":{\"app\":\"insurances\"}}}\n" + }, + "healthAnnotations": {}, + "additionalDetails": [] + }, + "serviceEntries": null, + "virtualServices": [], + "workloads": [ + { + "name": "insurances-v1", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-27T13:11:51Z", + "resourceVersion": "53899", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "insurances", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"name\":\"insurances-v1\",\"namespace\":\"travel-agency\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"insurances\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"annotations\":{\"readiness.status.sidecar.istio.io/applicationPorts\":\"\"},\"labels\":{\"app\":\"insurances\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"CURRENT_SERVICE\",\"value\":\"insurances\"},{\"name\":\"CURRENT_VERSION\",\"value\":\"v1\"},{\"name\":\"LISTEN_ADDRESS\",\"value\":\":8000\"},{\"name\":\"DISCOUNTS_SERVICE\",\"value\":\"http://discounts.travel-agency:8000\"},{\"name\":\"MYSQL_SERVICE\",\"value\":\"mysqldb.travel-agency:3306\"},{\"name\":\"MYSQL_USER\",\"value\":\"root\"},{\"name\":\"MYSQL_PASSWORD\",\"valueFrom\":{\"secretKeyRef\":{\"key\":\"rootpasswd\",\"name\":\"mysql-credentials\"}}},{\"name\":\"MYSQL_DATABASE\",\"value\":\"test\"}],\"image\":\"quay.io/kiali/demo_travels_insurances:v1\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"insurances\",\"ports\":[{\"containerPort\":8000}],\"securityContext\":{\"allowPrivilegeEscalation\":false,\"capabilities\":{\"drop\":[\"ALL\"]},\"privileged\":false,\"readOnlyRootFilesystem\":true}}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["default"], + "health": { + "workloadStatus": null, + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "health": { + "requests": { + "inbound": { + "http": { + "200": 0.39999999999999997 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + }, + "namespaceMTLS": { + "status": "MTLS_NOT_ENABLED", + "autoMTLSEnabled": true, + "minTLS": "" + }, + "subServices": [ + { + "name": "insurances", + "namespace": "", + "istioSidecar": false, + "cluster": "", + "istioAmbient": false, + "appLabel": false, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": null, + "ports": { + "http": 8000 + }, + "labels": null, + "selector": null, + "istioReferences": null, + "kialiWizard": "", + "serviceRegistry": "", + "health": { + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": true, + "checks": [], + "references": null + } + }, + "service": { + "insurances.travel-agency": { + "name": "insurances", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "cars-v1.travel-agency": { + "name": "cars-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "control.travel-control": { + "name": "control", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "details-v1.bookinfo": { + "name": "details-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "discounts-v1.travel-agency": { + "name": "discounts-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "flights-v1.travel-agency": { + "name": "flights-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "grafana.istio-system": { + "name": "grafana", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "hotels-v1.travel-agency": { + "name": "hotels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "insurances-v1.travel-agency": { + "name": "insurances-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-egressgateway.istio-system": { + "name": "istio-egressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-ingressgateway.istio-system": { + "name": "istio-ingressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istiod.istio-system": { + "name": "istiod", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "jaeger.istio-system": { + "name": "jaeger", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali-traffic-generator.bookinfo": { + "name": "kiali-traffic-generator", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali.istio-system": { + "name": "kiali", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "mysqldb-v1.travel-agency": { + "name": "mysqldb-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "productpage-v1.bookinfo": { + "name": "productpage-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "prometheus.istio-system": { + "name": "prometheus", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "ratings-v1.bookinfo": { + "name": "ratings-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v1.bookinfo": { + "name": "reviews-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v2.bookinfo": { + "name": "reviews-v2", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v3.bookinfo": { + "name": "reviews-v3", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels-v1.travel-agency": { + "name": "travels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels.travel-portal": { + "name": "travels", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "viaggi.travel-portal": { + "name": "viaggi", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "voyages.travel-portal": { + "name": "voyages", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/services/mysqldb.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/services/mysqldb.json new file mode 100644 index 0000000000..f59a9bd702 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/services/mysqldb.json @@ -0,0 +1,347 @@ +{ + "cluster": "Kubernetes", + "destinationRules": [], + "endpoints": [ + { + "addresses": [ + { + "kind": "Pod", + "name": "mysqldb-v1-64bc584fdc-vpmxc", + "ip": "10.244.0.37", + "port": 0 + } + ], + "ports": [ + { + "name": "tcp", + "protocol": "TCP", + "port": 3306 + } + ] + } + ], + "istioPermissions": { + "create": true, + "update": true, + "delete": true + }, + "istioSidecar": true, + "k8sHTTPRoutes": [], + "k8sReferenceGrants": null, + "service": { + "name": "mysqldb", + "createdAt": "2024-02-27T13:11:51Z", + "resourceVersion": "53537", + "namespace": { + "name": "travel-agency", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "labels": { + "app": "mysqldb" + }, + "selectors": { + "app": "mysqldb" + }, + "type": "ClusterIP", + "ip": "10.99.72.216", + "ports": [ + { + "name": "tcp", + "protocol": "TCP", + "port": 3306 + } + ], + "externalName": "", + "annotations": { + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"mysqldb\"},\"name\":\"mysqldb\",\"namespace\":\"travel-agency\"},\"spec\":{\"ports\":[{\"name\":\"tcp\",\"port\":3306}],\"selector\":{\"app\":\"mysqldb\"}}}\n" + }, + "healthAnnotations": {}, + "additionalDetails": [] + }, + "serviceEntries": null, + "virtualServices": [], + "workloads": [ + { + "name": "mysqldb-v1", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-27T13:11:51Z", + "resourceVersion": "53960", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "mysqldb", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"mysqldb\",\"version\":\"v1\"},\"name\":\"mysqldb-v1\",\"namespace\":\"travel-agency\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"mysqldb\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"labels\":{\"app\":\"mysqldb\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"args\":[\"--default-authentication-plugin\",\"mysql_native_password\"],\"env\":[{\"name\":\"MYSQL_ROOT_PASSWORD\",\"valueFrom\":{\"secretKeyRef\":{\"key\":\"rootpasswd\",\"name\":\"mysql-credentials\"}}}],\"image\":\"quay.io/kiali/demo_travels_mysqldb:v1\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"mysqldb\",\"ports\":[{\"containerPort\":3306}],\"volumeMounts\":[{\"mountPath\":\"/var/lib/mysql\",\"name\":\"var-lib-mysql\"}]}],\"volumes\":[{\"emptyDir\":null,\"name\":\"var-lib-mysql\"}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["default"], + "health": { + "workloadStatus": null, + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "namespaceMTLS": { + "status": "MTLS_NOT_ENABLED", + "autoMTLSEnabled": true, + "minTLS": "" + }, + "subServices": [ + { + "name": "mysqldb", + "namespace": "", + "istioSidecar": false, + "cluster": "", + "istioAmbient": false, + "appLabel": false, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": null, + "ports": { + "tcp": 3306 + }, + "labels": null, + "selector": null, + "istioReferences": null, + "kialiWizard": "", + "serviceRegistry": "", + "health": { + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": true, + "checks": [], + "references": null + } + }, + "service": { + "mysqldb.travel-agency": { + "name": "mysqldb", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "cars-v1.travel-agency": { + "name": "cars-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "control.travel-control": { + "name": "control", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "details-v1.bookinfo": { + "name": "details-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "discounts-v1.travel-agency": { + "name": "discounts-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "flights-v1.travel-agency": { + "name": "flights-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "grafana.istio-system": { + "name": "grafana", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "hotels-v1.travel-agency": { + "name": "hotels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "insurances-v1.travel-agency": { + "name": "insurances-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-egressgateway.istio-system": { + "name": "istio-egressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-ingressgateway.istio-system": { + "name": "istio-ingressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istiod.istio-system": { + "name": "istiod", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "jaeger.istio-system": { + "name": "jaeger", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali-traffic-generator.bookinfo": { + "name": "kiali-traffic-generator", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali.istio-system": { + "name": "kiali", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "mysqldb-v1.travel-agency": { + "name": "mysqldb-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "productpage-v1.bookinfo": { + "name": "productpage-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "prometheus.istio-system": { + "name": "prometheus", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "ratings-v1.bookinfo": { + "name": "ratings-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v1.bookinfo": { + "name": "reviews-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v2.bookinfo": { + "name": "reviews-v2", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v3.bookinfo": { + "name": "reviews-v3", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels-v1.travel-agency": { + "name": "travels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels.travel-portal": { + "name": "travels", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "viaggi.travel-portal": { + "name": "viaggi", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "voyages.travel-portal": { + "name": "voyages", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/services/travels.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/services/travels.json new file mode 100644 index 0000000000..c4353615a5 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/services/travels.json @@ -0,0 +1,351 @@ +{ + "cluster": "Kubernetes", + "destinationRules": [], + "endpoints": [ + { + "addresses": [ + { + "kind": "Pod", + "name": "travels-v1-78fc68bb6b-9k2ss", + "ip": "10.244.0.36", + "port": 0 + } + ], + "ports": [ + { + "name": "http", + "protocol": "TCP", + "port": 8000 + } + ] + } + ], + "istioPermissions": { + "create": true, + "update": true, + "delete": true + }, + "istioSidecar": true, + "k8sHTTPRoutes": [], + "k8sReferenceGrants": null, + "service": { + "name": "travels", + "createdAt": "2024-02-27T13:11:51Z", + "resourceVersion": "53637", + "namespace": { + "name": "travel-agency", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "labels": { + "app": "travels" + }, + "selectors": { + "app": "travels" + }, + "type": "ClusterIP", + "ip": "10.102.116.118", + "ports": [ + { + "name": "http", + "protocol": "TCP", + "port": 8000 + } + ], + "externalName": "", + "annotations": { + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"travels\"},\"name\":\"travels\",\"namespace\":\"travel-agency\"},\"spec\":{\"ports\":[{\"name\":\"http\",\"port\":8000}],\"selector\":{\"app\":\"travels\"}}}\n" + }, + "healthAnnotations": {}, + "additionalDetails": [] + }, + "serviceEntries": null, + "virtualServices": [], + "workloads": [ + { + "name": "travels-v1", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-27T13:11:51Z", + "resourceVersion": "53989", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "travels", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"name\":\"travels-v1\",\"namespace\":\"travel-agency\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"travels\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"annotations\":{\"proxy.istio.io/config\":\"tracing:\\n zipkin:\\n address: zipkin.istio-system:9411\\n sampling: 10\\n custom_tags:\\n http.header.portal:\\n header:\\n name: portal\\n http.header.device:\\n header:\\n name: device\\n http.header.user:\\n header:\\n name: user\\n http.header.travel:\\n header:\\n name: travel\\n\",\"readiness.status.sidecar.istio.io/applicationPorts\":\"\"},\"labels\":{\"app\":\"travels\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"CURRENT_SERVICE\",\"value\":\"travels\"},{\"name\":\"CURRENT_VERSION\",\"value\":\"v1\"},{\"name\":\"LISTEN_ADDRESS\",\"value\":\":8000\"},{\"name\":\"FLIGHTS_SERVICE\",\"value\":\"http://flights.travel-agency:8000\"},{\"name\":\"HOTELS_SERVICE\",\"value\":\"http://hotels.travel-agency:8000\"},{\"name\":\"CARS_SERVICE\",\"value\":\"http://cars.travel-agency:8000\"},{\"name\":\"INSURANCES_SERVICE\",\"value\":\"http://insurances.travel-agency:8000\"}],\"image\":\"quay.io/kiali/demo_travels_travels:v1\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"travels\",\"ports\":[{\"containerPort\":8000}],\"securityContext\":{\"allowPrivilegeEscalation\":false,\"capabilities\":{\"drop\":[\"ALL\"]},\"privileged\":false,\"readOnlyRootFilesystem\":true}}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["default"], + "health": { + "workloadStatus": null, + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "health": { + "requests": { + "inbound": { + "http": { + "200": 0.7999999999999998 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + }, + "namespaceMTLS": { + "status": "MTLS_NOT_ENABLED", + "autoMTLSEnabled": true, + "minTLS": "" + }, + "subServices": [ + { + "name": "travels", + "namespace": "", + "istioSidecar": false, + "cluster": "", + "istioAmbient": false, + "appLabel": false, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": null, + "ports": { + "http": 8000 + }, + "labels": null, + "selector": null, + "istioReferences": null, + "kialiWizard": "", + "serviceRegistry": "", + "health": { + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": true, + "checks": [], + "references": null + } + }, + "service": { + "travels.travel-agency": { + "name": "travels", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "cars-v1.travel-agency": { + "name": "cars-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "control.travel-control": { + "name": "control", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "details-v1.bookinfo": { + "name": "details-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "discounts-v1.travel-agency": { + "name": "discounts-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "flights-v1.travel-agency": { + "name": "flights-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "grafana.istio-system": { + "name": "grafana", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "hotels-v1.travel-agency": { + "name": "hotels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "insurances-v1.travel-agency": { + "name": "insurances-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-egressgateway.istio-system": { + "name": "istio-egressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-ingressgateway.istio-system": { + "name": "istio-ingressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istiod.istio-system": { + "name": "istiod", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "jaeger.istio-system": { + "name": "jaeger", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali-traffic-generator.bookinfo": { + "name": "kiali-traffic-generator", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali.istio-system": { + "name": "kiali", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "mysqldb-v1.travel-agency": { + "name": "mysqldb-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "productpage-v1.bookinfo": { + "name": "productpage-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "prometheus.istio-system": { + "name": "prometheus", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "ratings-v1.bookinfo": { + "name": "ratings-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v1.bookinfo": { + "name": "reviews-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v2.bookinfo": { + "name": "reviews-v2", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v3.bookinfo": { + "name": "reviews-v3", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels-v1.travel-agency": { + "name": "travels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels.travel-portal": { + "name": "travels", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "viaggi.travel-portal": { + "name": "viaggi", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "voyages.travel-portal": { + "name": "voyages", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/spans.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/spans.json new file mode 100644 index 0000000000..e1fadefd70 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/spans.json @@ -0,0 +1,642 @@ +[ + { + "traceID": "21b3fb5a1b7f4aa6a2dce7ee01df8256", + "spanID": "b8a809b3bd8e7a1e", + "operationName": "cars.travel-agency.svc.cluster.local:8000/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "21b3fb5a1b7f4aa6a2dce7ee01df8256", + "spanID": "bf79904224b6f337" + } + ], + "startTime": 1710323468940697, + "duration": 4299, + "tags": [ + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.23" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.19~cars-v1-6c869ff769-t4rrl.travel-agency~travel-agency.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|8000||" + }, + { + "key": "http.url", + "type": "string", + "value": "http://cars.travel-agency:8000/cars/Moscow" + }, + { + "key": "http.header.travel", + "type": "string", + "value": "t3" + }, + { + "key": "response_size", + "type": "string", + "value": "84" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "45fb5a24-adff-95cf-a8a8-66dd859c4934" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "cars" + }, + { + "key": "http.header.device", + "type": "string", + "value": "web" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.header.portal", + "type": "string", + "value": "viaggi.it" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "travel-agency" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|8000||" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.header.user", + "type": "string", + "value": "new" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p6", + "process": { + "serviceName": "cars.travel-agency", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762963 + } + ] + }, + "warnings": null, + "traceSize": 14 + }, + { + "traceID": "21b3fb5a1b7f4aa6a2dce7ee01df8256", + "spanID": "8f8b16cc46a9ded4", + "operationName": "discounts.travel-agency.svc.cluster.local:8000/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "21b3fb5a1b7f4aa6a2dce7ee01df8256", + "spanID": "b8a809b3bd8e7a1e" + } + ], + "startTime": 1710323468943803, + "duration": 828, + "tags": [ + { + "key": "http.url", + "type": "string", + "value": "http://discounts.travel-agency:8000/discounts/new" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.header.portal", + "type": "string", + "value": "viaggi.it" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.19" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.header.device", + "type": "string", + "value": "web" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "travel-agency" + }, + { + "key": "http.header.travel", + "type": "string", + "value": "t3" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.19~cars-v1-6c869ff769-t4rrl.travel-agency~travel-agency.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "cars" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|8000||discounts.travel-agency.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|8000||discounts.travel-agency.svc.cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "45fb5a24-adff-95cf-a8a8-66dd859c4934" + }, + { + "key": "http.header.user", + "type": "string", + "value": "new" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "31" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p10", + "process": { + "serviceName": "cars.travel-agency", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762963 + } + ] + }, + "warnings": null, + "traceSize": 14 + }, + { + "traceID": "9131662e07e0b26b8fbcbffa54ec6c56", + "spanID": "2599b1f332ac58d9", + "operationName": "cars.travel-agency.svc.cluster.local:8000/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "9131662e07e0b26b8fbcbffa54ec6c56", + "spanID": "c98e45cbafa7b024" + } + ], + "startTime": 1710323453912140, + "duration": 5732, + "tags": [ + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.23" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "inbound|8000||" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_size", + "type": "string", + "value": "84" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8b3cb135-1481-91a0-9e1a-9c5d20fb2716" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.header.portal", + "type": "string", + "value": "viaggi.it" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "inbound|8000||" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.19~cars-v1-6c869ff769-t4rrl.travel-agency~travel-agency.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "cars" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.header.device", + "type": "string", + "value": "web" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "http.url", + "type": "string", + "value": "http://cars.travel-agency:8000/cars/Skopje" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "travel-agency" + }, + { + "key": "http.header.travel", + "type": "string", + "value": "t1" + }, + { + "key": "http.header.user", + "type": "string", + "value": "new" + }, + { + "key": "span.kind", + "type": "string", + "value": "server" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p7", + "process": { + "serviceName": "cars.travel-agency", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762963 + } + ] + }, + "warnings": null, + "traceSize": 18 + }, + { + "traceID": "9131662e07e0b26b8fbcbffa54ec6c56", + "spanID": "c000cb0edeaf1bbb", + "operationName": "discounts.travel-agency.svc.cluster.local:8000/*", + "references": [ + { + "refType": "CHILD_OF", + "traceID": "9131662e07e0b26b8fbcbffa54ec6c56", + "spanID": "2599b1f332ac58d9" + } + ], + "startTime": 1710323453916126, + "duration": 1307, + "tags": [ + { + "key": "istio.canonical_service", + "type": "string", + "value": "cars" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|8000||discounts.travel-agency.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "31" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "8b3cb135-1481-91a0-9e1a-9c5d20fb2716" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.header.device", + "type": "string", + "value": "web" + }, + { + "key": "http.url", + "type": "string", + "value": "http://discounts.travel-agency:8000/discounts/new" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.header.travel", + "type": "string", + "value": "t1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.19~cars-v1-6c869ff769-t4rrl.travel-agency~travel-agency.svc.cluster.local" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.19" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.header.user", + "type": "string", + "value": "new" + }, + { + "key": "http.header.portal", + "type": "string", + "value": "viaggi.it" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "travel-agency" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|8000||discounts.travel-agency.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p11", + "process": { + "serviceName": "cars.travel-agency", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762963 + } + ] + }, + "warnings": null, + "traceSize": 18 + } +] diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/tls.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/tls.json new file mode 100644 index 0000000000..ea7db32cbb --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/tls.json @@ -0,0 +1 @@ +{ "status": "MTLS_NOT_ENABLED", "autoMTLSEnabled": true, "minTLS": "" } diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/workloads.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/workloads.json new file mode 100644 index 0000000000..63d7aade5d --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/workloads.json @@ -0,0 +1,337 @@ +{ + "namespace": { + "name": "travel-agency", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "workloads": [ + { + "name": "cars-v1", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-01-31T14:07:05Z", + "resourceVersion": "81047", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "cars", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"name\":\"cars-v1\",\"namespace\":\"travel-agency\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"cars\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"annotations\":{\"proxy.istio.io/config\":\"tracing:\\n zipkin:\\n address: zipkin.istio-system:9411\\n sampling: 10\\n custom_tags:\\n http.header.portal:\\n header:\\n name: portal\\n http.header.device:\\n header:\\n name: device\\n http.header.user:\\n header:\\n name: user\\n http.header.travel:\\n header:\\n name: travel\\n\",\"readiness.status.sidecar.istio.io/applicationPorts\":\"\"},\"labels\":{\"app\":\"cars\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"CURRENT_SERVICE\",\"value\":\"cars\"},{\"name\":\"CURRENT_VERSION\",\"value\":\"v1\"},{\"name\":\"LISTEN_ADDRESS\",\"value\":\":8000\"},{\"name\":\"DISCOUNTS_SERVICE\",\"value\":\"http://discounts.travel-agency:8000\"},{\"name\":\"MYSQL_SERVICE\",\"value\":\"mysqldb.travel-agency:3306\"},{\"name\":\"MYSQL_USER\",\"value\":\"root\"},{\"name\":\"MYSQL_PASSWORD\",\"valueFrom\":{\"secretKeyRef\":{\"key\":\"rootpasswd\",\"name\":\"mysql-credentials\"}}},{\"name\":\"MYSQL_DATABASE\",\"value\":\"test\"}],\"image\":\"quay.io/kiali/demo_travels_cars:v1\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"cars\",\"ports\":[{\"containerPort\":8000}],\"securityContext\":{\"allowPrivilegeEscalation\":false,\"capabilities\":{\"drop\":[\"ALL\"]},\"privileged\":false,\"readOnlyRootFilesystem\":true}}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["default"], + "health": { + "workloadStatus": { + "name": "cars-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 0, + "syncedProxies": -1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "discounts-v1", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-01-31T14:07:05Z", + "resourceVersion": "81336", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "discounts", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"name\":\"discounts-v1\",\"namespace\":\"travel-agency\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"discounts\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"annotations\":{\"proxy.istio.io/config\":\"tracing:\\n zipkin:\\n address: zipkin.istio-system:9411\\n sampling: 10\\n custom_tags:\\n http.header.portal:\\n header:\\n name: portal\\n http.header.device:\\n header:\\n name: device\\n http.header.user:\\n header:\\n name: user\\n http.header.travel:\\n header:\\n name: travel\\n\",\"readiness.status.sidecar.istio.io/applicationPorts\":\"\"},\"labels\":{\"app\":\"discounts\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"CURRENT_SERVICE\",\"value\":\"discounts\"},{\"name\":\"CURRENT_VERSION\",\"value\":\"v1\"},{\"name\":\"LISTEN_ADDRESS\",\"value\":\":8000\"}],\"image\":\"quay.io/kiali/demo_travels_discounts:v1\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"discounts\",\"ports\":[{\"containerPort\":8000}],\"securityContext\":{\"allowPrivilegeEscalation\":false,\"capabilities\":{\"drop\":[\"ALL\"]},\"privileged\":false,\"readOnlyRootFilesystem\":true}}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["default"], + "health": { + "workloadStatus": { + "name": "discounts-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": -1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "flights-v1", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-01-31T14:07:05Z", + "resourceVersion": "81285", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "flights", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"name\":\"flights-v1\",\"namespace\":\"travel-agency\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"flights\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"annotations\":{\"proxy.istio.io/config\":\"tracing:\\n zipkin:\\n address: zipkin.istio-system:9411\\n sampling: 10\\n custom_tags:\\n http.header.portal:\\n header:\\n name: portal\\n http.header.device:\\n header:\\n name: device\\n http.header.user:\\n header:\\n name: user\\n http.header.travel:\\n header:\\n name: travel\\n\",\"readiness.status.sidecar.istio.io/applicationPorts\":\"\"},\"labels\":{\"app\":\"flights\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"CURRENT_SERVICE\",\"value\":\"flights\"},{\"name\":\"CURRENT_VERSION\",\"value\":\"v1\"},{\"name\":\"LISTEN_ADDRESS\",\"value\":\":8000\"},{\"name\":\"DISCOUNTS_SERVICE\",\"value\":\"http://discounts.travel-agency:8000\"},{\"name\":\"MYSQL_SERVICE\",\"value\":\"mysqldb.travel-agency:3306\"},{\"name\":\"MYSQL_USER\",\"value\":\"root\"},{\"name\":\"MYSQL_PASSWORD\",\"valueFrom\":{\"secretKeyRef\":{\"key\":\"rootpasswd\",\"name\":\"mysql-credentials\"}}},{\"name\":\"MYSQL_DATABASE\",\"value\":\"test\"}],\"image\":\"quay.io/kiali/demo_travels_flights:v1\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"flights\",\"ports\":[{\"containerPort\":8000}],\"securityContext\":{\"allowPrivilegeEscalation\":false,\"capabilities\":{\"drop\":[\"ALL\"]},\"privileged\":false,\"readOnlyRootFilesystem\":true}}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["default"], + "health": { + "workloadStatus": { + "name": "flights-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "hotels-v1", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-01-31T14:07:05Z", + "resourceVersion": "81106", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "hotels", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"name\":\"hotels-v1\",\"namespace\":\"travel-agency\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"hotels\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"annotations\":{\"proxy.istio.io/config\":\"tracing:\\n zipkin:\\n address: zipkin.istio-system:9411\\n sampling: 10\\n custom_tags:\\n http.header.portal:\\n header:\\n name: portal\\n http.header.device:\\n header:\\n name: device\\n http.header.user:\\n header:\\n name: user\\n http.header.travel:\\n header:\\n name: travel\\n\",\"readiness.status.sidecar.istio.io/applicationPorts\":\"\"},\"labels\":{\"app\":\"hotels\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"CURRENT_SERVICE\",\"value\":\"hotels\"},{\"name\":\"CURRENT_VERSION\",\"value\":\"v1\"},{\"name\":\"LISTEN_ADDRESS\",\"value\":\":8000\"},{\"name\":\"DISCOUNTS_SERVICE\",\"value\":\"http://discounts.travel-agency:8000\"},{\"name\":\"MYSQL_SERVICE\",\"value\":\"mysqldb.travel-agency:3306\"},{\"name\":\"MYSQL_USER\",\"value\":\"root\"},{\"name\":\"MYSQL_PASSWORD\",\"valueFrom\":{\"secretKeyRef\":{\"key\":\"rootpasswd\",\"name\":\"mysql-credentials\"}}},{\"name\":\"MYSQL_DATABASE\",\"value\":\"test\"}],\"image\":\"quay.io/kiali/demo_travels_hotels:v1\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"hotels\",\"ports\":[{\"containerPort\":8000}],\"securityContext\":{\"allowPrivilegeEscalation\":false,\"capabilities\":{\"drop\":[\"ALL\"]},\"privileged\":false,\"readOnlyRootFilesystem\":true}}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["default"], + "health": { + "workloadStatus": { + "name": "hotels-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 0, + "syncedProxies": -1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "insurances-v1", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-01-31T14:07:05Z", + "resourceVersion": "81115", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "insurances", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"name\":\"insurances-v1\",\"namespace\":\"travel-agency\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"insurances\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"annotations\":{\"readiness.status.sidecar.istio.io/applicationPorts\":\"\"},\"labels\":{\"app\":\"insurances\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"CURRENT_SERVICE\",\"value\":\"insurances\"},{\"name\":\"CURRENT_VERSION\",\"value\":\"v1\"},{\"name\":\"LISTEN_ADDRESS\",\"value\":\":8000\"},{\"name\":\"DISCOUNTS_SERVICE\",\"value\":\"http://discounts.travel-agency:8000\"},{\"name\":\"MYSQL_SERVICE\",\"value\":\"mysqldb.travel-agency:3306\"},{\"name\":\"MYSQL_USER\",\"value\":\"root\"},{\"name\":\"MYSQL_PASSWORD\",\"valueFrom\":{\"secretKeyRef\":{\"key\":\"rootpasswd\",\"name\":\"mysql-credentials\"}}},{\"name\":\"MYSQL_DATABASE\",\"value\":\"test\"}],\"image\":\"quay.io/kiali/demo_travels_insurances:v1\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"insurances\",\"ports\":[{\"containerPort\":8000}],\"securityContext\":{\"allowPrivilegeEscalation\":false,\"capabilities\":{\"drop\":[\"ALL\"]},\"privileged\":false,\"readOnlyRootFilesystem\":true}}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["default"], + "health": { + "workloadStatus": { + "name": "insurances-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 0, + "syncedProxies": -1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "mysqldb-v1", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-01-31T14:07:05Z", + "resourceVersion": "81316", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "mysqldb", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"mysqldb\",\"version\":\"v1\"},\"name\":\"mysqldb-v1\",\"namespace\":\"travel-agency\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"mysqldb\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"labels\":{\"app\":\"mysqldb\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"args\":[\"--default-authentication-plugin\",\"mysql_native_password\"],\"env\":[{\"name\":\"MYSQL_ROOT_PASSWORD\",\"valueFrom\":{\"secretKeyRef\":{\"key\":\"rootpasswd\",\"name\":\"mysql-credentials\"}}}],\"image\":\"quay.io/kiali/demo_travels_mysqldb:v1\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"mysqldb\",\"ports\":[{\"containerPort\":3306}],\"volumeMounts\":[{\"mountPath\":\"/var/lib/mysql\",\"name\":\"var-lib-mysql\"}]}],\"volumes\":[{\"emptyDir\":null,\"name\":\"var-lib-mysql\"}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["default"], + "health": { + "workloadStatus": { + "name": "mysqldb-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": -1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "travels-v1", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-01-31T14:07:05Z", + "resourceVersion": "81119", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "travels", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"name\":\"travels-v1\",\"namespace\":\"travel-agency\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"travels\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"annotations\":{\"proxy.istio.io/config\":\"tracing:\\n zipkin:\\n address: zipkin.istio-system:9411\\n sampling: 10\\n custom_tags:\\n http.header.portal:\\n header:\\n name: portal\\n http.header.device:\\n header:\\n name: device\\n http.header.user:\\n header:\\n name: user\\n http.header.travel:\\n header:\\n name: travel\\n\",\"readiness.status.sidecar.istio.io/applicationPorts\":\"\"},\"labels\":{\"app\":\"travels\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"CURRENT_SERVICE\",\"value\":\"travels\"},{\"name\":\"CURRENT_VERSION\",\"value\":\"v1\"},{\"name\":\"LISTEN_ADDRESS\",\"value\":\":8000\"},{\"name\":\"FLIGHTS_SERVICE\",\"value\":\"http://flights.travel-agency:8000\"},{\"name\":\"HOTELS_SERVICE\",\"value\":\"http://hotels.travel-agency:8000\"},{\"name\":\"CARS_SERVICE\",\"value\":\"http://cars.travel-agency:8000\"},{\"name\":\"INSURANCES_SERVICE\",\"value\":\"http://insurances.travel-agency:8000\"}],\"image\":\"quay.io/kiali/demo_travels_travels:v1\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"travels\",\"ports\":[{\"containerPort\":8000}],\"securityContext\":{\"allowPrivilegeEscalation\":false,\"capabilities\":{\"drop\":[\"ALL\"]},\"privileged\":false,\"readOnlyRootFilesystem\":true}}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["default"], + "health": { + "workloadStatus": { + "name": "travels-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 0, + "syncedProxies": -1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + } + ], + "validations": { + "workload": { + "cars-v1.travel-agency": { + "name": "cars-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "discounts-v1.travel-agency": { + "name": "discounts-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "flights-v1.travel-agency": { + "name": "flights-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "hotels-v1.travel-agency": { + "name": "hotels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "insurances-v1.travel-agency": { + "name": "insurances-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "mysqldb-v1.travel-agency": { + "name": "mysqldb-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels-v1.travel-agency": { + "name": "travels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/workloads/cars_v1.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/workloads/cars_v1.json new file mode 100644 index 0000000000..b3c875098f --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/workloads/cars_v1.json @@ -0,0 +1,199 @@ +{ + "name": "cars-v1", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-16T11:27:38Z", + "resourceVersion": "56786", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "cars", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 0, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"name\":\"cars-v1\",\"namespace\":\"travel-agency\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"cars\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"annotations\":{\"proxy.istio.io/config\":\"tracing:\\n zipkin:\\n address: zipkin.istio-system:9411\\n sampling: 10\\n custom_tags:\\n http.header.portal:\\n header:\\n name: portal\\n http.header.device:\\n header:\\n name: device\\n http.header.user:\\n header:\\n name: user\\n http.header.travel:\\n header:\\n name: travel\\n\",\"readiness.status.sidecar.istio.io/applicationPorts\":\"\"},\"labels\":{\"app\":\"cars\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"CURRENT_SERVICE\",\"value\":\"cars\"},{\"name\":\"CURRENT_VERSION\",\"value\":\"v1\"},{\"name\":\"LISTEN_ADDRESS\",\"value\":\":8000\"},{\"name\":\"DISCOUNTS_SERVICE\",\"value\":\"http://discounts.travel-agency:8000\"},{\"name\":\"MYSQL_SERVICE\",\"value\":\"mysqldb.travel-agency:3306\"},{\"name\":\"MYSQL_USER\",\"value\":\"root\"},{\"name\":\"MYSQL_PASSWORD\",\"valueFrom\":{\"secretKeyRef\":{\"key\":\"rootpasswd\",\"name\":\"mysql-credentials\"}}},{\"name\":\"MYSQL_DATABASE\",\"value\":\"test\"}],\"image\":\"quay.io/kiali/demo_travels_cars:v1\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"cars\",\"ports\":[{\"containerPort\":8000}],\"securityContext\":{\"allowPrivilegeEscalation\":false,\"capabilities\":{\"drop\":[\"ALL\"]},\"privileged\":false,\"readOnlyRootFilesystem\":true}}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": null, + "dashboardAnnotations": {}, + "serviceAccountNames": null, + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "pods": [ + { + "name": "cars-v1-6c869ff769-8vnf9", + "labels": { + "app": "cars", + "pod-template-hash": "6c869ff769", + "security.istio.io/tlsMode": "istio", + "service.istio.io/canonical-name": "cars", + "service.istio.io/canonical-revision": "v1", + "version": "v1" + }, + "createdAt": "2024-02-16T11:27:38Z", + "createdBy": [ + { + "name": "cars-v1-6c869ff769", + "kind": "ReplicaSet" + } + ], + "containers": [ + { + "name": "cars", + "image": "quay.io/kiali/demo_travels_cars:v1", + "isProxy": false, + "isReady": true, + "isAmbient": false + } + ], + "istioContainers": [ + { + "name": "istio-proxy", + "image": "gcr.io/istio-release/proxyv2:1.20.1", + "isProxy": true, + "isReady": true, + "isAmbient": false + } + ], + "istioInitContainers": [ + { + "name": "istio-init", + "image": "gcr.io/istio-release/proxyv2:1.20.1", + "isProxy": true, + "isReady": true, + "isAmbient": false + } + ], + "status": "Running", + "statusMessage": "", + "statusReason": "", + "appLabel": true, + "versionLabel": true, + "annotations": { + "istio.io/rev": "default", + "kubectl.kubernetes.io/default-container": "cars", + "kubectl.kubernetes.io/default-logs-container": "cars", + "prometheus.io/path": "/stats/prometheus", + "prometheus.io/port": "15020", + "prometheus.io/scrape": "true", + "proxy.istio.io/config": "tracing:\n zipkin:\n address: zipkin.istio-system:9411\n sampling: 10\n custom_tags:\n http.header.portal:\n header:\n name: portal\n http.header.device:\n header:\n name: device\n http.header.user:\n header:\n name: user\n http.header.travel:\n header:\n name: travel\n", + "readiness.status.sidecar.istio.io/applicationPorts": "", + "sidecar.istio.io/status": "{\"initContainers\":[\"istio-init\"],\"containers\":[\"istio-proxy\"],\"volumes\":[\"workload-socket\",\"credential-socket\",\"workload-certs\",\"istio-envoy\",\"istio-data\",\"istio-podinfo\",\"istio-token\",\"istiod-ca-cert\"],\"imagePullSecrets\":null,\"revision\":\"default\"}" + }, + "proxyStatus": { + "CDS": "Synced", + "EDS": "Synced", + "LDS": "Synced", + "RDS": "Synced" + }, + "serviceAccountName": "default" + } + ], + "services": [ + { + "name": "cars", + "namespace": "travel-agency", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "cars" + }, + "selector": { + "app": "cars" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + } + ], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "additionalDetails": [], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": false, + "checks": [ + { + "code": "KIA0302", + "message": "No matching workload found for gateway selector in this namespace", + "severity": "warning", + "path": "spec/selector" + } + ], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "cars-v1.travel-agency": { + "name": "cars-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + }, + "waypointWorkloads": null, + "health": { + "workloadStatus": { + "name": "cars-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": { + "http": { + "200": 0.2666666666666666 + } + }, + "outbound": { + "http": { + "200": 0.2666666666666666 + } + }, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/workloads/discounts_v1.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/workloads/discounts_v1.json new file mode 100644 index 0000000000..b808060658 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/workloads/discounts_v1.json @@ -0,0 +1,195 @@ +{ + "name": "discounts-v1", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-16T11:27:38Z", + "resourceVersion": "56804", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "discounts", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 0, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"name\":\"discounts-v1\",\"namespace\":\"travel-agency\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"discounts\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"annotations\":{\"proxy.istio.io/config\":\"tracing:\\n zipkin:\\n address: zipkin.istio-system:9411\\n sampling: 10\\n custom_tags:\\n http.header.portal:\\n header:\\n name: portal\\n http.header.device:\\n header:\\n name: device\\n http.header.user:\\n header:\\n name: user\\n http.header.travel:\\n header:\\n name: travel\\n\",\"readiness.status.sidecar.istio.io/applicationPorts\":\"\"},\"labels\":{\"app\":\"discounts\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"CURRENT_SERVICE\",\"value\":\"discounts\"},{\"name\":\"CURRENT_VERSION\",\"value\":\"v1\"},{\"name\":\"LISTEN_ADDRESS\",\"value\":\":8000\"}],\"image\":\"quay.io/kiali/demo_travels_discounts:v1\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"discounts\",\"ports\":[{\"containerPort\":8000}],\"securityContext\":{\"allowPrivilegeEscalation\":false,\"capabilities\":{\"drop\":[\"ALL\"]},\"privileged\":false,\"readOnlyRootFilesystem\":true}}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": null, + "dashboardAnnotations": {}, + "serviceAccountNames": null, + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "pods": [ + { + "name": "discounts-v1-76f667c5db-d4q9c", + "labels": { + "app": "discounts", + "pod-template-hash": "76f667c5db", + "security.istio.io/tlsMode": "istio", + "service.istio.io/canonical-name": "discounts", + "service.istio.io/canonical-revision": "v1", + "version": "v1" + }, + "createdAt": "2024-02-16T11:27:38Z", + "createdBy": [ + { + "name": "discounts-v1-76f667c5db", + "kind": "ReplicaSet" + } + ], + "containers": [ + { + "name": "discounts", + "image": "quay.io/kiali/demo_travels_discounts:v1", + "isProxy": false, + "isReady": true, + "isAmbient": false + } + ], + "istioContainers": [ + { + "name": "istio-proxy", + "image": "gcr.io/istio-release/proxyv2:1.20.1", + "isProxy": true, + "isReady": true, + "isAmbient": false + } + ], + "istioInitContainers": [ + { + "name": "istio-init", + "image": "gcr.io/istio-release/proxyv2:1.20.1", + "isProxy": true, + "isReady": true, + "isAmbient": false + } + ], + "status": "Running", + "statusMessage": "", + "statusReason": "", + "appLabel": true, + "versionLabel": true, + "annotations": { + "istio.io/rev": "default", + "kubectl.kubernetes.io/default-container": "discounts", + "kubectl.kubernetes.io/default-logs-container": "discounts", + "prometheus.io/path": "/stats/prometheus", + "prometheus.io/port": "15020", + "prometheus.io/scrape": "true", + "proxy.istio.io/config": "tracing:\n zipkin:\n address: zipkin.istio-system:9411\n sampling: 10\n custom_tags:\n http.header.portal:\n header:\n name: portal\n http.header.device:\n header:\n name: device\n http.header.user:\n header:\n name: user\n http.header.travel:\n header:\n name: travel\n", + "readiness.status.sidecar.istio.io/applicationPorts": "", + "sidecar.istio.io/status": "{\"initContainers\":[\"istio-init\"],\"containers\":[\"istio-proxy\"],\"volumes\":[\"workload-socket\",\"credential-socket\",\"workload-certs\",\"istio-envoy\",\"istio-data\",\"istio-podinfo\",\"istio-token\",\"istiod-ca-cert\"],\"imagePullSecrets\":null,\"revision\":\"default\"}" + }, + "proxyStatus": { + "CDS": "Synced", + "EDS": "Synced", + "LDS": "Synced", + "RDS": "Synced" + }, + "serviceAccountName": "default" + } + ], + "services": [ + { + "name": "discounts", + "namespace": "travel-agency", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "discounts" + }, + "selector": { + "app": "discounts" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + } + ], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "additionalDetails": [], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": false, + "checks": [ + { + "code": "KIA0302", + "message": "No matching workload found for gateway selector in this namespace", + "severity": "warning", + "path": "spec/selector" + } + ], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "discounts-v1.travel-agency": { + "name": "discounts-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + }, + "waypointWorkloads": null, + "health": { + "workloadStatus": { + "name": "discounts-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": { + "http": { + "200": 1.333333333333333 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/workloads/flights_v1.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/workloads/flights_v1.json new file mode 100644 index 0000000000..5e186087b0 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/workloads/flights_v1.json @@ -0,0 +1,199 @@ +{ + "name": "flights-v1", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-16T11:27:38Z", + "resourceVersion": "56729", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "flights", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 0, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"name\":\"flights-v1\",\"namespace\":\"travel-agency\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"flights\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"annotations\":{\"proxy.istio.io/config\":\"tracing:\\n zipkin:\\n address: zipkin.istio-system:9411\\n sampling: 10\\n custom_tags:\\n http.header.portal:\\n header:\\n name: portal\\n http.header.device:\\n header:\\n name: device\\n http.header.user:\\n header:\\n name: user\\n http.header.travel:\\n header:\\n name: travel\\n\",\"readiness.status.sidecar.istio.io/applicationPorts\":\"\"},\"labels\":{\"app\":\"flights\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"CURRENT_SERVICE\",\"value\":\"flights\"},{\"name\":\"CURRENT_VERSION\",\"value\":\"v1\"},{\"name\":\"LISTEN_ADDRESS\",\"value\":\":8000\"},{\"name\":\"DISCOUNTS_SERVICE\",\"value\":\"http://discounts.travel-agency:8000\"},{\"name\":\"MYSQL_SERVICE\",\"value\":\"mysqldb.travel-agency:3306\"},{\"name\":\"MYSQL_USER\",\"value\":\"root\"},{\"name\":\"MYSQL_PASSWORD\",\"valueFrom\":{\"secretKeyRef\":{\"key\":\"rootpasswd\",\"name\":\"mysql-credentials\"}}},{\"name\":\"MYSQL_DATABASE\",\"value\":\"test\"}],\"image\":\"quay.io/kiali/demo_travels_flights:v1\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"flights\",\"ports\":[{\"containerPort\":8000}],\"securityContext\":{\"allowPrivilegeEscalation\":false,\"capabilities\":{\"drop\":[\"ALL\"]},\"privileged\":false,\"readOnlyRootFilesystem\":true}}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": null, + "dashboardAnnotations": {}, + "serviceAccountNames": null, + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "pods": [ + { + "name": "flights-v1-5c654b5b7f-gzqh4", + "labels": { + "app": "flights", + "pod-template-hash": "5c654b5b7f", + "security.istio.io/tlsMode": "istio", + "service.istio.io/canonical-name": "flights", + "service.istio.io/canonical-revision": "v1", + "version": "v1" + }, + "createdAt": "2024-02-16T11:27:38Z", + "createdBy": [ + { + "name": "flights-v1-5c654b5b7f", + "kind": "ReplicaSet" + } + ], + "containers": [ + { + "name": "flights", + "image": "quay.io/kiali/demo_travels_flights:v1", + "isProxy": false, + "isReady": true, + "isAmbient": false + } + ], + "istioContainers": [ + { + "name": "istio-proxy", + "image": "gcr.io/istio-release/proxyv2:1.20.1", + "isProxy": true, + "isReady": true, + "isAmbient": false + } + ], + "istioInitContainers": [ + { + "name": "istio-init", + "image": "gcr.io/istio-release/proxyv2:1.20.1", + "isProxy": true, + "isReady": true, + "isAmbient": false + } + ], + "status": "Running", + "statusMessage": "", + "statusReason": "", + "appLabel": true, + "versionLabel": true, + "annotations": { + "istio.io/rev": "default", + "kubectl.kubernetes.io/default-container": "flights", + "kubectl.kubernetes.io/default-logs-container": "flights", + "prometheus.io/path": "/stats/prometheus", + "prometheus.io/port": "15020", + "prometheus.io/scrape": "true", + "proxy.istio.io/config": "tracing:\n zipkin:\n address: zipkin.istio-system:9411\n sampling: 10\n custom_tags:\n http.header.portal:\n header:\n name: portal\n http.header.device:\n header:\n name: device\n http.header.user:\n header:\n name: user\n http.header.travel:\n header:\n name: travel\n", + "readiness.status.sidecar.istio.io/applicationPorts": "", + "sidecar.istio.io/status": "{\"initContainers\":[\"istio-init\"],\"containers\":[\"istio-proxy\"],\"volumes\":[\"workload-socket\",\"credential-socket\",\"workload-certs\",\"istio-envoy\",\"istio-data\",\"istio-podinfo\",\"istio-token\",\"istiod-ca-cert\"],\"imagePullSecrets\":null,\"revision\":\"default\"}" + }, + "proxyStatus": { + "CDS": "Synced", + "EDS": "Synced", + "LDS": "Synced", + "RDS": "Synced" + }, + "serviceAccountName": "default" + } + ], + "services": [ + { + "name": "flights", + "namespace": "travel-agency", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "flights" + }, + "selector": { + "app": "flights" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + } + ], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "additionalDetails": [], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": false, + "checks": [ + { + "code": "KIA0302", + "message": "No matching workload found for gateway selector in this namespace", + "severity": "warning", + "path": "spec/selector" + } + ], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "flights-v1.travel-agency": { + "name": "flights-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + }, + "waypointWorkloads": null, + "health": { + "workloadStatus": { + "name": "flights-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": { + "http": { + "200": 0.2666666666666666 + } + }, + "outbound": { + "http": { + "200": 0.2666666666666666 + } + }, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/workloads/hotels_v1.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/workloads/hotels_v1.json new file mode 100644 index 0000000000..0b5bd82a2d --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/workloads/hotels_v1.json @@ -0,0 +1,199 @@ +{ + "name": "hotels-v1", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-16T11:27:38Z", + "resourceVersion": "56712", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "hotels", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 0, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"name\":\"hotels-v1\",\"namespace\":\"travel-agency\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"hotels\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"annotations\":{\"proxy.istio.io/config\":\"tracing:\\n zipkin:\\n address: zipkin.istio-system:9411\\n sampling: 10\\n custom_tags:\\n http.header.portal:\\n header:\\n name: portal\\n http.header.device:\\n header:\\n name: device\\n http.header.user:\\n header:\\n name: user\\n http.header.travel:\\n header:\\n name: travel\\n\",\"readiness.status.sidecar.istio.io/applicationPorts\":\"\"},\"labels\":{\"app\":\"hotels\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"CURRENT_SERVICE\",\"value\":\"hotels\"},{\"name\":\"CURRENT_VERSION\",\"value\":\"v1\"},{\"name\":\"LISTEN_ADDRESS\",\"value\":\":8000\"},{\"name\":\"DISCOUNTS_SERVICE\",\"value\":\"http://discounts.travel-agency:8000\"},{\"name\":\"MYSQL_SERVICE\",\"value\":\"mysqldb.travel-agency:3306\"},{\"name\":\"MYSQL_USER\",\"value\":\"root\"},{\"name\":\"MYSQL_PASSWORD\",\"valueFrom\":{\"secretKeyRef\":{\"key\":\"rootpasswd\",\"name\":\"mysql-credentials\"}}},{\"name\":\"MYSQL_DATABASE\",\"value\":\"test\"}],\"image\":\"quay.io/kiali/demo_travels_hotels:v1\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"hotels\",\"ports\":[{\"containerPort\":8000}],\"securityContext\":{\"allowPrivilegeEscalation\":false,\"capabilities\":{\"drop\":[\"ALL\"]},\"privileged\":false,\"readOnlyRootFilesystem\":true}}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": null, + "dashboardAnnotations": {}, + "serviceAccountNames": null, + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "pods": [ + { + "name": "hotels-v1-57d9574745-kjqqj", + "labels": { + "app": "hotels", + "pod-template-hash": "57d9574745", + "security.istio.io/tlsMode": "istio", + "service.istio.io/canonical-name": "hotels", + "service.istio.io/canonical-revision": "v1", + "version": "v1" + }, + "createdAt": "2024-02-16T11:27:38Z", + "createdBy": [ + { + "name": "hotels-v1-57d9574745", + "kind": "ReplicaSet" + } + ], + "containers": [ + { + "name": "hotels", + "image": "quay.io/kiali/demo_travels_hotels:v1", + "isProxy": false, + "isReady": true, + "isAmbient": false + } + ], + "istioContainers": [ + { + "name": "istio-proxy", + "image": "gcr.io/istio-release/proxyv2:1.20.1", + "isProxy": true, + "isReady": true, + "isAmbient": false + } + ], + "istioInitContainers": [ + { + "name": "istio-init", + "image": "gcr.io/istio-release/proxyv2:1.20.1", + "isProxy": true, + "isReady": true, + "isAmbient": false + } + ], + "status": "Running", + "statusMessage": "", + "statusReason": "", + "appLabel": true, + "versionLabel": true, + "annotations": { + "istio.io/rev": "default", + "kubectl.kubernetes.io/default-container": "hotels", + "kubectl.kubernetes.io/default-logs-container": "hotels", + "prometheus.io/path": "/stats/prometheus", + "prometheus.io/port": "15020", + "prometheus.io/scrape": "true", + "proxy.istio.io/config": "tracing:\n zipkin:\n address: zipkin.istio-system:9411\n sampling: 10\n custom_tags:\n http.header.portal:\n header:\n name: portal\n http.header.device:\n header:\n name: device\n http.header.user:\n header:\n name: user\n http.header.travel:\n header:\n name: travel\n", + "readiness.status.sidecar.istio.io/applicationPorts": "", + "sidecar.istio.io/status": "{\"initContainers\":[\"istio-init\"],\"containers\":[\"istio-proxy\"],\"volumes\":[\"workload-socket\",\"credential-socket\",\"workload-certs\",\"istio-envoy\",\"istio-data\",\"istio-podinfo\",\"istio-token\",\"istiod-ca-cert\"],\"imagePullSecrets\":null,\"revision\":\"default\"}" + }, + "proxyStatus": { + "CDS": "Synced", + "EDS": "Synced", + "LDS": "Synced", + "RDS": "Synced" + }, + "serviceAccountName": "default" + } + ], + "services": [ + { + "name": "hotels", + "namespace": "travel-agency", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "hotels" + }, + "selector": { + "app": "hotels" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + } + ], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "additionalDetails": [], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": false, + "checks": [ + { + "code": "KIA0302", + "message": "No matching workload found for gateway selector in this namespace", + "severity": "warning", + "path": "spec/selector" + } + ], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "hotels-v1.travel-agency": { + "name": "hotels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + }, + "waypointWorkloads": null, + "health": { + "workloadStatus": { + "name": "hotels-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": { + "http": { + "200": 0.7999999999999999 + } + }, + "outbound": { + "http": { + "200": 0.39999999999999997 + } + }, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/workloads/insurances_v1.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/workloads/insurances_v1.json new file mode 100644 index 0000000000..a0287306c3 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/workloads/insurances_v1.json @@ -0,0 +1,198 @@ +{ + "name": "insurances-v1", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-16T11:27:38Z", + "resourceVersion": "56833", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "insurances", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 0, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"name\":\"insurances-v1\",\"namespace\":\"travel-agency\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"insurances\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"annotations\":{\"readiness.status.sidecar.istio.io/applicationPorts\":\"\"},\"labels\":{\"app\":\"insurances\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"CURRENT_SERVICE\",\"value\":\"insurances\"},{\"name\":\"CURRENT_VERSION\",\"value\":\"v1\"},{\"name\":\"LISTEN_ADDRESS\",\"value\":\":8000\"},{\"name\":\"DISCOUNTS_SERVICE\",\"value\":\"http://discounts.travel-agency:8000\"},{\"name\":\"MYSQL_SERVICE\",\"value\":\"mysqldb.travel-agency:3306\"},{\"name\":\"MYSQL_USER\",\"value\":\"root\"},{\"name\":\"MYSQL_PASSWORD\",\"valueFrom\":{\"secretKeyRef\":{\"key\":\"rootpasswd\",\"name\":\"mysql-credentials\"}}},{\"name\":\"MYSQL_DATABASE\",\"value\":\"test\"}],\"image\":\"quay.io/kiali/demo_travels_insurances:v1\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"insurances\",\"ports\":[{\"containerPort\":8000}],\"securityContext\":{\"allowPrivilegeEscalation\":false,\"capabilities\":{\"drop\":[\"ALL\"]},\"privileged\":false,\"readOnlyRootFilesystem\":true}}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": null, + "dashboardAnnotations": {}, + "serviceAccountNames": null, + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "pods": [ + { + "name": "insurances-v1-b66754b7b-9wkm6", + "labels": { + "app": "insurances", + "pod-template-hash": "b66754b7b", + "security.istio.io/tlsMode": "istio", + "service.istio.io/canonical-name": "insurances", + "service.istio.io/canonical-revision": "v1", + "version": "v1" + }, + "createdAt": "2024-02-16T11:27:38Z", + "createdBy": [ + { + "name": "insurances-v1-b66754b7b", + "kind": "ReplicaSet" + } + ], + "containers": [ + { + "name": "insurances", + "image": "quay.io/kiali/demo_travels_insurances:v1", + "isProxy": false, + "isReady": true, + "isAmbient": false + } + ], + "istioContainers": [ + { + "name": "istio-proxy", + "image": "gcr.io/istio-release/proxyv2:1.20.1", + "isProxy": true, + "isReady": true, + "isAmbient": false + } + ], + "istioInitContainers": [ + { + "name": "istio-init", + "image": "gcr.io/istio-release/proxyv2:1.20.1", + "isProxy": true, + "isReady": true, + "isAmbient": false + } + ], + "status": "Running", + "statusMessage": "", + "statusReason": "", + "appLabel": true, + "versionLabel": true, + "annotations": { + "istio.io/rev": "default", + "kubectl.kubernetes.io/default-container": "insurances", + "kubectl.kubernetes.io/default-logs-container": "insurances", + "prometheus.io/path": "/stats/prometheus", + "prometheus.io/port": "15020", + "prometheus.io/scrape": "true", + "readiness.status.sidecar.istio.io/applicationPorts": "", + "sidecar.istio.io/status": "{\"initContainers\":[\"istio-init\"],\"containers\":[\"istio-proxy\"],\"volumes\":[\"workload-socket\",\"credential-socket\",\"workload-certs\",\"istio-envoy\",\"istio-data\",\"istio-podinfo\",\"istio-token\",\"istiod-ca-cert\"],\"imagePullSecrets\":null,\"revision\":\"default\"}" + }, + "proxyStatus": { + "CDS": "Synced", + "EDS": "Synced", + "LDS": "Synced", + "RDS": "Synced" + }, + "serviceAccountName": "default" + } + ], + "services": [ + { + "name": "insurances", + "namespace": "travel-agency", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "insurances" + }, + "selector": { + "app": "insurances" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + } + ], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "additionalDetails": [], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": false, + "checks": [ + { + "code": "KIA0302", + "message": "No matching workload found for gateway selector in this namespace", + "severity": "warning", + "path": "spec/selector" + } + ], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "insurances-v1.travel-agency": { + "name": "insurances-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + }, + "waypointWorkloads": null, + "health": { + "workloadStatus": { + "name": "insurances-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": { + "http": { + "200": 0.39999999999999997 + } + }, + "outbound": { + "http": { + "200": 0.39999999999999997 + } + }, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/workloads/mysqldb_v1.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/workloads/mysqldb_v1.json new file mode 100644 index 0000000000..00f6c570d6 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/workloads/mysqldb_v1.json @@ -0,0 +1,189 @@ +{ + "name": "mysqldb-v1", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-16T11:27:38Z", + "resourceVersion": "56885", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "mysqldb", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 0, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"mysqldb\",\"version\":\"v1\"},\"name\":\"mysqldb-v1\",\"namespace\":\"travel-agency\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"mysqldb\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"labels\":{\"app\":\"mysqldb\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"args\":[\"--default-authentication-plugin\",\"mysql_native_password\"],\"env\":[{\"name\":\"MYSQL_ROOT_PASSWORD\",\"valueFrom\":{\"secretKeyRef\":{\"key\":\"rootpasswd\",\"name\":\"mysql-credentials\"}}}],\"image\":\"quay.io/kiali/demo_travels_mysqldb:v1\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"mysqldb\",\"ports\":[{\"containerPort\":3306}],\"volumeMounts\":[{\"mountPath\":\"/var/lib/mysql\",\"name\":\"var-lib-mysql\"}]}],\"volumes\":[{\"emptyDir\":null,\"name\":\"var-lib-mysql\"}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": null, + "dashboardAnnotations": {}, + "serviceAccountNames": null, + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "pods": [ + { + "name": "mysqldb-v1-64bc584fdc-zh5tl", + "labels": { + "app": "mysqldb", + "pod-template-hash": "64bc584fdc", + "security.istio.io/tlsMode": "istio", + "service.istio.io/canonical-name": "mysqldb", + "service.istio.io/canonical-revision": "v1", + "version": "v1" + }, + "createdAt": "2024-02-16T11:27:38Z", + "createdBy": [ + { + "name": "mysqldb-v1-64bc584fdc", + "kind": "ReplicaSet" + } + ], + "containers": [ + { + "name": "mysqldb", + "image": "quay.io/kiali/demo_travels_mysqldb:v1", + "isProxy": false, + "isReady": true, + "isAmbient": false + } + ], + "istioContainers": [ + { + "name": "istio-proxy", + "image": "gcr.io/istio-release/proxyv2:1.20.1", + "isProxy": true, + "isReady": true, + "isAmbient": false + } + ], + "istioInitContainers": [ + { + "name": "istio-init", + "image": "gcr.io/istio-release/proxyv2:1.20.1", + "isProxy": true, + "isReady": true, + "isAmbient": false + } + ], + "status": "Running", + "statusMessage": "", + "statusReason": "", + "appLabel": true, + "versionLabel": true, + "annotations": { + "istio.io/rev": "default", + "kubectl.kubernetes.io/default-container": "mysqldb", + "kubectl.kubernetes.io/default-logs-container": "mysqldb", + "prometheus.io/path": "/stats/prometheus", + "prometheus.io/port": "15020", + "prometheus.io/scrape": "true", + "sidecar.istio.io/status": "{\"initContainers\":[\"istio-init\"],\"containers\":[\"istio-proxy\"],\"volumes\":[\"workload-socket\",\"credential-socket\",\"workload-certs\",\"istio-envoy\",\"istio-data\",\"istio-podinfo\",\"istio-token\",\"istiod-ca-cert\"],\"imagePullSecrets\":null,\"revision\":\"default\"}" + }, + "proxyStatus": { + "CDS": "Synced", + "EDS": "Synced", + "LDS": "Synced", + "RDS": "Synced" + }, + "serviceAccountName": "default" + } + ], + "services": [ + { + "name": "mysqldb", + "namespace": "travel-agency", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "mysqldb" + }, + "selector": { + "app": "mysqldb" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + } + ], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "additionalDetails": [], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": false, + "checks": [ + { + "code": "KIA0302", + "message": "No matching workload found for gateway selector in this namespace", + "severity": "warning", + "path": "spec/selector" + } + ], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "mysqldb-v1.travel-agency": { + "name": "mysqldb-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + }, + "waypointWorkloads": null, + "health": { + "workloadStatus": { + "name": "mysqldb-v1", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/workloads/travels_v1.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/workloads/travels_v1.json new file mode 100644 index 0000000000..ef5315e0d3 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-agency/workloads/travels_v1.json @@ -0,0 +1,350 @@ +{ + "service": { + "name": "travels", + "createdAt": "2024-02-16T11:27:38Z", + "resourceVersion": "56507", + "namespace": { + "name": "travel-agency", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "labels": { + "app": "travels" + }, + "selectors": { + "app": "travels" + }, + "type": "ClusterIP", + "ip": "10.100.8.39", + "ports": [ + { + "name": "http", + "protocol": "TCP", + "port": 8000 + } + ], + "externalName": "", + "annotations": { + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"travels\"},\"name\":\"travels\",\"namespace\":\"travel-agency\"},\"spec\":{\"ports\":[{\"name\":\"http\",\"port\":8000}],\"selector\":{\"app\":\"travels\"}}}\n" + }, + "healthAnnotations": {}, + "additionalDetails": [] + }, + "cluster": "Kubernetes", + "istioSidecar": true, + "endpoints": [ + { + "addresses": [ + { + "kind": "Pod", + "name": "travels-v1-78fc68bb6b-xstzx", + "ip": "10.244.0.39", + "port": 0 + } + ], + "ports": [ + { + "name": "http", + "protocol": "TCP", + "port": 8000 + } + ] + } + ], + "virtualServices": [], + "destinationRules": [], + "k8sHTTPRoutes": [], + "serviceEntries": null, + "istioPermissions": { + "create": true, + "update": true, + "delete": true + }, + "workloads": [ + { + "name": "travels-v1", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-16T11:27:38Z", + "resourceVersion": "56691", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "travels", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"name\":\"travels-v1\",\"namespace\":\"travel-agency\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"travels\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"annotations\":{\"proxy.istio.io/config\":\"tracing:\\n zipkin:\\n address: zipkin.istio-system:9411\\n sampling: 10\\n custom_tags:\\n http.header.portal:\\n header:\\n name: portal\\n http.header.device:\\n header:\\n name: device\\n http.header.user:\\n header:\\n name: user\\n http.header.travel:\\n header:\\n name: travel\\n\",\"readiness.status.sidecar.istio.io/applicationPorts\":\"\"},\"labels\":{\"app\":\"travels\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"CURRENT_SERVICE\",\"value\":\"travels\"},{\"name\":\"CURRENT_VERSION\",\"value\":\"v1\"},{\"name\":\"LISTEN_ADDRESS\",\"value\":\":8000\"},{\"name\":\"FLIGHTS_SERVICE\",\"value\":\"http://flights.travel-agency:8000\"},{\"name\":\"HOTELS_SERVICE\",\"value\":\"http://hotels.travel-agency:8000\"},{\"name\":\"CARS_SERVICE\",\"value\":\"http://cars.travel-agency:8000\"},{\"name\":\"INSURANCES_SERVICE\",\"value\":\"http://insurances.travel-agency:8000\"}],\"image\":\"quay.io/kiali/demo_travels_travels:v1\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"travels\",\"ports\":[{\"containerPort\":8000}],\"securityContext\":{\"allowPrivilegeEscalation\":false,\"capabilities\":{\"drop\":[\"ALL\"]},\"privileged\":false,\"readOnlyRootFilesystem\":true}}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["default"], + "health": { + "workloadStatus": null, + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "subServices": [ + { + "name": "travels", + "namespace": "", + "istioSidecar": false, + "cluster": "", + "istioAmbient": false, + "appLabel": false, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": null, + "ports": { + "http": 8000 + }, + "labels": null, + "selector": null, + "istioReferences": null, + "kialiWizard": "", + "serviceRegistry": "", + "health": { + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "health": { + "requests": { + "inbound": { + "http": { + "200": 0.7999999999999998 + } + }, + "outbound": {}, + "healthAnnotations": {} + } + }, + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": true, + "checks": [], + "references": null + } + }, + "service": { + "travels.travel-agency": { + "name": "travels", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "cars-v1.travel-agency": { + "name": "cars-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "control.travel-control": { + "name": "control", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "details-v1.bookinfo": { + "name": "details-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "discounts-v1.travel-agency": { + "name": "discounts-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "flights-v1.travel-agency": { + "name": "flights-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "grafana.istio-system": { + "name": "grafana", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "hotels-v1.travel-agency": { + "name": "hotels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "insurances-v1.travel-agency": { + "name": "insurances-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-egressgateway.istio-system": { + "name": "istio-egressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-ingressgateway.istio-system": { + "name": "istio-ingressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istiod.istio-system": { + "name": "istiod", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "jaeger.istio-system": { + "name": "jaeger", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali-traffic-generator.bookinfo": { + "name": "kiali-traffic-generator", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali.istio-system": { + "name": "kiali", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "mysqldb-v1.travel-agency": { + "name": "mysqldb-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "productpage-v1.bookinfo": { + "name": "productpage-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "prometheus.istio-system": { + "name": "prometheus", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "ratings-v1.bookinfo": { + "name": "ratings-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v1.bookinfo": { + "name": "reviews-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v2.bookinfo": { + "name": "reviews-v2", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v3.bookinfo": { + "name": "reviews-v3", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels-v1.travel-agency": { + "name": "travels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels.travel-portal": { + "name": "travels", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "viaggi.travel-portal": { + "name": "viaggi", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "voyages.travel-portal": { + "name": "voyages", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + }, + "namespaceMTLS": { + "status": "MTLS_NOT_ENABLED", + "autoMTLSEnabled": true, + "minTLS": "" + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/apps.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/apps.json new file mode 100644 index 0000000000..c8c8508e2e --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/apps.json @@ -0,0 +1,39 @@ +{ + "namespace": { + "name": "travel-control", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "cluster": "", + "applications": [ + { + "name": "control", + "cluster": "Kubernetes", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "control", + "version": "v1" + }, + "istioReferences": [], + "health": { + "workloadStatuses": [ + { + "name": "control", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + } + ] +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/apps/control.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/apps/control.json new file mode 100644 index 0000000000..aeac5b96ea --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/apps/control.json @@ -0,0 +1,54 @@ +{ + "namespace": { + "name": "travel-control", + "cluster": "Kubernetes", + "isAmbient": false, + "labels": { + "istio-injection": "enabled", + "kubernetes.io/metadata.name": "travel-control" + }, + "annotations": null + }, + "name": "control", + "cluster": "Kubernetes", + "workloads": [ + { + "workloadName": "control", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "control", + "version": "v1" + }, + "serviceAccountNames": ["default"] + } + ], + "serviceNames": ["control"], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "health": { + "workloadStatuses": [ + { + "name": "control", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/dashboard.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/dashboard.json new file mode 100644 index 0000000000..75e746ecd6 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/dashboard.json @@ -0,0 +1,158 @@ +{ + "name": "", + "title": "Inbound Metrics", + "charts": [ + { + "name": "Request volume", + "unit": "ops", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "Request duration", + "unit": "seconds", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "Request size", + "unit": "bytes", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "Response size", + "unit": "bytes", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "Request throughput", + "unit": "bitrate", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "Response throughput", + "unit": "bitrate", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "gRPC received", + "unit": "msgrate", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "gRPC sent", + "unit": "msgrate", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "TCP opened", + "unit": "connrate", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "TCP closed", + "unit": "connrate", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "TCP received", + "unit": "bitrate", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "TCP sent", + "unit": "bitrate", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + } + ], + "aggregations": [ + { + "label": "destination_canonical_revision", + "displayName": "Local version", + "singleSelection": false + }, + { + "label": "source_workload_namespace", + "displayName": "Remote namespace", + "singleSelection": false + }, + { + "label": "source_canonical_service", + "displayName": "Remote app", + "singleSelection": false + }, + { + "label": "source_canonical_revision", + "displayName": "Remote version", + "singleSelection": false + }, + { + "label": "response_code", + "displayName": "Response code", + "singleSelection": false + }, + { + "label": "grpc_response_status", + "displayName": "GRPC status", + "singleSelection": false + }, + { + "label": "response_flags", + "displayName": "Response flags", + "singleSelection": false + }, + { + "label": "connection_security_policy", + "displayName": "Connection Security Policy", + "singleSelection": false + } + ], + "externalLinks": null, + "rows": 3 +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/health/app.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/health/app.json new file mode 100644 index 0000000000..79a6902cd0 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/health/app.json @@ -0,0 +1,18 @@ +{ + "control": { + "workloadStatuses": [ + { + "name": "control", + "desiredReplicas": 1, + "currentReplicas": 0, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/health/service.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/health/service.json new file mode 100644 index 0000000000..c3873c7c04 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/health/service.json @@ -0,0 +1,9 @@ +{ + "control": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/health/workload.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/health/workload.json new file mode 100644 index 0000000000..6b1c459332 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/health/workload.json @@ -0,0 +1,16 @@ +{ + "control": { + "workloadStatus": { + "name": "control", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/istio_config.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/istio_config.json new file mode 100644 index 0000000000..14de4510c3 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/istio_config.json @@ -0,0 +1,193 @@ +{ + "namespace": { + "name": "travel-control", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "destinationRules": [ + { + "kind": "DestinationRule", + "apiVersion": "networking.istio.io/v1beta1", + "metadata": { + "name": "control", + "namespace": "travel-control", + "uid": "a89f69da-5778-46be-b200-4085b6b4c356", + "resourceVersion": "811967", + "generation": 1, + "creationTimestamp": "2024-03-20T12:45:22Z", + "labels": { + "kiali_wizard": "request_routing" + }, + "managedFields": [ + { + "manager": "kiali", + "operation": "Update", + "apiVersion": "networking.istio.io/v1beta1", + "time": "2024-03-20T12:45:22Z", + "fieldsType": "FieldsV1", + "fieldsV1": { + "f:metadata": { + "f:labels": { + ".": {}, + "f:kiali_wizard": {} + } + }, + "f:spec": { + ".": {}, + "f:host": {}, + "f:subsets": {} + } + } + } + ] + }, + "spec": { + "host": "control.travel-control.svc.cluster.local", + "subsets": [ + { + "name": "v1", + "labels": { + "version": "v1" + } + } + ] + }, + "status": {} + } + ], + "envoyFilters": [], + "gateways": [ + { + "kind": "Gateway", + "apiVersion": "networking.istio.io/v1beta1", + "metadata": { + "name": "control-gateway", + "namespace": "travel-control", + "uid": "185675fa-6cca-45ab-a194-e64a57569452", + "resourceVersion": "812011", + "generation": 2, + "creationTimestamp": "2024-03-20T12:45:22Z", + "labels": { + "kiali_wizard": "request_routing" + }, + "managedFields": [ + { + "manager": "kiali", + "operation": "Update", + "apiVersion": "networking.istio.io/v1beta1", + "time": "2024-03-20T12:45:49Z", + "fieldsType": "FieldsV1", + "fieldsV1": { + "f:metadata": { + "f:labels": { + ".": {}, + "f:kiali_wizard": {} + } + }, + "f:spec": { + ".": {}, + "f:selector": { + ".": {}, + "f:istio": {} + }, + "f:servers": {} + } + } + } + ] + }, + "spec": { + "servers": [ + { + "port": { + "number": 8080, + "protocol": "HTTP", + "name": "http" + }, + "hosts": ["*"] + } + ], + "selector": { + "istio": "ingressgateway" + } + }, + "status": {} + } + ], + "serviceEntries": [], + "sidecars": [], + "virtualServices": [ + { + "kind": "VirtualService", + "apiVersion": "networking.istio.io/v1beta1", + "metadata": { + "name": "control", + "namespace": "travel-control", + "uid": "05468816-71ed-437d-9fc5-c0120d6ab61a", + "resourceVersion": "811969", + "generation": 1, + "creationTimestamp": "2024-03-20T12:45:22Z", + "labels": { + "kiali_wizard": "request_routing" + }, + "managedFields": [ + { + "manager": "kiali", + "operation": "Update", + "apiVersion": "networking.istio.io/v1beta1", + "time": "2024-03-20T12:45:22Z", + "fieldsType": "FieldsV1", + "fieldsV1": { + "f:metadata": { + "f:labels": { + ".": {}, + "f:kiali_wizard": {} + } + }, + "f:spec": { + ".": {}, + "f:gateways": {}, + "f:hosts": {}, + "f:http": {} + } + } + } + ] + }, + "spec": { + "hosts": ["*"], + "gateways": ["travel-control/control-gateway"], + "http": [ + { + "route": [ + { + "destination": { + "host": "control.travel-control.svc.cluster.local", + "subset": "v1" + }, + "weight": 100 + } + ] + } + ] + }, + "status": {} + } + ], + "workloadEntries": [], + "workloadGroups": [], + "wasmPlugins": [], + "telemetries": [], + "k8sGateways": [], + "k8sGRPCRoutes": [], + "k8sHTTPRoutes": [], + "k8sReferenceGrants": [], + "k8sTCPRoutes": [], + "k8sTLSRoutes": [], + "authorizationPolicies": [], + "peerAuthentications": [], + "requestAuthentications": [], + "validations": {} +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/istio_configs/destinationrules/control.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/istio_configs/destinationrules/control.json new file mode 100644 index 0000000000..09c1b5682c --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/istio_configs/destinationrules/control.json @@ -0,0 +1,85 @@ +{ + "namespace": { + "name": "travel-control", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "objectType": "destinationrules", + "authorizationPolicy": null, + "destinationRule": { + "kind": "DestinationRule", + "apiVersion": "networking.istio.io/v1beta1", + "metadata": { + "name": "control", + "namespace": "travel-control", + "uid": "a89f69da-5778-46be-b200-4085b6b4c356", + "resourceVersion": "811967", + "generation": 1, + "creationTimestamp": "2024-03-20T12:45:22Z", + "labels": { + "kiali_wizard": "request_routing" + }, + "managedFields": [ + { + "manager": "kiali", + "operation": "Update", + "apiVersion": "networking.istio.io/v1beta1", + "time": "2024-03-20T12:45:22Z", + "fieldsType": "FieldsV1", + "fieldsV1": { + "f:metadata": { + "f:labels": { + ".": {}, + "f:kiali_wizard": {} + } + }, + "f:spec": { + ".": {}, + "f:host": {}, + "f:subsets": {} + } + } + } + ] + }, + "spec": { + "host": "control.travel-control.svc.cluster.local", + "subsets": [ + { + "name": "v1", + "labels": { + "version": "v1" + } + } + ] + }, + "status": {} + }, + "envoyFilter": null, + "gateway": null, + "peerAuthentication": null, + "requestAuthentication": null, + "serviceEntry": null, + "sidecar": null, + "virtualService": null, + "workloadEntry": null, + "workloadGroup": null, + "wasmPlugin": null, + "telemetry": null, + "k8sGateway": null, + "k8sGRPCRoute": null, + "k8sHTTPRoute": null, + "k8sReferenceGrant": null, + "k8sTCPRoute": null, + "k8sTLSRoute": null, + "permissions": { + "create": true, + "update": true, + "delete": true + }, + "validation": null, + "references": null, + "help": null +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/istio_configs/gateways/control-gateway.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/istio_configs/gateways/control-gateway.json new file mode 100644 index 0000000000..d1837c13ce --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/istio_configs/gateways/control-gateway.json @@ -0,0 +1,92 @@ +{ + "namespace": { + "name": "travel-control", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "objectType": "gateways", + "authorizationPolicy": null, + "destinationRule": null, + "envoyFilter": null, + "gateway": { + "kind": "Gateway", + "apiVersion": "networking.istio.io/v1beta1", + "metadata": { + "name": "control-gateway", + "namespace": "travel-control", + "uid": "185675fa-6cca-45ab-a194-e64a57569452", + "resourceVersion": "812011", + "generation": 2, + "creationTimestamp": "2024-03-20T12:45:22Z", + "labels": { + "kiali_wizard": "request_routing" + }, + "managedFields": [ + { + "manager": "kiali", + "operation": "Update", + "apiVersion": "networking.istio.io/v1beta1", + "time": "2024-03-20T12:45:49Z", + "fieldsType": "FieldsV1", + "fieldsV1": { + "f:metadata": { + "f:labels": { + ".": {}, + "f:kiali_wizard": {} + } + }, + "f:spec": { + ".": {}, + "f:selector": { + ".": {}, + "f:istio": {} + }, + "f:servers": {} + } + } + } + ] + }, + "spec": { + "servers": [ + { + "port": { + "number": 8080, + "protocol": "HTTP", + "name": "http" + }, + "hosts": ["*"] + } + ], + "selector": { + "istio": "ingressgateway" + } + }, + "status": {} + }, + "peerAuthentication": null, + "requestAuthentication": null, + "serviceEntry": null, + "sidecar": null, + "virtualService": null, + "workloadEntry": null, + "workloadGroup": null, + "wasmPlugin": null, + "telemetry": null, + "k8sGateway": null, + "k8sGRPCRoute": null, + "k8sHTTPRoute": null, + "k8sReferenceGrant": null, + "k8sTCPRoute": null, + "k8sTLSRoute": null, + "permissions": { + "create": true, + "update": true, + "delete": true + }, + "validation": null, + "references": null, + "help": null +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/istio_configs/virtualservices/control.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/istio_configs/virtualservices/control.json new file mode 100644 index 0000000000..8a95459769 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/istio_configs/virtualservices/control.json @@ -0,0 +1,92 @@ +{ + "namespace": { + "name": "travel-control", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "objectType": "virtualservices", + "authorizationPolicy": null, + "destinationRule": null, + "envoyFilter": null, + "gateway": null, + "peerAuthentication": null, + "requestAuthentication": null, + "serviceEntry": null, + "sidecar": null, + "virtualService": { + "kind": "VirtualService", + "apiVersion": "networking.istio.io/v1beta1", + "metadata": { + "name": "control", + "namespace": "travel-control", + "uid": "05468816-71ed-437d-9fc5-c0120d6ab61a", + "resourceVersion": "811969", + "generation": 1, + "creationTimestamp": "2024-03-20T12:45:22Z", + "labels": { + "kiali_wizard": "request_routing" + }, + "managedFields": [ + { + "manager": "kiali", + "operation": "Update", + "apiVersion": "networking.istio.io/v1beta1", + "time": "2024-03-20T12:45:22Z", + "fieldsType": "FieldsV1", + "fieldsV1": { + "f:metadata": { + "f:labels": { + ".": {}, + "f:kiali_wizard": {} + } + }, + "f:spec": { + ".": {}, + "f:gateways": {}, + "f:hosts": {}, + "f:http": {} + } + } + } + ] + }, + "spec": { + "hosts": ["*"], + "gateways": ["travel-control/control-gateway"], + "http": [ + { + "route": [ + { + "destination": { + "host": "control.travel-control.svc.cluster.local", + "subset": "v1" + }, + "weight": 100 + } + ] + } + ] + }, + "status": {} + }, + "workloadEntry": null, + "workloadGroup": null, + "wasmPlugin": null, + "telemetry": null, + "k8sGateway": null, + "k8sGRPCRoute": null, + "k8sHTTPRoute": null, + "k8sReferenceGrant": null, + "k8sTCPRoute": null, + "k8sTLSRoute": null, + "permissions": { + "create": true, + "update": true, + "delete": true + }, + "validation": null, + "references": null, + "help": null +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/inbound/metrics_inbound_120.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/inbound/metrics_inbound_120.json new file mode 100644 index 0000000000..c7215c95e7 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/inbound/metrics_inbound_120.json @@ -0,0 +1 @@ +{ "request_count": null, "request_error_count": null } diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/inbound/metrics_inbound_1800.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/inbound/metrics_inbound_1800.json new file mode 100644 index 0000000000..c7215c95e7 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/inbound/metrics_inbound_1800.json @@ -0,0 +1 @@ +{ "request_count": null, "request_error_count": null } diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/inbound/metrics_inbound_300.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/inbound/metrics_inbound_300.json new file mode 100644 index 0000000000..c7215c95e7 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/inbound/metrics_inbound_300.json @@ -0,0 +1 @@ +{ "request_count": null, "request_error_count": null } diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/inbound/metrics_inbound_3600.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/inbound/metrics_inbound_3600.json new file mode 100644 index 0000000000..c7215c95e7 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/inbound/metrics_inbound_3600.json @@ -0,0 +1 @@ +{ "request_count": null, "request_error_count": null } diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/inbound/metrics_inbound_60.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/inbound/metrics_inbound_60.json new file mode 100644 index 0000000000..c7215c95e7 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/inbound/metrics_inbound_60.json @@ -0,0 +1 @@ +{ "request_count": null, "request_error_count": null } diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/inbound/metrics_inbound_600.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/inbound/metrics_inbound_600.json new file mode 100644 index 0000000000..c7215c95e7 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/inbound/metrics_inbound_600.json @@ -0,0 +1 @@ +{ "request_count": null, "request_error_count": null } diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/index.ts b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/index.ts new file mode 100644 index 0000000000..80b1a03357 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/index.ts @@ -0,0 +1,51 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ + +import inbound60 from './inbound/metrics_inbound_60.json'; +import inbound120 from './inbound/metrics_inbound_120.json'; +import inbound300 from './inbound/metrics_inbound_300.json'; +import inbound600 from './inbound/metrics_inbound_600.json'; +import inbound1800 from './inbound/metrics_inbound_1800.json'; +import inbound3600 from './inbound/metrics_inbound_3600.json'; +/* Outbound Metrics */ + +import outbound60 from './outbound/metrics_outbound_60.json'; +import outbound120 from './outbound/metrics_outbound_120.json'; +import outbound300 from './outbound/metrics_outbound_300.json'; +import outbound600 from './outbound/metrics_outbound_600.json'; +import outbound1800 from './outbound/metrics_outbound_1800.json'; +import outbound3600 from './outbound/metrics_outbound_3600.json'; + +export const travelControlMetrics = { + inbound: { + 60: inbound60, + 120: inbound120, + 300: inbound300, + 600: inbound600, + 1800: inbound1800, + 3600: inbound3600, + }, + outbound: { + 60: outbound60, + 120: outbound120, + 300: outbound300, + 600: outbound600, + 1800: outbound1800, + 3600: outbound3600, + }, +}; + +export default travelControlMetrics; diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/outbound/metrics_outbound_120.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/outbound/metrics_outbound_120.json new file mode 100644 index 0000000000..c7215c95e7 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/outbound/metrics_outbound_120.json @@ -0,0 +1 @@ +{ "request_count": null, "request_error_count": null } diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/outbound/metrics_outbound_1800.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/outbound/metrics_outbound_1800.json new file mode 100644 index 0000000000..c7215c95e7 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/outbound/metrics_outbound_1800.json @@ -0,0 +1 @@ +{ "request_count": null, "request_error_count": null } diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/outbound/metrics_outbound_300.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/outbound/metrics_outbound_300.json new file mode 100644 index 0000000000..c7215c95e7 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/outbound/metrics_outbound_300.json @@ -0,0 +1 @@ +{ "request_count": null, "request_error_count": null } diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/outbound/metrics_outbound_3600.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/outbound/metrics_outbound_3600.json new file mode 100644 index 0000000000..c7215c95e7 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/outbound/metrics_outbound_3600.json @@ -0,0 +1 @@ +{ "request_count": null, "request_error_count": null } diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/outbound/metrics_outbound_60.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/outbound/metrics_outbound_60.json new file mode 100644 index 0000000000..c7215c95e7 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/outbound/metrics_outbound_60.json @@ -0,0 +1 @@ +{ "request_count": null, "request_error_count": null } diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/outbound/metrics_outbound_600.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/outbound/metrics_outbound_600.json new file mode 100644 index 0000000000..c7215c95e7 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/metrics/outbound/metrics_outbound_600.json @@ -0,0 +1 @@ +{ "request_count": null, "request_error_count": null } diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/services.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/services.json new file mode 100644 index 0000000000..61edf936ad --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/services.json @@ -0,0 +1,50 @@ +{ + "namespace": { + "name": "travel-control", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "services": [ + { + "name": "control", + "namespace": "travel-control", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "control" + }, + "selector": { + "app": "control" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + } + ], + "validations": { + "service": { + "control.travel-control": { + "name": "control", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + } + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/services/control.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/services/control.json new file mode 100644 index 0000000000..f0f2980d6c --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/services/control.json @@ -0,0 +1,347 @@ +{ + "cluster": "Kubernetes", + "destinationRules": [], + "endpoints": [ + { + "addresses": [ + { + "kind": "Pod", + "name": "control-746644dd7d-2gvsd", + "ip": "10.244.0.42", + "port": 0 + } + ], + "ports": [ + { + "name": "http", + "protocol": "TCP", + "port": 8080 + } + ] + } + ], + "istioPermissions": { + "create": true, + "update": true, + "delete": true + }, + "istioSidecar": true, + "k8sHTTPRoutes": [], + "k8sReferenceGrants": null, + "service": { + "name": "control", + "createdAt": "2024-02-27T13:11:53Z", + "resourceVersion": "53744", + "namespace": { + "name": "travel-control", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "labels": { + "app": "control" + }, + "selectors": { + "app": "control" + }, + "type": "ClusterIP", + "ip": "10.97.3.6", + "ports": [ + { + "name": "http", + "protocol": "TCP", + "port": 8080 + } + ], + "externalName": "", + "annotations": { + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"control\"},\"name\":\"control\",\"namespace\":\"travel-control\"},\"spec\":{\"ports\":[{\"name\":\"http\",\"port\":8080}],\"selector\":{\"app\":\"control\"}}}\n" + }, + "healthAnnotations": {}, + "additionalDetails": [] + }, + "serviceEntries": null, + "virtualServices": [], + "workloads": [ + { + "name": "control", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-27T13:11:53Z", + "resourceVersion": "53917", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "control", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"name\":\"control\",\"namespace\":\"travel-control\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"control\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"annotations\":{\"readiness.status.sidecar.istio.io/applicationPorts\":\"\"},\"labels\":{\"app\":\"control\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"PORTAL_SERVICES\",\"value\":\"voyages.fr;http://voyages.travel-portal:8000,viaggi.it;http://viaggi.travel-portal:8000,travels.uk;http://travels.travel-portal:8000\"}],\"image\":\"quay.io/kiali/demo_travels_control:v1\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"control\",\"ports\":[{\"containerPort\":8080}],\"securityContext\":{\"allowPrivilegeEscalation\":false,\"capabilities\":{\"drop\":[\"ALL\"]},\"privileged\":false,\"readOnlyRootFilesystem\":true}}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["default"], + "health": { + "workloadStatus": null, + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "namespaceMTLS": { + "status": "MTLS_NOT_ENABLED", + "autoMTLSEnabled": true, + "minTLS": "" + }, + "subServices": [ + { + "name": "control", + "namespace": "", + "istioSidecar": false, + "cluster": "", + "istioAmbient": false, + "appLabel": false, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": null, + "ports": { + "http": 8080 + }, + "labels": null, + "selector": null, + "istioReferences": null, + "kialiWizard": "", + "serviceRegistry": "", + "health": { + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": true, + "checks": [], + "references": null + } + }, + "service": { + "control.travel-control": { + "name": "control", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "cars-v1.travel-agency": { + "name": "cars-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "control.travel-control": { + "name": "control", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "details-v1.bookinfo": { + "name": "details-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "discounts-v1.travel-agency": { + "name": "discounts-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "flights-v1.travel-agency": { + "name": "flights-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "grafana.istio-system": { + "name": "grafana", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "hotels-v1.travel-agency": { + "name": "hotels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "insurances-v1.travel-agency": { + "name": "insurances-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-egressgateway.istio-system": { + "name": "istio-egressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-ingressgateway.istio-system": { + "name": "istio-ingressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istiod.istio-system": { + "name": "istiod", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "jaeger.istio-system": { + "name": "jaeger", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali-traffic-generator.bookinfo": { + "name": "kiali-traffic-generator", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali.istio-system": { + "name": "kiali", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "mysqldb-v1.travel-agency": { + "name": "mysqldb-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "productpage-v1.bookinfo": { + "name": "productpage-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "prometheus.istio-system": { + "name": "prometheus", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "ratings-v1.bookinfo": { + "name": "ratings-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v1.bookinfo": { + "name": "reviews-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v2.bookinfo": { + "name": "reviews-v2", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v3.bookinfo": { + "name": "reviews-v3", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels-v1.travel-agency": { + "name": "travels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels.travel-portal": { + "name": "travels", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "viaggi.travel-portal": { + "name": "viaggi", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "voyages.travel-portal": { + "name": "voyages", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/spans.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/spans.json new file mode 100644 index 0000000000..fe51488c70 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/spans.json @@ -0,0 +1 @@ +[] diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/tls.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/tls.json new file mode 100644 index 0000000000..ea7db32cbb --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/tls.json @@ -0,0 +1 @@ +{ "status": "MTLS_NOT_ENABLED", "autoMTLSEnabled": true, "minTLS": "" } diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/workloads.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/workloads.json new file mode 100644 index 0000000000..8f788699cd --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/workloads.json @@ -0,0 +1,61 @@ +{ + "namespace": { + "name": "travel-control", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "workloads": [ + { + "name": "control", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-01-31T14:07:06Z", + "resourceVersion": "81463", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "control", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"name\":\"control\",\"namespace\":\"travel-control\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"control\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"annotations\":{\"readiness.status.sidecar.istio.io/applicationPorts\":\"\"},\"labels\":{\"app\":\"control\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"PORTAL_SERVICES\",\"value\":\"voyages.fr;http://voyages.travel-portal:8000,viaggi.it;http://viaggi.travel-portal:8000,travels.uk;http://travels.travel-portal:8000\"}],\"image\":\"quay.io/kiali/demo_travels_control:v1\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"control\",\"ports\":[{\"containerPort\":8080}],\"securityContext\":{\"allowPrivilegeEscalation\":false,\"capabilities\":{\"drop\":[\"ALL\"]},\"privileged\":false,\"readOnlyRootFilesystem\":true}}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["default"], + "health": { + "workloadStatus": { + "name": "control", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + } + ], + "validations": { + "workload": { + "control.travel-control": { + "name": "control", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/workloads/control.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/workloads/control.json new file mode 100644 index 0000000000..c8f50fb974 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-control/workloads/control.json @@ -0,0 +1,190 @@ +{ + "name": "control", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-16T11:27:39Z", + "resourceVersion": "56909", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "control", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 0, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"name\":\"control\",\"namespace\":\"travel-control\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"control\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"annotations\":{\"readiness.status.sidecar.istio.io/applicationPorts\":\"\"},\"labels\":{\"app\":\"control\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"PORTAL_SERVICES\",\"value\":\"voyages.fr;http://voyages.travel-portal:8000,viaggi.it;http://viaggi.travel-portal:8000,travels.uk;http://travels.travel-portal:8000\"}],\"image\":\"quay.io/kiali/demo_travels_control:v1\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"control\",\"ports\":[{\"containerPort\":8080}],\"securityContext\":{\"allowPrivilegeEscalation\":false,\"capabilities\":{\"drop\":[\"ALL\"]},\"privileged\":false,\"readOnlyRootFilesystem\":true}}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": null, + "dashboardAnnotations": {}, + "serviceAccountNames": null, + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "pods": [ + { + "name": "control-746644dd7d-sqpw4", + "labels": { + "app": "control", + "pod-template-hash": "746644dd7d", + "security.istio.io/tlsMode": "istio", + "service.istio.io/canonical-name": "control", + "service.istio.io/canonical-revision": "v1", + "version": "v1" + }, + "createdAt": "2024-02-16T11:27:39Z", + "createdBy": [ + { + "name": "control-746644dd7d", + "kind": "ReplicaSet" + } + ], + "containers": [ + { + "name": "control", + "image": "quay.io/kiali/demo_travels_control:v1", + "isProxy": false, + "isReady": true, + "isAmbient": false + } + ], + "istioContainers": [ + { + "name": "istio-proxy", + "image": "gcr.io/istio-release/proxyv2:1.20.1", + "isProxy": true, + "isReady": true, + "isAmbient": false + } + ], + "istioInitContainers": [ + { + "name": "istio-init", + "image": "gcr.io/istio-release/proxyv2:1.20.1", + "isProxy": true, + "isReady": true, + "isAmbient": false + } + ], + "status": "Running", + "statusMessage": "", + "statusReason": "", + "appLabel": true, + "versionLabel": true, + "annotations": { + "istio.io/rev": "default", + "kubectl.kubernetes.io/default-container": "control", + "kubectl.kubernetes.io/default-logs-container": "control", + "prometheus.io/path": "/stats/prometheus", + "prometheus.io/port": "15020", + "prometheus.io/scrape": "true", + "readiness.status.sidecar.istio.io/applicationPorts": "", + "sidecar.istio.io/status": "{\"initContainers\":[\"istio-init\"],\"containers\":[\"istio-proxy\"],\"volumes\":[\"workload-socket\",\"credential-socket\",\"workload-certs\",\"istio-envoy\",\"istio-data\",\"istio-podinfo\",\"istio-token\",\"istiod-ca-cert\"],\"imagePullSecrets\":null,\"revision\":\"default\"}" + }, + "proxyStatus": { + "CDS": "Synced", + "EDS": "Synced", + "LDS": "Synced", + "RDS": "Synced" + }, + "serviceAccountName": "default" + } + ], + "services": [ + { + "name": "control", + "namespace": "travel-control", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "control" + }, + "selector": { + "app": "control" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + } + ], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "additionalDetails": [], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": false, + "checks": [ + { + "code": "KIA0302", + "message": "No matching workload found for gateway selector in this namespace", + "severity": "warning", + "path": "spec/selector" + } + ], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "control.travel-control": { + "name": "control", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + }, + "waypointWorkloads": null, + "health": { + "workloadStatus": { + "name": "control", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/apps.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/apps.json new file mode 100644 index 0000000000..b6962fc094 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/apps.json @@ -0,0 +1,105 @@ +{ + "namespace": { + "name": "travel-portal", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "cluster": "", + "applications": [ + { + "name": "travels", + "cluster": "Kubernetes", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "travels", + "version": "v1" + }, + "istioReferences": [], + "health": { + "workloadStatuses": [ + { + "name": "travels", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": {}, + "outbound": { + "http": { + "200": 0.17823555555555556 + } + }, + "healthAnnotations": {} + } + } + }, + { + "name": "viaggi", + "cluster": "Kubernetes", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "viaggi", + "version": "v1" + }, + "istioReferences": [], + "health": { + "workloadStatuses": [ + { + "name": "viaggi", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": {}, + "outbound": { + "http": { + "200": 0.2666666666666666 + } + }, + "healthAnnotations": {} + } + } + }, + { + "name": "voyages", + "cluster": "Kubernetes", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "voyages", + "version": "v1" + }, + "istioReferences": [], + "health": { + "workloadStatuses": [ + { + "name": "voyages", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": {}, + "outbound": { + "http": { + "200": 0.23781333333333332 + } + }, + "healthAnnotations": {} + } + } + } + ] +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/apps/travels.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/apps/travels.json new file mode 100644 index 0000000000..06f6e061cc --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/apps/travels.json @@ -0,0 +1,58 @@ +{ + "namespace": { + "name": "travel-portal", + "cluster": "Kubernetes", + "isAmbient": false, + "labels": { + "istio-injection": "enabled", + "kubernetes.io/metadata.name": "travel-portal" + }, + "annotations": null + }, + "name": "travels", + "cluster": "Kubernetes", + "workloads": [ + { + "workloadName": "travels", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "travels", + "version": "v1" + }, + "serviceAccountNames": ["default"] + } + ], + "serviceNames": ["travels"], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "health": { + "workloadStatuses": [ + { + "name": "travels", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": {}, + "outbound": { + "http": { + "200": 0.2666666666666666 + } + }, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/apps/viaggi.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/apps/viaggi.json new file mode 100644 index 0000000000..b149501d58 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/apps/viaggi.json @@ -0,0 +1,58 @@ +{ + "namespace": { + "name": "travel-portal", + "cluster": "Kubernetes", + "isAmbient": false, + "labels": { + "istio-injection": "enabled", + "kubernetes.io/metadata.name": "travel-portal" + }, + "annotations": null + }, + "name": "viaggi", + "cluster": "Kubernetes", + "workloads": [ + { + "workloadName": "viaggi", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "viaggi", + "version": "v1" + }, + "serviceAccountNames": ["default"] + } + ], + "serviceNames": ["viaggi"], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "health": { + "workloadStatuses": [ + { + "name": "viaggi", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": {}, + "outbound": { + "http": { + "200": 0.2666666666666666 + } + }, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/apps/voyages.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/apps/voyages.json new file mode 100644 index 0000000000..76a5ac5bb2 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/apps/voyages.json @@ -0,0 +1,58 @@ +{ + "namespace": { + "name": "travel-portal", + "cluster": "Kubernetes", + "isAmbient": false, + "labels": { + "istio-injection": "enabled", + "kubernetes.io/metadata.name": "travel-portal" + }, + "annotations": null + }, + "name": "voyages", + "cluster": "Kubernetes", + "workloads": [ + { + "workloadName": "voyages", + "istioSidecar": true, + "istioAmbient": false, + "labels": { + "app": "voyages", + "version": "v1" + }, + "serviceAccountNames": ["default"] + } + ], + "serviceNames": ["voyages"], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "health": { + "workloadStatuses": [ + { + "name": "voyages", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": {}, + "outbound": { + "http": { + "200": 0.2666666666666666 + } + }, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/dashboard.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/dashboard.json new file mode 100644 index 0000000000..75e746ecd6 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/dashboard.json @@ -0,0 +1,158 @@ +{ + "name": "", + "title": "Inbound Metrics", + "charts": [ + { + "name": "Request volume", + "unit": "ops", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "Request duration", + "unit": "seconds", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "Request size", + "unit": "bytes", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "Response size", + "unit": "bytes", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "Request throughput", + "unit": "bitrate", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "Response throughput", + "unit": "bitrate", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "gRPC received", + "unit": "msgrate", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "gRPC sent", + "unit": "msgrate", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "TCP opened", + "unit": "connrate", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "TCP closed", + "unit": "connrate", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "TCP received", + "unit": "bitrate", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + }, + { + "name": "TCP sent", + "unit": "bitrate", + "spans": 3, + "startCollapsed": false, + "metrics": [], + "xAxis": null, + "error": "" + } + ], + "aggregations": [ + { + "label": "destination_canonical_revision", + "displayName": "Local version", + "singleSelection": false + }, + { + "label": "source_workload_namespace", + "displayName": "Remote namespace", + "singleSelection": false + }, + { + "label": "source_canonical_service", + "displayName": "Remote app", + "singleSelection": false + }, + { + "label": "source_canonical_revision", + "displayName": "Remote version", + "singleSelection": false + }, + { + "label": "response_code", + "displayName": "Response code", + "singleSelection": false + }, + { + "label": "grpc_response_status", + "displayName": "GRPC status", + "singleSelection": false + }, + { + "label": "response_flags", + "displayName": "Response flags", + "singleSelection": false + }, + { + "label": "connection_security_policy", + "displayName": "Connection Security Policy", + "singleSelection": false + } + ], + "externalLinks": null, + "rows": 3 +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/health/app.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/health/app.json new file mode 100644 index 0000000000..bd0b97a47f --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/health/app.json @@ -0,0 +1,66 @@ +{ + "travels": { + "workloadStatuses": [ + { + "name": "travels", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": { + "http": { + "200": 0.7885940361045931 + } + }, + "outbound": { + "http": { + "200": 0.2620244359339096 + } + }, + "healthAnnotations": {} + } + }, + "viaggi": { + "workloadStatuses": [ + { + "name": "viaggi", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": {}, + "outbound": { + "http": { + "200": 0.26284883186391517 + } + }, + "healthAnnotations": {} + } + }, + "voyages": { + "workloadStatuses": [ + { + "name": "voyages", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + } + ], + "requests": { + "inbound": {}, + "outbound": { + "http": { + "200": 0.26372076830676827 + } + }, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/health/service.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/health/service.json new file mode 100644 index 0000000000..bf448926fc --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/health/service.json @@ -0,0 +1,23 @@ +{ + "travels": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "viaggi": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "voyages": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/health/workload.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/health/workload.json new file mode 100644 index 0000000000..db0f480e3d --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/health/workload.json @@ -0,0 +1,44 @@ +{ + "travels": { + "workloadStatus": { + "name": "travels", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "viaggi": { + "workloadStatus": { + "name": "viaggi", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "voyages": { + "workloadStatus": { + "name": "voyages", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/istio_config.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/istio_config.json new file mode 100644 index 0000000000..98c62e41e2 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/istio_config.json @@ -0,0 +1,29 @@ +{ + "namespace": { + "name": "travel-portal", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "destinationRules": [], + "envoyFilters": [], + "gateways": [], + "serviceEntries": [], + "sidecars": [], + "virtualServices": [], + "workloadEntries": [], + "workloadGroups": [], + "wasmPlugins": [], + "telemetries": [], + "k8sGateways": [], + "k8sGRPCRoutes": [], + "k8sHTTPRoutes": [], + "k8sReferenceGrants": [], + "k8sTCPRoutes": [], + "k8sTLSRoutes": [], + "authorizationPolicies": [], + "peerAuthentications": [], + "requestAuthentications": [], + "validations": {} +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/inbound/metrics_inbound_120.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/inbound/metrics_inbound_120.json new file mode 100644 index 0000000000..c7215c95e7 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/inbound/metrics_inbound_120.json @@ -0,0 +1 @@ +{ "request_count": null, "request_error_count": null } diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/inbound/metrics_inbound_1800.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/inbound/metrics_inbound_1800.json new file mode 100644 index 0000000000..c7215c95e7 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/inbound/metrics_inbound_1800.json @@ -0,0 +1 @@ +{ "request_count": null, "request_error_count": null } diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/inbound/metrics_inbound_300.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/inbound/metrics_inbound_300.json new file mode 100644 index 0000000000..c7215c95e7 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/inbound/metrics_inbound_300.json @@ -0,0 +1 @@ +{ "request_count": null, "request_error_count": null } diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/inbound/metrics_inbound_3600.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/inbound/metrics_inbound_3600.json new file mode 100644 index 0000000000..c7215c95e7 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/inbound/metrics_inbound_3600.json @@ -0,0 +1 @@ +{ "request_count": null, "request_error_count": null } diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/inbound/metrics_inbound_60.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/inbound/metrics_inbound_60.json new file mode 100644 index 0000000000..c7215c95e7 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/inbound/metrics_inbound_60.json @@ -0,0 +1 @@ +{ "request_count": null, "request_error_count": null } diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/inbound/metrics_inbound_600.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/inbound/metrics_inbound_600.json new file mode 100644 index 0000000000..c7215c95e7 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/inbound/metrics_inbound_600.json @@ -0,0 +1 @@ +{ "request_count": null, "request_error_count": null } diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/index.ts b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/index.ts new file mode 100644 index 0000000000..5fd2fa98b8 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/index.ts @@ -0,0 +1,51 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ + +import inbound60 from './inbound/metrics_inbound_60.json'; +import inbound120 from './inbound/metrics_inbound_120.json'; +import inbound300 from './inbound/metrics_inbound_300.json'; +import inbound600 from './inbound/metrics_inbound_600.json'; +import inbound1800 from './inbound/metrics_inbound_1800.json'; +import inbound3600 from './inbound/metrics_inbound_3600.json'; +/* Outbound Metrics */ + +import outbound60 from './outbound/metrics_outbound_60.json'; +import outbound120 from './outbound/metrics_outbound_120.json'; +import outbound300 from './outbound/metrics_outbound_300.json'; +import outbound600 from './outbound/metrics_outbound_600.json'; +import outbound1800 from './outbound/metrics_outbound_1800.json'; +import outbound3600 from './outbound/metrics_outbound_3600.json'; + +export const travelPortalMetrics = { + inbound: { + 60: inbound60, + 120: inbound120, + 300: inbound300, + 600: inbound600, + 1800: inbound1800, + 3600: inbound3600, + }, + outbound: { + 60: outbound60, + 120: outbound120, + 300: outbound300, + 600: outbound600, + 1800: outbound1800, + 3600: outbound3600, + }, +}; + +export default travelPortalMetrics; diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/outbound/metrics_outbound_120.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/outbound/metrics_outbound_120.json new file mode 100644 index 0000000000..7b786affa9 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/outbound/metrics_outbound_120.json @@ -0,0 +1,28 @@ +{ + "request_count": [ + { + "labels": {}, + "datapoints": [ + [1697024340, "0.8"], + [1697024370, "0.7999999999999999"], + [1697024400, "0.7999999999999999"], + [1697024430, "0.7999999999999999"], + [1697024460, "0.7998933901918976"] + ], + "name": "request_count" + } + ], + "request_error_count": [ + { + "labels": {}, + "datapoints": [ + [1697024340, "0"], + [1697024370, "0"], + [1697024400, "0"], + [1697024430, "0"], + [1697024460, "0"] + ], + "name": "request_error_count" + } + ] +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/outbound/metrics_outbound_1800.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/outbound/metrics_outbound_1800.json new file mode 100644 index 0000000000..7138de3b07 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/outbound/metrics_outbound_1800.json @@ -0,0 +1,40 @@ +{ + "request_count": [ + { + "labels": {}, + "datapoints": [ + [1697022540, "0.7999999999999998"], + [1697022720, "0.7818181818181817"], + [1697022900, "0.793939393939394"], + [1697023080, "0.812121212121212"], + [1697023260, "0.800003526234912"], + [1697023440, "0.7939393939393938"], + [1697023620, "0.8181818181818182"], + [1697023800, "0.7999999999999998"], + [1697023980, "0.8060606060606059"], + [1697024160, "0.7939436915381931"], + [1697024340, "0.7999999999999998"] + ], + "name": "request_count" + } + ], + "request_error_count": [ + { + "labels": {}, + "datapoints": [ + [1697022540, "0"], + [1697022720, "0"], + [1697022900, "0"], + [1697023080, "0"], + [1697023260, "0"], + [1697023440, "0"], + [1697023620, "0"], + [1697023800, "0"], + [1697023980, "0"], + [1697024160, "0"], + [1697024340, "0"] + ], + "name": "request_error_count" + } + ] +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/outbound/metrics_outbound_300.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/outbound/metrics_outbound_300.json new file mode 100644 index 0000000000..a738918bed --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/outbound/metrics_outbound_300.json @@ -0,0 +1,40 @@ +{ + "request_count": [ + { + "labels": {}, + "datapoints": [ + [1697024160, "0.8"], + [1697024190, "0.7999999999999999"], + [1697024220, "0.7999999999999999"], + [1697024250, "0.7999999999999999"], + [1697024280, "0.7999999999999999"], + [1697024310, "0.7999999999999999"], + [1697024340, "0.8"], + [1697024370, "0.7999999999999999"], + [1697024400, "0.7999999999999999"], + [1697024430, "0.7999999999999999"], + [1697024460, "0.7998933901918976"] + ], + "name": "request_count" + } + ], + "request_error_count": [ + { + "labels": {}, + "datapoints": [ + [1697024160, "0"], + [1697024190, "0"], + [1697024220, "0"], + [1697024250, "0"], + [1697024280, "0"], + [1697024310, "0"], + [1697024340, "0"], + [1697024370, "0"], + [1697024400, "0"], + [1697024430, "0"], + [1697024460, "0"] + ], + "name": "request_error_count" + } + ] +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/outbound/metrics_outbound_3600.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/outbound/metrics_outbound_3600.json new file mode 100644 index 0000000000..4e6646498e --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/outbound/metrics_outbound_3600.json @@ -0,0 +1,34 @@ +{ + "request_count": [ + { + "labels": {}, + "datapoints": [ + [1697021640, "0.5743865938180828"], + [1697022000, "0.7942028985507248"], + [1697022360, "0.8"], + [1697022720, "0.791304347826087"], + [1697023080, "0.8057971014492753"], + [1697023440, "0.8000016383255255"], + [1697023800, "0.8"], + [1697024160, "0.8000000000000002"] + ], + "name": "request_count" + } + ], + "request_error_count": [ + { + "labels": {}, + "datapoints": [ + [1697021640, "0"], + [1697022000, "0"], + [1697022360, "0"], + [1697022720, "0"], + [1697023080, "0"], + [1697023440, "0"], + [1697023800, "0"], + [1697024160, "0"] + ], + "name": "request_error_count" + } + ] +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/outbound/metrics_outbound_60.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/outbound/metrics_outbound_60.json new file mode 100644 index 0000000000..f4d2cc631f --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/outbound/metrics_outbound_60.json @@ -0,0 +1,24 @@ +{ + "request_count": [ + { + "labels": {}, + "datapoints": [ + [1697024400, "0.7999999999999999"], + [1697024430, "0.7999999999999999"], + [1697024460, "0.7998933901918976"] + ], + "name": "request_count" + } + ], + "request_error_count": [ + { + "labels": {}, + "datapoints": [ + [1697024400, "0"], + [1697024430, "0"], + [1697024460, "0"] + ], + "name": "request_error_count" + } + ] +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/outbound/metrics_outbound_600.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/outbound/metrics_outbound_600.json new file mode 100644 index 0000000000..0e48ec8977 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/metrics/outbound/metrics_outbound_600.json @@ -0,0 +1,144 @@ +{ + "grpc_received": null, + "grpc_sent": null, + "request_count": [ + { + "labels": {}, + "datapoints": [ + [1697023860, "0.8444444444444442"], + [1697023920, "0.7777777777777777"], + [1697023980, "0.7777777777777778"], + [1697024040, "0.7777881488395523"], + [1697024100, "0.7999911115061552"], + [1697024160, "0.7999999999999999"], + [1697024220, "0.7999999999999998"], + [1697024280, "0.7999999999999998"], + [1697024340, "0.8"], + [1697024400, "0.8"], + [1697024460, "0.799976300509539"] + ], + "name": "request_count" + } + ], + "request_duration_millis": [ + { + "labels": {}, + "datapoints": [ + [1697023860, "8.619444444444401"], + [1697023920, "9.27083333333308"], + [1697023980, "8.147222222222279"], + [1697024040, "10.913917295711464"], + [1697024100, "11.169437376778708"], + [1697024160, "10.068055555555624"], + [1697024220, "8.520833333333282"], + [1697024280, "8.076388888889193"], + [1697024340, "9.351388888888751"], + [1697024400, "8.795833333333498"], + [1697024460, "9.931840961833021"] + ], + "stat": "avg", + "name": "request_duration_millis" + } + ], + "request_error_count": [ + { + "labels": {}, + "datapoints": [ + [1697023860, "0"], + [1697023920, "0"], + [1697023980, "0"], + [1697024040, "0"], + [1697024100, "0"], + [1697024160, "0"], + [1697024220, "0"], + [1697024280, "0"], + [1697024340, "0"], + [1697024400, "0"], + [1697024460, "0"] + ], + "name": "request_error_count" + } + ], + "request_size": [ + { + "labels": {}, + "datapoints": [ + [1697023860, "1250.0000000000005"], + [1697023920, "1250.0000000000002"], + [1697023980, "1250"], + [1697024040, "1250"], + [1697024100, "1250.0000000000002"], + [1697024160, "1250"], + [1697024220, "1250.0000000000002"], + [1697024280, "1250.0000000000002"], + [1697024340, "1250"], + [1697024400, "1249.9999999999998"], + [1697024460, "1250"] + ], + "stat": "avg", + "name": "request_size" + } + ], + "request_throughput": [ + { + "labels": {}, + "datapoints": [ + [1697023860, "1000.0000000000001"], + [1697023920, "1000"], + [1697023980, "1000"], + [1697024040, "1000.014815802535"], + [1697024100, "999.9888893826942"], + [1697024160, "1000"], + [1697024220, "1000"], + [1697024280, "1000"], + [1697024340, "1000"], + [1697024400, "999.9999999999999"], + [1697024460, "999.9703756369238"] + ], + "name": "request_throughput" + } + ], + "response_size": [ + { + "labels": {}, + "datapoints": [ + [1697023860, "2416.666666666667"], + [1697023920, "2416.666666666667"], + [1697023980, "2416.6666666666665"], + [1697024040, "2416.663456623676"], + [1697024100, "2416.665679045266"], + [1697024160, "2416.6666666666665"], + [1697024220, "2416.666666666667"], + [1697024280, "2416.666666666667"], + [1697024340, "2416.666666666666"], + [1697024400, "2419.444444444444"], + [1697024460, "2416.666172912655"] + ], + "stat": "avg", + "name": "response_size" + } + ], + "response_throughput": [ + { + "labels": {}, + "datapoints": [ + [1697023860, "1933.333333333333"], + [1697023920, "1933.3333333333333"], + [1697023980, "1933.333333333333"], + [1697024040, "1933.3594091457946"], + [1697024100, "1933.3110627182"], + [1697024160, "1933.333333333333"], + [1697024220, "1933.333333333333"], + [1697024280, "1933.333333333333"], + [1697024340, "1933.333333333333"], + [1697024400, "1935.5555555555552"], + [1697024460, "1933.2756645732115"] + ], + "name": "response_throughput" + } + ], + "tcp_closed": null, + "tcp_opened": null, + "tcp_received": null, + "tcp_sent": null +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/services.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/services.json new file mode 100644 index 0000000000..fa7642366c --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/services.json @@ -0,0 +1,120 @@ +{ + "namespace": { + "name": "travel-portal", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "services": [ + { + "name": "voyages", + "namespace": "travel-portal", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "voyages" + }, + "selector": { + "app": "voyages" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "viaggi", + "namespace": "travel-portal", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "viaggi" + }, + "selector": { + "app": "viaggi" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + }, + { + "name": "travels", + "namespace": "travel-portal", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "travels" + }, + "selector": { + "app": "travels" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + } + ], + "validations": { + "service": { + "travels.travel-portal": { + "name": "travels", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + }, + "viaggi.travel-portal": { + "name": "viaggi", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + }, + "voyages.travel-portal": { + "name": "voyages", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + } + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/services/travels.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/services/travels.json new file mode 100644 index 0000000000..2d6848ee04 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/services/travels.json @@ -0,0 +1,347 @@ +{ + "cluster": "Kubernetes", + "destinationRules": [], + "endpoints": [ + { + "addresses": [ + { + "kind": "Pod", + "name": "travels-969557fd4-kjdtz", + "ip": "10.244.0.41", + "port": 0 + } + ], + "ports": [ + { + "name": "http", + "protocol": "TCP", + "port": 8000 + } + ] + } + ], + "istioPermissions": { + "create": true, + "update": true, + "delete": true + }, + "istioSidecar": true, + "k8sHTTPRoutes": [], + "k8sReferenceGrants": null, + "service": { + "name": "travels", + "createdAt": "2024-02-27T13:11:52Z", + "resourceVersion": "53686", + "namespace": { + "name": "travel-portal", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "labels": { + "app": "travels" + }, + "selectors": { + "app": "travels" + }, + "type": "ClusterIP", + "ip": "10.99.124.158", + "ports": [ + { + "name": "http", + "protocol": "TCP", + "port": 8000 + } + ], + "externalName": "", + "annotations": { + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"travels\"},\"name\":\"travels\",\"namespace\":\"travel-portal\"},\"spec\":{\"ports\":[{\"name\":\"http\",\"port\":8000}],\"selector\":{\"app\":\"travels\"}}}\n" + }, + "healthAnnotations": {}, + "additionalDetails": [] + }, + "serviceEntries": null, + "virtualServices": [], + "workloads": [ + { + "name": "travels", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-27T13:11:52Z", + "resourceVersion": "54113", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "travels", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"name\":\"travels\",\"namespace\":\"travel-portal\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"travels\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"annotations\":{\"proxy.istio.io/config\":\"tracing:\\n zipkin:\\n address: zipkin.istio-system:9411\\n sampling: 10\\n custom_tags:\\n http.header.portal:\\n header:\\n name: portal\\n http.header.device:\\n header:\\n name: device\\n http.header.user:\\n header:\\n name: user\\n http.header.travel:\\n header:\\n name: travel\\n\",\"readiness.status.sidecar.istio.io/applicationPorts\":\"\"},\"labels\":{\"app\":\"travels\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"LISTEN_ADDRESS\",\"value\":\":8000\"},{\"name\":\"PORTAL_COORDINATES\",\"value\":\"55.956245,-3.187915\"},{\"name\":\"PORTAL_COUNTRY\",\"value\":\"United Kingdom\"},{\"name\":\"PORTAL_NAME\",\"value\":\"travels.uk\"},{\"name\":\"TRAVELS_AGENCY_SERVICE\",\"value\":\"http://travels.travel-agency:8000\"}],\"image\":\"quay.io/kiali/demo_travels_portal:v1\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"control\",\"ports\":[{\"containerPort\":8000}],\"securityContext\":{\"allowPrivilegeEscalation\":false,\"capabilities\":{\"drop\":[\"ALL\"]},\"privileged\":false,\"readOnlyRootFilesystem\":true}}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["default"], + "health": { + "workloadStatus": null, + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "namespaceMTLS": { + "status": "MTLS_NOT_ENABLED", + "autoMTLSEnabled": true, + "minTLS": "" + }, + "subServices": [ + { + "name": "travels", + "namespace": "", + "istioSidecar": false, + "cluster": "", + "istioAmbient": false, + "appLabel": false, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": null, + "ports": { + "http": 8000 + }, + "labels": null, + "selector": null, + "istioReferences": null, + "kialiWizard": "", + "serviceRegistry": "", + "health": { + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": true, + "checks": [], + "references": null + } + }, + "service": { + "travels.travel-portal": { + "name": "travels", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "cars-v1.travel-agency": { + "name": "cars-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "control.travel-control": { + "name": "control", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "details-v1.bookinfo": { + "name": "details-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "discounts-v1.travel-agency": { + "name": "discounts-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "flights-v1.travel-agency": { + "name": "flights-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "grafana.istio-system": { + "name": "grafana", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "hotels-v1.travel-agency": { + "name": "hotels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "insurances-v1.travel-agency": { + "name": "insurances-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-egressgateway.istio-system": { + "name": "istio-egressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-ingressgateway.istio-system": { + "name": "istio-ingressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istiod.istio-system": { + "name": "istiod", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "jaeger.istio-system": { + "name": "jaeger", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali-traffic-generator.bookinfo": { + "name": "kiali-traffic-generator", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali.istio-system": { + "name": "kiali", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "mysqldb-v1.travel-agency": { + "name": "mysqldb-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "productpage-v1.bookinfo": { + "name": "productpage-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "prometheus.istio-system": { + "name": "prometheus", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "ratings-v1.bookinfo": { + "name": "ratings-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v1.bookinfo": { + "name": "reviews-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v2.bookinfo": { + "name": "reviews-v2", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v3.bookinfo": { + "name": "reviews-v3", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels-v1.travel-agency": { + "name": "travels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels.travel-portal": { + "name": "travels", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "viaggi.travel-portal": { + "name": "viaggi", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "voyages.travel-portal": { + "name": "voyages", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/services/viaggi.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/services/viaggi.json new file mode 100644 index 0000000000..331eee6511 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/services/viaggi.json @@ -0,0 +1,347 @@ +{ + "cluster": "Kubernetes", + "destinationRules": [], + "endpoints": [ + { + "addresses": [ + { + "kind": "Pod", + "name": "viaggi-65ff94c868-stzfn", + "ip": "10.244.0.40", + "port": 0 + } + ], + "ports": [ + { + "name": "http", + "protocol": "TCP", + "port": 8000 + } + ] + } + ], + "istioPermissions": { + "create": true, + "update": true, + "delete": true + }, + "istioSidecar": true, + "k8sHTTPRoutes": [], + "k8sReferenceGrants": null, + "service": { + "name": "viaggi", + "createdAt": "2024-02-27T13:11:52Z", + "resourceVersion": "53679", + "namespace": { + "name": "travel-portal", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "labels": { + "app": "viaggi" + }, + "selectors": { + "app": "viaggi" + }, + "type": "ClusterIP", + "ip": "10.101.93.213", + "ports": [ + { + "name": "http", + "protocol": "TCP", + "port": 8000 + } + ], + "externalName": "", + "annotations": { + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"viaggi\"},\"name\":\"viaggi\",\"namespace\":\"travel-portal\"},\"spec\":{\"ports\":[{\"name\":\"http\",\"port\":8000}],\"selector\":{\"app\":\"viaggi\"}}}\n" + }, + "healthAnnotations": {}, + "additionalDetails": [] + }, + "serviceEntries": null, + "virtualServices": [], + "workloads": [ + { + "name": "viaggi", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-27T13:11:52Z", + "resourceVersion": "54078", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "viaggi", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"name\":\"viaggi\",\"namespace\":\"travel-portal\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"viaggi\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"annotations\":{\"proxy.istio.io/config\":\"tracing:\\n zipkin:\\n address: zipkin.istio-system:9411\\n sampling: 10\\n custom_tags:\\n http.header.portal:\\n header:\\n name: portal\\n http.header.device:\\n header:\\n name: device\\n http.header.user:\\n header:\\n name: user\\n http.header.travel:\\n header:\\n name: travel\\n\",\"readiness.status.sidecar.istio.io/applicationPorts\":\"\"},\"labels\":{\"app\":\"viaggi\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"LISTEN_ADDRESS\",\"value\":\":8000\"},{\"name\":\"PORTAL_COORDINATES\",\"value\":\"41.890668,12.492194\"},{\"name\":\"PORTAL_COUNTRY\",\"value\":\"Italy\"},{\"name\":\"PORTAL_NAME\",\"value\":\"viaggi.it\"},{\"name\":\"TRAVELS_AGENCY_SERVICE\",\"value\":\"http://travels.travel-agency:8000\"}],\"image\":\"quay.io/kiali/demo_travels_portal:v1\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"control\",\"ports\":[{\"containerPort\":8000}],\"securityContext\":{\"allowPrivilegeEscalation\":false,\"capabilities\":{\"drop\":[\"ALL\"]},\"privileged\":false,\"readOnlyRootFilesystem\":true}}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["default"], + "health": { + "workloadStatus": null, + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "namespaceMTLS": { + "status": "MTLS_NOT_ENABLED", + "autoMTLSEnabled": true, + "minTLS": "" + }, + "subServices": [ + { + "name": "viaggi", + "namespace": "", + "istioSidecar": false, + "cluster": "", + "istioAmbient": false, + "appLabel": false, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": null, + "ports": { + "http": 8000 + }, + "labels": null, + "selector": null, + "istioReferences": null, + "kialiWizard": "", + "serviceRegistry": "", + "health": { + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": true, + "checks": [], + "references": null + } + }, + "service": { + "viaggi.travel-portal": { + "name": "viaggi", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "cars-v1.travel-agency": { + "name": "cars-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "control.travel-control": { + "name": "control", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "details-v1.bookinfo": { + "name": "details-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "discounts-v1.travel-agency": { + "name": "discounts-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "flights-v1.travel-agency": { + "name": "flights-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "grafana.istio-system": { + "name": "grafana", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "hotels-v1.travel-agency": { + "name": "hotels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "insurances-v1.travel-agency": { + "name": "insurances-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-egressgateway.istio-system": { + "name": "istio-egressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-ingressgateway.istio-system": { + "name": "istio-ingressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istiod.istio-system": { + "name": "istiod", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "jaeger.istio-system": { + "name": "jaeger", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali-traffic-generator.bookinfo": { + "name": "kiali-traffic-generator", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali.istio-system": { + "name": "kiali", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "mysqldb-v1.travel-agency": { + "name": "mysqldb-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "productpage-v1.bookinfo": { + "name": "productpage-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "prometheus.istio-system": { + "name": "prometheus", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "ratings-v1.bookinfo": { + "name": "ratings-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v1.bookinfo": { + "name": "reviews-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v2.bookinfo": { + "name": "reviews-v2", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v3.bookinfo": { + "name": "reviews-v3", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels-v1.travel-agency": { + "name": "travels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels.travel-portal": { + "name": "travels", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "viaggi.travel-portal": { + "name": "viaggi", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "voyages.travel-portal": { + "name": "voyages", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/services/voyages.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/services/voyages.json new file mode 100644 index 0000000000..f35921d4ef --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/services/voyages.json @@ -0,0 +1,347 @@ +{ + "cluster": "Kubernetes", + "destinationRules": [], + "endpoints": [ + { + "addresses": [ + { + "kind": "Pod", + "name": "voyages-59857896bf-f87ld", + "ip": "10.244.0.39", + "port": 0 + } + ], + "ports": [ + { + "name": "http", + "protocol": "TCP", + "port": 8000 + } + ] + } + ], + "istioPermissions": { + "create": true, + "update": true, + "delete": true + }, + "istioSidecar": true, + "k8sHTTPRoutes": [], + "k8sReferenceGrants": null, + "service": { + "name": "voyages", + "createdAt": "2024-02-27T13:11:52Z", + "resourceVersion": "53664", + "namespace": { + "name": "travel-portal", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "labels": { + "app": "voyages" + }, + "selectors": { + "app": "voyages" + }, + "type": "ClusterIP", + "ip": "10.99.49.131", + "ports": [ + { + "name": "http", + "protocol": "TCP", + "port": 8000 + } + ], + "externalName": "", + "annotations": { + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"voyages\"},\"name\":\"voyages\",\"namespace\":\"travel-portal\"},\"spec\":{\"ports\":[{\"name\":\"http\",\"port\":8000}],\"selector\":{\"app\":\"voyages\"}}}\n" + }, + "healthAnnotations": {}, + "additionalDetails": [] + }, + "serviceEntries": null, + "virtualServices": [], + "workloads": [ + { + "name": "voyages", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-02-27T13:11:52Z", + "resourceVersion": "54104", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "voyages", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"name\":\"voyages\",\"namespace\":\"travel-portal\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"voyages\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"annotations\":{\"proxy.istio.io/config\":\"tracing:\\n zipkin:\\n address: zipkin.istio-system:9411\\n sampling: 10\\n custom_tags:\\n http.header.portal:\\n header:\\n name: portal\\n http.header.device:\\n header:\\n name: device\\n http.header.user:\\n header:\\n name: user\\n http.header.travel:\\n header:\\n name: travel\\n\",\"readiness.status.sidecar.istio.io/applicationPorts\":\"\"},\"labels\":{\"app\":\"voyages\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"LISTEN_ADDRESS\",\"value\":\":8000\"},{\"name\":\"PORTAL_COORDINATES\",\"value\":\"48.861310,2.337418\"},{\"name\":\"PORTAL_COUNTRY\",\"value\":\"France\"},{\"name\":\"PORTAL_NAME\",\"value\":\"voyages.fr\"},{\"name\":\"TRAVELS_AGENCY_SERVICE\",\"value\":\"http://travels.travel-agency:8000\"}],\"image\":\"quay.io/kiali/demo_travels_portal:v1\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"voyages\",\"ports\":[{\"containerPort\":8000}],\"securityContext\":{\"allowPrivilegeEscalation\":false,\"capabilities\":{\"drop\":[\"ALL\"]},\"privileged\":false,\"readOnlyRootFilesystem\":true}}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["default"], + "health": { + "workloadStatus": null, + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + }, + "namespaceMTLS": { + "status": "MTLS_NOT_ENABLED", + "autoMTLSEnabled": true, + "minTLS": "" + }, + "subServices": [ + { + "name": "voyages", + "namespace": "", + "istioSidecar": false, + "cluster": "", + "istioAmbient": false, + "appLabel": false, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": null, + "ports": { + "http": 8000 + }, + "labels": null, + "selector": null, + "istioReferences": null, + "kialiWizard": "", + "serviceRegistry": "", + "health": { + "requests": { + "inbound": null, + "outbound": null, + "healthAnnotations": null + } + } + } + ], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": true, + "checks": [], + "references": null + } + }, + "service": { + "voyages.travel-portal": { + "name": "voyages", + "objectType": "service", + "valid": true, + "checks": [], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "cars-v1.travel-agency": { + "name": "cars-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "control.travel-control": { + "name": "control", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "details-v1.bookinfo": { + "name": "details-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "discounts-v1.travel-agency": { + "name": "discounts-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "flights-v1.travel-agency": { + "name": "flights-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "grafana.istio-system": { + "name": "grafana", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "hotels-v1.travel-agency": { + "name": "hotels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "insurances-v1.travel-agency": { + "name": "insurances-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-egressgateway.istio-system": { + "name": "istio-egressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istio-ingressgateway.istio-system": { + "name": "istio-ingressgateway", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "istiod.istio-system": { + "name": "istiod", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "jaeger.istio-system": { + "name": "jaeger", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali-traffic-generator.bookinfo": { + "name": "kiali-traffic-generator", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "kiali.istio-system": { + "name": "kiali", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "mysqldb-v1.travel-agency": { + "name": "mysqldb-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "productpage-v1.bookinfo": { + "name": "productpage-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "prometheus.istio-system": { + "name": "prometheus", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "ratings-v1.bookinfo": { + "name": "ratings-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v1.bookinfo": { + "name": "reviews-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v2.bookinfo": { + "name": "reviews-v2", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "reviews-v3.bookinfo": { + "name": "reviews-v3", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels-v1.travel-agency": { + "name": "travels-v1", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "travels.travel-portal": { + "name": "travels", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "viaggi.travel-portal": { + "name": "viaggi", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "voyages.travel-portal": { + "name": "voyages", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/spans.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/spans.json new file mode 100644 index 0000000000..fd98d9454c --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/spans.json @@ -0,0 +1,1542 @@ +[ + { + "traceID": "d3abae60e2de780002abaaac84a3da98", + "spanID": "02abaaac84a3da98", + "operationName": "travels.travel-agency.svc.cluster.local:8000/*", + "references": [], + "startTime": 1710323687159038, + "duration": 4769, + "tags": [ + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "576c3b27-83a2-9200-93a1-a295876c50b0" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "travels" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.header.travel", + "type": "string", + "value": "t1" + }, + { + "key": "http.header.device", + "type": "string", + "value": "web" + }, + { + "key": "http.url", + "type": "string", + "value": "http://travels.travel-agency:8000/travels" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.header.user", + "type": "string", + "value": "new" + }, + { + "key": "response_size", + "type": "string", + "value": "2286" + }, + { + "key": "http.header.portal", + "type": "string", + "value": "travels.uk" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.27" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.27~travels-969557fd4-pvsqw.travel-portal~travel-portal.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|8000||travels.travel-agency.svc.cluster.local" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "travel-portal" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|8000||travels.travel-agency.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p1", + "process": { + "serviceName": "travels.travel-portal", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762971 + } + ] + }, + "warnings": null, + "traceSize": 4 + }, + { + "traceID": "a8cfad5ab9d2bf9899fe60f3fe4e68f3", + "spanID": "99fe60f3fe4e68f3", + "operationName": "travels.travel-agency.svc.cluster.local:8000/*", + "references": [], + "startTime": 1710323604497093, + "duration": 4332, + "tags": [ + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "2286" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.header.device", + "type": "string", + "value": "mobile" + }, + { + "key": "http.url", + "type": "string", + "value": "http://travels.travel-agency:8000/travels" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.27" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.header.user", + "type": "string", + "value": "registered" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "travels" + }, + { + "key": "http.header.travel", + "type": "string", + "value": "t2" + }, + { + "key": "http.header.portal", + "type": "string", + "value": "travels.uk" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "44360457-e6d8-97bc-84f3-133ba2d7ca91" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "travel-portal" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|8000||travels.travel-agency.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|8000||travels.travel-agency.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.27~travels-969557fd4-pvsqw.travel-portal~travel-portal.svc.cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p1", + "process": { + "serviceName": "travels.travel-portal", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762971 + } + ] + }, + "warnings": null, + "traceSize": 4 + }, + { + "traceID": "d9abc75e35d9ccc3a522d02c3ed9be79", + "spanID": "a522d02c3ed9be79", + "operationName": "travels.travel-agency.svc.cluster.local:8000/*", + "references": [], + "startTime": 1710323566923628, + "duration": 6153, + "tags": [ + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.header.user", + "type": "string", + "value": "new" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "travel-portal" + }, + { + "key": "http.header.portal", + "type": "string", + "value": "travels.uk" + }, + { + "key": "http.header.travel", + "type": "string", + "value": "t3" + }, + { + "key": "http.url", + "type": "string", + "value": "http://travels.travel-agency:8000/travels/Podgorica" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "http.header.device", + "type": "string", + "value": "web" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.27~travels-969557fd4-pvsqw.travel-portal~travel-portal.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|8000||travels.travel-agency.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|8000||travels.travel-agency.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "travels" + }, + { + "key": "response_size", + "type": "string", + "value": "400" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "ff4596aa-d521-96f5-b0a0-f4bcb93f4c50" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.27" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p1", + "process": { + "serviceName": "travels.travel-portal", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762971 + } + ] + }, + "warnings": null, + "traceSize": 14 + }, + { + "traceID": "5424f3eba001d557b89e05103ebfda06", + "spanID": "b89e05103ebfda06", + "operationName": "travels.travel-agency.svc.cluster.local:8000/*", + "references": [], + "startTime": 1710323491773586, + "duration": 5640, + "tags": [ + { + "key": "http.header.device", + "type": "string", + "value": "web" + }, + { + "key": "http.header.user", + "type": "string", + "value": "new" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|8000||travels.travel-agency.svc.cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|8000||travels.travel-agency.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.27" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.header.travel", + "type": "string", + "value": "t2" + }, + { + "key": "http.url", + "type": "string", + "value": "http://travels.travel-agency:8000/travels/Sarajevo" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.header.portal", + "type": "string", + "value": "travels.uk" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "79bd2bc1-7270-97f2-8c78-07e7348a331c" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "response_size", + "type": "string", + "value": "448" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "travel-portal" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.27~travels-969557fd4-pvsqw.travel-portal~travel-portal.svc.cluster.local" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "travels" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p1", + "process": { + "serviceName": "travels.travel-portal", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762971 + } + ] + }, + "warnings": null, + "traceSize": 14 + }, + { + "traceID": "fb8ddad357b57b17045ac738470a8ad5", + "spanID": "045ac738470a8ad5", + "operationName": "travels.travel-agency.svc.cluster.local:8000/*", + "references": [], + "startTime": 1710323717227392, + "duration": 15185, + "tags": [ + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|8000||travels.travel-agency.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.27~travels-969557fd4-pvsqw.travel-portal~travel-portal.svc.cluster.local" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "travels" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.27" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.header.user", + "type": "string", + "value": "new" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "response_size", + "type": "string", + "value": "2286" + }, + { + "key": "http.header.travel", + "type": "string", + "value": "t2" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "travel-portal" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "0d84b3c3-0cfc-93b4-a869-3087d4e8194a" + }, + { + "key": "http.url", + "type": "string", + "value": "http://travels.travel-agency:8000/travels" + }, + { + "key": "http.header.portal", + "type": "string", + "value": "travels.uk" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "http.header.device", + "type": "string", + "value": "web" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|8000||travels.travel-agency.svc.cluster.local" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p1", + "process": { + "serviceName": "travels.travel-portal", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762971 + } + ] + }, + "warnings": null, + "traceSize": 4 + }, + { + "traceID": "ac54b021ecb80039c0a465d1300183b1", + "spanID": "c0a465d1300183b1", + "operationName": "travels.travel-agency.svc.cluster.local:8000/*", + "references": [], + "startTime": 1710323702196354, + "duration": 5222, + "tags": [ + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "http.header.user", + "type": "string", + "value": "new" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "http.header.travel", + "type": "string", + "value": "t3" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|8000||travels.travel-agency.svc.cluster.local" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|8000||travels.travel-agency.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://travels.travel-agency:8000/travels/Moscow" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.header.device", + "type": "string", + "value": "web" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "0f862aae-9cb9-9271-8c4c-52d4094ba473" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.header.portal", + "type": "string", + "value": "travels.uk" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "travels" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.27~travels-969557fd4-pvsqw.travel-portal~travel-portal.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "402" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "travel-portal" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.27" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p1", + "process": { + "serviceName": "travels.travel-portal", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762971 + } + ] + }, + "warnings": null, + "traceSize": 14 + }, + { + "traceID": "99cde2f70a2692fc1b402354ca3cb11d", + "spanID": "1b402354ca3cb11d", + "operationName": "travels.travel-agency.svc.cluster.local:8000/*", + "references": [], + "startTime": 1710323589468941, + "duration": 4208, + "tags": [ + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.url", + "type": "string", + "value": "http://travels.travel-agency:8000/travels" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.27" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "travel-portal" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "572e6c2a-2e66-95cd-9343-0c01b49e202b" + }, + { + "key": "http.header.portal", + "type": "string", + "value": "travels.uk" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|8000||travels.travel-agency.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.header.travel", + "type": "string", + "value": "t3" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "http.header.user", + "type": "string", + "value": "registered" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.27~travels-969557fd4-pvsqw.travel-portal~travel-portal.svc.cluster.local" + }, + { + "key": "http.header.device", + "type": "string", + "value": "mobile" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "travels" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|8000||travels.travel-agency.svc.cluster.local" + }, + { + "key": "response_size", + "type": "string", + "value": "2286" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p1", + "process": { + "serviceName": "travels.travel-portal", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762971 + } + ] + }, + "warnings": null, + "traceSize": 4 + }, + { + "traceID": "812e5fd0f48d8236b82d646fb363c422", + "spanID": "b82d646fb363c422", + "operationName": "travels.travel-agency.svc.cluster.local:8000/*", + "references": [], + "startTime": 1710323446674823, + "duration": 6370, + "tags": [ + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.27" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.27~travels-969557fd4-pvsqw.travel-portal~travel-portal.svc.cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "travel-portal" + }, + { + "key": "http.header.portal", + "type": "string", + "value": "travels.uk" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|8000||travels.travel-agency.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "http.header.device", + "type": "string", + "value": "web" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "travels" + }, + { + "key": "http.header.travel", + "type": "string", + "value": "t2" + }, + { + "key": "response_size", + "type": "string", + "value": "456" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.url", + "type": "string", + "value": "http://travels.travel-agency:8000/travels/Bucharest" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "d920914f-f442-9f41-a7ad-7b0fa864c9bf" + }, + { + "key": "http.header.user", + "type": "string", + "value": "new" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|8000||travels.travel-agency.svc.cluster.local" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p1", + "process": { + "serviceName": "travels.travel-portal", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762971 + } + ] + }, + "warnings": null, + "traceSize": 14 + }, + { + "traceID": "7a675338186614c325358ff74d719464", + "spanID": "25358ff74d719464", + "operationName": "travels.travel-agency.svc.cluster.local:8000/*", + "references": [], + "startTime": 1710323664619789, + "duration": 6186, + "tags": [ + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|8000||travels.travel-agency.svc.cluster.local" + }, + { + "key": "http.header.travel", + "type": "string", + "value": "t1" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "travels" + }, + { + "key": "http.header.user", + "type": "string", + "value": "registered" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|8000||travels.travel-agency.svc.cluster.local" + }, + { + "key": "http.url", + "type": "string", + "value": "http://travels.travel-agency:8000/travels/Nicosia" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "travel-portal" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "response_size", + "type": "string", + "value": "525" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "1a1eb77c-5eb4-99b4-93a9-9b9fa7dc5a22" + }, + { + "key": "http.header.portal", + "type": "string", + "value": "travels.uk" + }, + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.27~travels-969557fd4-pvsqw.travel-portal~travel-portal.svc.cluster.local" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.header.device", + "type": "string", + "value": "mobile" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.27" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p1", + "process": { + "serviceName": "travels.travel-portal", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762971 + } + ] + }, + "warnings": null, + "traceSize": 18 + }, + { + "traceID": "a1a5c8fbb45c23173c7cafec27ed735b", + "spanID": "3c7cafec27ed735b", + "operationName": "travels.travel-agency.svc.cluster.local:8000/*", + "references": [], + "startTime": 1710323619531704, + "duration": 6138, + "tags": [ + { + "key": "node_id", + "type": "string", + "value": "sidecar~10.244.0.27~travels-969557fd4-pvsqw.travel-portal~travel-portal.svc.cluster.local" + }, + { + "key": "http.status_code", + "type": "string", + "value": "200" + }, + { + "key": "http.protocol", + "type": "string", + "value": "HTTP/1.1" + }, + { + "key": "response_flags", + "type": "string", + "value": "-" + }, + { + "key": "user_agent", + "type": "string", + "value": "Go-http-client/1.1" + }, + { + "key": "http.header.portal", + "type": "string", + "value": "travels.uk" + }, + { + "key": "response_size", + "type": "string", + "value": "525" + }, + { + "key": "istio.canonical_service", + "type": "string", + "value": "travels" + }, + { + "key": "istio.cluster_id", + "type": "string", + "value": "Kubernetes" + }, + { + "key": "http.method", + "type": "string", + "value": "GET" + }, + { + "key": "peer.address", + "type": "string", + "value": "10.244.0.27" + }, + { + "key": "http.url", + "type": "string", + "value": "http://travels.travel-agency:8000/travels/Nicosia" + }, + { + "key": "http.header.travel", + "type": "string", + "value": "t1" + }, + { + "key": "component", + "type": "string", + "value": "proxy" + }, + { + "key": "istio.namespace", + "type": "string", + "value": "travel-portal" + }, + { + "key": "http.header.device", + "type": "string", + "value": "mobile" + }, + { + "key": "guid:x-request-id", + "type": "string", + "value": "03213dca-6a36-910b-930e-cfa919b66b28" + }, + { + "key": "request_size", + "type": "string", + "value": "0" + }, + { + "key": "istio.canonical_revision", + "type": "string", + "value": "v1" + }, + { + "key": "istio.mesh_id", + "type": "string", + "value": "cluster.local" + }, + { + "key": "upstream_cluster", + "type": "string", + "value": "outbound|8000||travels.travel-agency.svc.cluster.local" + }, + { + "key": "downstream_cluster", + "type": "string", + "value": "-" + }, + { + "key": "upstream_cluster.name", + "type": "string", + "value": "outbound|8000||travels.travel-agency.svc.cluster.local" + }, + { + "key": "http.header.user", + "type": "string", + "value": "registered" + }, + { + "key": "span.kind", + "type": "string", + "value": "client" + }, + { + "key": "internal.span.format", + "type": "string", + "value": "zipkin" + } + ], + "logs": [], + "processID": "p1", + "process": { + "serviceName": "travels.travel-portal", + "tags": [ + { + "key": "ip", + "type": "int64", + "value": 183762971 + } + ] + }, + "warnings": null, + "traceSize": 18 + } +] diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/tls.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/tls.json new file mode 100644 index 0000000000..ea7db32cbb --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/tls.json @@ -0,0 +1 @@ +{ "status": "MTLS_NOT_ENABLED", "autoMTLSEnabled": true, "minTLS": "" } diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/workloads.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/workloads.json new file mode 100644 index 0000000000..ad60ded885 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/workloads.json @@ -0,0 +1,165 @@ +{ + "namespace": { + "name": "travel-portal", + "cluster": "", + "isAmbient": false, + "labels": null, + "annotations": null + }, + "workloads": [ + { + "name": "travels", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-01-31T14:07:06Z", + "resourceVersion": "81433", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "travels", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"name\":\"travels\",\"namespace\":\"travel-portal\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"travels\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"annotations\":{\"proxy.istio.io/config\":\"tracing:\\n zipkin:\\n address: zipkin.istio-system:9411\\n sampling: 10\\n custom_tags:\\n http.header.portal:\\n header:\\n name: portal\\n http.header.device:\\n header:\\n name: device\\n http.header.user:\\n header:\\n name: user\\n http.header.travel:\\n header:\\n name: travel\\n\",\"readiness.status.sidecar.istio.io/applicationPorts\":\"\"},\"labels\":{\"app\":\"travels\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"LISTEN_ADDRESS\",\"value\":\":8000\"},{\"name\":\"PORTAL_COORDINATES\",\"value\":\"55.956245,-3.187915\"},{\"name\":\"PORTAL_COUNTRY\",\"value\":\"United Kingdom\"},{\"name\":\"PORTAL_NAME\",\"value\":\"travels.uk\"},{\"name\":\"TRAVELS_AGENCY_SERVICE\",\"value\":\"http://travels.travel-agency:8000\"}],\"image\":\"quay.io/kiali/demo_travels_portal:v1\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"control\",\"ports\":[{\"containerPort\":8000}],\"securityContext\":{\"allowPrivilegeEscalation\":false,\"capabilities\":{\"drop\":[\"ALL\"]},\"privileged\":false,\"readOnlyRootFilesystem\":true}}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["default"], + "health": { + "workloadStatus": { + "name": "travels", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": {}, + "outbound": { + "http": { + "200": 0.2666666666666666 + } + }, + "healthAnnotations": {} + } + } + }, + { + "name": "viaggi", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-01-31T14:07:06Z", + "resourceVersion": "81479", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "viaggi", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"name\":\"viaggi\",\"namespace\":\"travel-portal\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"viaggi\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"annotations\":{\"proxy.istio.io/config\":\"tracing:\\n zipkin:\\n address: zipkin.istio-system:9411\\n sampling: 10\\n custom_tags:\\n http.header.portal:\\n header:\\n name: portal\\n http.header.device:\\n header:\\n name: device\\n http.header.user:\\n header:\\n name: user\\n http.header.travel:\\n header:\\n name: travel\\n\",\"readiness.status.sidecar.istio.io/applicationPorts\":\"\"},\"labels\":{\"app\":\"viaggi\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"LISTEN_ADDRESS\",\"value\":\":8000\"},{\"name\":\"PORTAL_COORDINATES\",\"value\":\"41.890668,12.492194\"},{\"name\":\"PORTAL_COUNTRY\",\"value\":\"Italy\"},{\"name\":\"PORTAL_NAME\",\"value\":\"viaggi.it\"},{\"name\":\"TRAVELS_AGENCY_SERVICE\",\"value\":\"http://travels.travel-agency:8000\"}],\"image\":\"quay.io/kiali/demo_travels_portal:v1\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"control\",\"ports\":[{\"containerPort\":8000}],\"securityContext\":{\"allowPrivilegeEscalation\":false,\"capabilities\":{\"drop\":[\"ALL\"]},\"privileged\":false,\"readOnlyRootFilesystem\":true}}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["default"], + "health": { + "workloadStatus": { + "name": "viaggi", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": {}, + "outbound": { + "http": { + "200": 0.2644533333333333 + } + }, + "healthAnnotations": {} + } + } + }, + { + "name": "voyages", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-01-31T14:07:06Z", + "resourceVersion": "81495", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "voyages", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 1, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"name\":\"voyages\",\"namespace\":\"travel-portal\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"voyages\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"annotations\":{\"proxy.istio.io/config\":\"tracing:\\n zipkin:\\n address: zipkin.istio-system:9411\\n sampling: 10\\n custom_tags:\\n http.header.portal:\\n header:\\n name: portal\\n http.header.device:\\n header:\\n name: device\\n http.header.user:\\n header:\\n name: user\\n http.header.travel:\\n header:\\n name: travel\\n\",\"readiness.status.sidecar.istio.io/applicationPorts\":\"\"},\"labels\":{\"app\":\"voyages\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"LISTEN_ADDRESS\",\"value\":\":8000\"},{\"name\":\"PORTAL_COORDINATES\",\"value\":\"48.861310,2.337418\"},{\"name\":\"PORTAL_COUNTRY\",\"value\":\"France\"},{\"name\":\"PORTAL_NAME\",\"value\":\"voyages.fr\"},{\"name\":\"TRAVELS_AGENCY_SERVICE\",\"value\":\"http://travels.travel-agency:8000\"}],\"image\":\"quay.io/kiali/demo_travels_portal:v1\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"voyages\",\"ports\":[{\"containerPort\":8000}],\"securityContext\":{\"allowPrivilegeEscalation\":false,\"capabilities\":{\"drop\":[\"ALL\"]},\"privileged\":false,\"readOnlyRootFilesystem\":true}}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": [], + "dashboardAnnotations": null, + "serviceAccountNames": ["default"], + "health": { + "workloadStatus": { + "name": "voyages", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": {}, + "outbound": { + "http": { + "200": 0.2605377777777778 + } + }, + "healthAnnotations": {} + } + } + } + ], + "validations": { + "workload": { + "travels.travel-portal": { + "name": "travels", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "viaggi.travel-portal": { + "name": "viaggi", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + }, + "voyages.travel-portal": { + "name": "voyages", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/workloads/travels.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/workloads/travels.json new file mode 100644 index 0000000000..2aa682c520 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/workloads/travels.json @@ -0,0 +1,195 @@ +{ + "name": "travels", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-03-13T09:49:39Z", + "resourceVersion": "61462", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "travels", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 0, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"name\":\"travels\",\"namespace\":\"travel-portal\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"travels\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"annotations\":{\"proxy.istio.io/config\":\"tracing:\\n zipkin:\\n address: zipkin.istio-system:9411\\n sampling: 10\\n custom_tags:\\n http.header.portal:\\n header:\\n name: portal\\n http.header.device:\\n header:\\n name: device\\n http.header.user:\\n header:\\n name: user\\n http.header.travel:\\n header:\\n name: travel\\n\",\"readiness.status.sidecar.istio.io/applicationPorts\":\"\"},\"labels\":{\"app\":\"travels\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"LISTEN_ADDRESS\",\"value\":\":8000\"},{\"name\":\"PORTAL_COORDINATES\",\"value\":\"55.956245,-3.187915\"},{\"name\":\"PORTAL_COUNTRY\",\"value\":\"United Kingdom\"},{\"name\":\"PORTAL_NAME\",\"value\":\"travels.uk\"},{\"name\":\"TRAVELS_AGENCY_SERVICE\",\"value\":\"http://travels.travel-agency:8000\"}],\"image\":\"quay.io/kiali/demo_travels_portal:v1\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"control\",\"ports\":[{\"containerPort\":8000}],\"securityContext\":{\"allowPrivilegeEscalation\":false,\"capabilities\":{\"drop\":[\"ALL\"]},\"privileged\":false,\"readOnlyRootFilesystem\":true}}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": null, + "dashboardAnnotations": {}, + "serviceAccountNames": null, + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "pods": [ + { + "name": "travels-969557fd4-pvsqw", + "labels": { + "app": "travels", + "pod-template-hash": "969557fd4", + "security.istio.io/tlsMode": "istio", + "service.istio.io/canonical-name": "travels", + "service.istio.io/canonical-revision": "v1", + "version": "v1" + }, + "createdAt": "2024-03-13T09:49:39Z", + "createdBy": [ + { + "name": "travels-969557fd4", + "kind": "ReplicaSet" + } + ], + "containers": [ + { + "name": "control", + "image": "quay.io/kiali/demo_travels_portal:v1", + "isProxy": false, + "isReady": true, + "isAmbient": false + } + ], + "istioContainers": [ + { + "name": "istio-proxy", + "image": "gcr.io/istio-release/proxyv2:1.21.0-rc.0", + "isProxy": true, + "isReady": true, + "isAmbient": false + } + ], + "istioInitContainers": [ + { + "name": "istio-init", + "image": "gcr.io/istio-release/proxyv2:1.21.0-rc.0", + "isProxy": true, + "isReady": true, + "isAmbient": false + } + ], + "status": "Running", + "statusMessage": "", + "statusReason": "", + "appLabel": true, + "versionLabel": true, + "annotations": { + "istio.io/rev": "default", + "kubectl.kubernetes.io/default-container": "control", + "kubectl.kubernetes.io/default-logs-container": "control", + "prometheus.io/path": "/stats/prometheus", + "prometheus.io/port": "15020", + "prometheus.io/scrape": "true", + "proxy.istio.io/config": "tracing:\n zipkin:\n address: zipkin.istio-system:9411\n sampling: 10\n custom_tags:\n http.header.portal:\n header:\n name: portal\n http.header.device:\n header:\n name: device\n http.header.user:\n header:\n name: user\n http.header.travel:\n header:\n name: travel\n", + "readiness.status.sidecar.istio.io/applicationPorts": "", + "sidecar.istio.io/status": "{\"initContainers\":[\"istio-init\"],\"containers\":[\"istio-proxy\"],\"volumes\":[\"workload-socket\",\"credential-socket\",\"workload-certs\",\"istio-envoy\",\"istio-data\",\"istio-podinfo\",\"istio-token\",\"istiod-ca-cert\"],\"imagePullSecrets\":null,\"revision\":\"default\"}" + }, + "proxyStatus": { + "CDS": "Synced", + "EDS": "Synced", + "LDS": "Synced", + "RDS": "Synced" + }, + "serviceAccountName": "default" + } + ], + "services": [ + { + "name": "travels", + "namespace": "travel-portal", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "travels" + }, + "selector": { + "app": "travels" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + } + ], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "additionalDetails": [], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": false, + "checks": [ + { + "code": "KIA0302", + "message": "No matching workload found for gateway selector in this namespace", + "severity": "warning", + "path": "spec/selector" + } + ], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "travels.travel-portal": { + "name": "travels", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + }, + "waypointWorkloads": null, + "health": { + "workloadStatus": { + "name": "travels", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": {}, + "outbound": { + "http": { + "200": 0.2666666666666666 + } + }, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/workloads/viaggi.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/workloads/viaggi.json new file mode 100644 index 0000000000..679f23d38b --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/workloads/viaggi.json @@ -0,0 +1,195 @@ +{ + "name": "viaggi", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-03-13T09:49:39Z", + "resourceVersion": "61419", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "viaggi", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 0, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"name\":\"viaggi\",\"namespace\":\"travel-portal\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"viaggi\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"annotations\":{\"proxy.istio.io/config\":\"tracing:\\n zipkin:\\n address: zipkin.istio-system:9411\\n sampling: 10\\n custom_tags:\\n http.header.portal:\\n header:\\n name: portal\\n http.header.device:\\n header:\\n name: device\\n http.header.user:\\n header:\\n name: user\\n http.header.travel:\\n header:\\n name: travel\\n\",\"readiness.status.sidecar.istio.io/applicationPorts\":\"\"},\"labels\":{\"app\":\"viaggi\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"LISTEN_ADDRESS\",\"value\":\":8000\"},{\"name\":\"PORTAL_COORDINATES\",\"value\":\"41.890668,12.492194\"},{\"name\":\"PORTAL_COUNTRY\",\"value\":\"Italy\"},{\"name\":\"PORTAL_NAME\",\"value\":\"viaggi.it\"},{\"name\":\"TRAVELS_AGENCY_SERVICE\",\"value\":\"http://travels.travel-agency:8000\"}],\"image\":\"quay.io/kiali/demo_travels_portal:v1\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"control\",\"ports\":[{\"containerPort\":8000}],\"securityContext\":{\"allowPrivilegeEscalation\":false,\"capabilities\":{\"drop\":[\"ALL\"]},\"privileged\":false,\"readOnlyRootFilesystem\":true}}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": null, + "dashboardAnnotations": {}, + "serviceAccountNames": null, + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "pods": [ + { + "name": "viaggi-65ff94c868-txxcq", + "labels": { + "app": "viaggi", + "pod-template-hash": "65ff94c868", + "security.istio.io/tlsMode": "istio", + "service.istio.io/canonical-name": "viaggi", + "service.istio.io/canonical-revision": "v1", + "version": "v1" + }, + "createdAt": "2024-03-13T09:49:39Z", + "createdBy": [ + { + "name": "viaggi-65ff94c868", + "kind": "ReplicaSet" + } + ], + "containers": [ + { + "name": "control", + "image": "quay.io/kiali/demo_travels_portal:v1", + "isProxy": false, + "isReady": true, + "isAmbient": false + } + ], + "istioContainers": [ + { + "name": "istio-proxy", + "image": "gcr.io/istio-release/proxyv2:1.21.0-rc.0", + "isProxy": true, + "isReady": true, + "isAmbient": false + } + ], + "istioInitContainers": [ + { + "name": "istio-init", + "image": "gcr.io/istio-release/proxyv2:1.21.0-rc.0", + "isProxy": true, + "isReady": true, + "isAmbient": false + } + ], + "status": "Running", + "statusMessage": "", + "statusReason": "", + "appLabel": true, + "versionLabel": true, + "annotations": { + "istio.io/rev": "default", + "kubectl.kubernetes.io/default-container": "control", + "kubectl.kubernetes.io/default-logs-container": "control", + "prometheus.io/path": "/stats/prometheus", + "prometheus.io/port": "15020", + "prometheus.io/scrape": "true", + "proxy.istio.io/config": "tracing:\n zipkin:\n address: zipkin.istio-system:9411\n sampling: 10\n custom_tags:\n http.header.portal:\n header:\n name: portal\n http.header.device:\n header:\n name: device\n http.header.user:\n header:\n name: user\n http.header.travel:\n header:\n name: travel\n", + "readiness.status.sidecar.istio.io/applicationPorts": "", + "sidecar.istio.io/status": "{\"initContainers\":[\"istio-init\"],\"containers\":[\"istio-proxy\"],\"volumes\":[\"workload-socket\",\"credential-socket\",\"workload-certs\",\"istio-envoy\",\"istio-data\",\"istio-podinfo\",\"istio-token\",\"istiod-ca-cert\"],\"imagePullSecrets\":null,\"revision\":\"default\"}" + }, + "proxyStatus": { + "CDS": "Synced", + "EDS": "Synced", + "LDS": "Synced", + "RDS": "Synced" + }, + "serviceAccountName": "default" + } + ], + "services": [ + { + "name": "viaggi", + "namespace": "travel-portal", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "viaggi" + }, + "selector": { + "app": "viaggi" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + } + ], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "additionalDetails": [], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": false, + "checks": [ + { + "code": "KIA0302", + "message": "No matching workload found for gateway selector in this namespace", + "severity": "warning", + "path": "spec/selector" + } + ], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "viaggi.travel-portal": { + "name": "viaggi", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + }, + "waypointWorkloads": null, + "health": { + "workloadStatus": { + "name": "viaggi", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": {}, + "outbound": { + "http": { + "200": 0.2666666666666666 + } + }, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/workloads/voyages.json b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/workloads/voyages.json new file mode 100644 index 0000000000..ffc5c232e5 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/__fixtures__/namespaces/travel-portal/workloads/voyages.json @@ -0,0 +1,195 @@ +{ + "name": "voyages", + "cluster": "Kubernetes", + "type": "Deployment", + "createdAt": "2024-03-13T09:49:39Z", + "resourceVersion": "61506", + "istioSidecar": true, + "istioAmbient": false, + "additionalDetailSample": null, + "labels": { + "app": "voyages", + "version": "v1" + }, + "appLabel": true, + "versionLabel": true, + "podCount": 0, + "annotations": { + "deployment.kubernetes.io/revision": "1", + "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"name\":\"voyages\",\"namespace\":\"travel-portal\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"voyages\",\"version\":\"v1\"}},\"template\":{\"metadata\":{\"annotations\":{\"proxy.istio.io/config\":\"tracing:\\n zipkin:\\n address: zipkin.istio-system:9411\\n sampling: 10\\n custom_tags:\\n http.header.portal:\\n header:\\n name: portal\\n http.header.device:\\n header:\\n name: device\\n http.header.user:\\n header:\\n name: user\\n http.header.travel:\\n header:\\n name: travel\\n\",\"readiness.status.sidecar.istio.io/applicationPorts\":\"\"},\"labels\":{\"app\":\"voyages\",\"version\":\"v1\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"LISTEN_ADDRESS\",\"value\":\":8000\"},{\"name\":\"PORTAL_COORDINATES\",\"value\":\"48.861310,2.337418\"},{\"name\":\"PORTAL_COUNTRY\",\"value\":\"France\"},{\"name\":\"PORTAL_NAME\",\"value\":\"voyages.fr\"},{\"name\":\"TRAVELS_AGENCY_SERVICE\",\"value\":\"http://travels.travel-agency:8000\"}],\"image\":\"quay.io/kiali/demo_travels_portal:v1\",\"imagePullPolicy\":\"IfNotPresent\",\"name\":\"voyages\",\"ports\":[{\"containerPort\":8000}],\"securityContext\":{\"allowPrivilegeEscalation\":false,\"capabilities\":{\"drop\":[\"ALL\"]},\"privileged\":false,\"readOnlyRootFilesystem\":true}}]}}}}\n" + }, + "healthAnnotations": {}, + "istioReferences": null, + "dashboardAnnotations": {}, + "serviceAccountNames": null, + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "pods": [ + { + "name": "voyages-59857896bf-86tq2", + "labels": { + "app": "voyages", + "pod-template-hash": "59857896bf", + "security.istio.io/tlsMode": "istio", + "service.istio.io/canonical-name": "voyages", + "service.istio.io/canonical-revision": "v1", + "version": "v1" + }, + "createdAt": "2024-03-13T09:49:39Z", + "createdBy": [ + { + "name": "voyages-59857896bf", + "kind": "ReplicaSet" + } + ], + "containers": [ + { + "name": "voyages", + "image": "quay.io/kiali/demo_travels_portal:v1", + "isProxy": false, + "isReady": true, + "isAmbient": false + } + ], + "istioContainers": [ + { + "name": "istio-proxy", + "image": "gcr.io/istio-release/proxyv2:1.21.0-rc.0", + "isProxy": true, + "isReady": true, + "isAmbient": false + } + ], + "istioInitContainers": [ + { + "name": "istio-init", + "image": "gcr.io/istio-release/proxyv2:1.21.0-rc.0", + "isProxy": true, + "isReady": true, + "isAmbient": false + } + ], + "status": "Running", + "statusMessage": "", + "statusReason": "", + "appLabel": true, + "versionLabel": true, + "annotations": { + "istio.io/rev": "default", + "kubectl.kubernetes.io/default-container": "voyages", + "kubectl.kubernetes.io/default-logs-container": "voyages", + "prometheus.io/path": "/stats/prometheus", + "prometheus.io/port": "15020", + "prometheus.io/scrape": "true", + "proxy.istio.io/config": "tracing:\n zipkin:\n address: zipkin.istio-system:9411\n sampling: 10\n custom_tags:\n http.header.portal:\n header:\n name: portal\n http.header.device:\n header:\n name: device\n http.header.user:\n header:\n name: user\n http.header.travel:\n header:\n name: travel\n", + "readiness.status.sidecar.istio.io/applicationPorts": "", + "sidecar.istio.io/status": "{\"initContainers\":[\"istio-init\"],\"containers\":[\"istio-proxy\"],\"volumes\":[\"workload-socket\",\"credential-socket\",\"workload-certs\",\"istio-envoy\",\"istio-data\",\"istio-podinfo\",\"istio-token\",\"istiod-ca-cert\"],\"imagePullSecrets\":null,\"revision\":\"default\"}" + }, + "proxyStatus": { + "CDS": "Synced", + "EDS": "Synced", + "LDS": "Synced", + "RDS": "Synced" + }, + "serviceAccountName": "default" + } + ], + "services": [ + { + "name": "voyages", + "namespace": "travel-portal", + "istioSidecar": true, + "cluster": "Kubernetes", + "istioAmbient": false, + "appLabel": true, + "additionalDetailSample": null, + "annotations": null, + "healthAnnotations": {}, + "ports": null, + "labels": { + "app": "voyages" + }, + "selector": { + "app": "voyages" + }, + "istioReferences": [], + "kialiWizard": "", + "serviceRegistry": "Kubernetes", + "health": { + "requests": { + "inbound": {}, + "outbound": {}, + "healthAnnotations": {} + } + } + } + ], + "runtimes": [ + { + "name": "", + "dashboardRefs": [ + { + "template": "envoy", + "title": "Envoy Metrics" + } + ] + } + ], + "additionalDetails": [], + "validations": { + "gateway": { + "bookinfo-gateway.bookinfo": { + "name": "bookinfo-gateway", + "objectType": "gateway", + "valid": false, + "checks": [ + { + "code": "KIA0302", + "message": "No matching workload found for gateway selector in this namespace", + "severity": "warning", + "path": "spec/selector" + } + ], + "references": null + } + }, + "virtualservice": { + "bookinfo.bookinfo": { + "name": "bookinfo", + "objectType": "virtualservice", + "valid": true, + "checks": [], + "references": null + } + }, + "workload": { + "voyages.travel-portal": { + "name": "voyages", + "objectType": "workload", + "valid": true, + "checks": [], + "references": null + } + } + }, + "waypointWorkloads": null, + "health": { + "workloadStatus": { + "name": "voyages", + "desiredReplicas": 1, + "currentReplicas": 1, + "availableReplicas": 1, + "syncedProxies": 1 + }, + "requests": { + "inbound": {}, + "outbound": { + "http": { + "200": 0.2666666666666666 + } + }, + "healthAnnotations": {} + } + } +} diff --git a/workspaces/kiali/plugins/kiali/dev/index.tsx b/workspaces/kiali/plugins/kiali/dev/index.tsx new file mode 100644 index 0000000000..0d05aecfe9 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/index.tsx @@ -0,0 +1,191 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ + +import React from 'react'; + +import { Content, InfoCard, Page } from '@backstage/core-components'; +import { createRoutableExtension } from '@backstage/core-plugin-api'; +import { createDevApp } from '@backstage/dev-utils'; +import { EntityProvider } from '@backstage/plugin-catalog-react'; +import { TestApiProvider } from '@backstage/test-utils'; + +import { Grid } from '@material-ui/core'; +import { getAllThemes } from '@redhat-developer/red-hat-developer-hub-theme'; + +import { EntityKialiResourcesCard, kialiPlugin } from '../src'; +import { KialiHelper } from '../src/pages/Kiali/KialiHelper'; +import { KialiNoAnnotation } from '../src/pages/Kiali/KialiNoAnnotation'; +import { KialiNoResources } from '../src/pages/Kiali/KialiNoResources'; +import { EntityKialiGraphCard, pluginName } from '../src/plugin'; +import { rootRouteRef } from '../src/routes'; +import { kialiApiRef } from '../src/services/Api'; +import { KialiChecker, ValidationCategory } from '../src/store/KialiProvider'; +import { mockEntity, mockEntityAnnotationNoNamespace } from './mockEntity'; +import { MockKialiClient } from './MockProvider'; + +const KialiMock = kialiPlugin.provide( + createRoutableExtension({ + name: 'KialiPage', + component: () => import('./MockProvider').then(m => m.MockProvider), + mountPoint: rootRouteRef, + }), +); + +const MockEntityCard = () => { + const content = ( + +
+ + + + + + + +
+
+ ); + + return ( + + {content} + + ); +}; + +const MockEntityGraphCard = () => { + const content = ( + +
+ + + + + + + +
+
+ ); + + return ( + + {content} + + ); +}; + +const MockKialiError = () => { + const errorsTypes: KialiChecker[] = [ + { + verify: false, + title: 'Error reaching Kiali', + message: ' Error status code 502', + category: ValidationCategory.networking, + helper: 'Check if http://kialiendpoint works', + }, + { + verify: false, + title: 'Authentication failed. Missing Configuration', + message: `Attribute 'serviceAccountToken' is not in the backstage configuration`, + category: ValidationCategory.configuration, + helper: 'Check if http://kialiendpoint works', + missingAttributes: ['serviceAccountToken'], + }, + { + verify: false, + title: 'Authentication failed. Not supported', + message: `Strategy oauth2 is not supported in Kiali backstage plugin yet`, + category: ValidationCategory.configuration, + }, + { + verify: false, + title: 'Authentication failed', + message: `We can't authenticate`, + category: ValidationCategory.authentication, + }, + { + verify: false, + title: 'Unkown error ', + message: `Internal error`, + category: ValidationCategory.unknown, + }, + { + verify: false, + title: 'kiali version not supported', + message: `Kiali version supported is v1.74, we found version v1.80`, + category: ValidationCategory.versionSupported, + }, + { + verify: true, + title: 'True verification, we not expect something', + category: ValidationCategory.unknown, + }, + ]; + + return ( + + + + {errorsTypes.map(error => ( + + + + + + ))} + + + + ); +}; + +createDevApp() + .registerPlugin(kialiPlugin) + .addThemes(getAllThemes()) + .addPage({ + element: , + title: 'KialiPage', + path: `/${pluginName}`, + }) + .addPage({ + element: , + title: 'Kiali error', + path: `/kiali-error`, + }) + .addPage({ + element: , + title: 'No resource', + path: '/no-resource', + }) + .addPage({ + element: , + title: 'No Annotation', + path: '/no-annotation', + }) + .addPage({ + element: , + title: 'Resources card', + path: '/kiali-entity-card', + }) + .addPage({ + element: , + title: 'Graph card', + path: '/kiali-graph-card', + }) + .render(); diff --git a/workspaces/kiali/plugins/kiali/dev/mockEntity.ts b/workspaces/kiali/plugins/kiali/dev/mockEntity.ts new file mode 100644 index 0000000000..3e3b3253e7 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/dev/mockEntity.ts @@ -0,0 +1,69 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { Entity } from '@backstage/catalog-model'; + +export const mockEntity: Entity = { + apiVersion: 'backstage.io/v1alpha1', + kind: 'Component', + metadata: { + name: 'backstage', + description: 'backstage.io', + annotations: { + 'backstage.io/kubernetes-namespace': + 'istio-system,bookinfo,travel-agency,travel-portal,travel-control', + }, + }, + spec: { + lifecycle: 'production', + type: 'service', + owner: 'user:guest', + }, +}; + +export const mockEntityNoAnnotation: Entity = { + apiVersion: 'backstage.io/v1alpha1', + kind: 'Component', + metadata: { + name: 'backstage', + description: 'backstage.io', + annotations: { + 'backstage.io/my-annotation': 'no annotation', + 'backstage.io/another-annotation': 'no other annotation', + }, + }, + spec: { + lifecycle: 'production', + type: 'service', + owner: 'user:guest', + }, +}; + +export const mockEntityAnnotationNoNamespace: Entity = { + apiVersion: 'backstage.io/v1alpha1', + kind: 'Component', + metadata: { + name: 'backstage', + description: 'backstage.io', + annotations: { + 'backstage.io/kubernetes-namespace': 'no-namespace', + }, + }, + spec: { + lifecycle: 'production', + type: 'service', + owner: 'user:guest', + }, +}; diff --git a/workspaces/kiali/plugins/kiali/package.json b/workspaces/kiali/plugins/kiali/package.json new file mode 100644 index 0000000000..6e15f424de --- /dev/null +++ b/workspaces/kiali/plugins/kiali/package.json @@ -0,0 +1,118 @@ +{ + "name": "@backstage-community/plugin-kiali", + "version": "1.35.0", + "main": "src/index.ts", + "types": "src/index.ts", + "license": "Apache-2.0", + "publishConfig": { + "access": "public", + "main": "dist/index.esm.js", + "types": "dist/index.d.ts" + }, + "backstage": { + "role": "frontend-plugin", + "supported-versions": "1.32.5", + "pluginId": "kiali", + "pluginPackages": [ + "@backstage-community/plugin-kiali", + "@backstage-community/plugin-kiali-backend" + ] + }, + "sideEffects": false, + "scripts": { + "start": "backstage-cli package start", + "build": "backstage-cli package build", + "lint": "backstage-cli package lint", + "test": "backstage-cli package test", + "clean": "backstage-cli package clean", + "prepack": "backstage-cli package prepack", + "postpack": "backstage-cli package postpack" + }, + "dependencies": { + "@backstage/catalog-model": "^1.7.0", + "@backstage/core-components": "^0.16.2", + "@backstage/core-plugin-api": "^1.10.0", + "@backstage/plugin-catalog-react": "^1.14.0", + "@material-ui/core": "^4.9.13", + "@material-ui/icons": "^4.11.3", + "@material-ui/lab": "^4.0.0-alpha.45", + "@mui/icons-material": "^5.15.8", + "@patternfly/patternfly": "^5.1.0", + "@patternfly/react-charts": "^7.1.1", + "@patternfly/react-core": "^5.1.1", + "@patternfly/react-icons": "^5.1.1", + "@patternfly/react-topology": "5.3.0", + "ace-builds": "^1.32.7", + "axios": "^1.7.4", + "cytoscape": "3.30.2", + "d3-format": "^3.1.0", + "deep-freeze": "0.0.1", + "history": "^5.3.0", + "js-yaml": "^3.13.1", + "json-beautify": "1.1.1", + "lodash": "^4.17.21", + "micro-memoize": "4.1.2", + "moment": "^2.29.4", + "prop-types": "^15.8.1", + "react-ace": "9.5.0", + "react-copy-to-clipboard": "5.x", + "react-use": "^17.4.0", + "regression": "^2.0.1", + "screenfull": "5.2.0", + "typesafe-actions": "^4.2.1", + "typestyle": "^2.4.0", + "victory-box-plot": "^36.9.1", + "victory-core": "^36.9.1", + "victory-voronoi-container": "^36.9.1" + }, + "peerDependencies": { + "react": "^16.13.1 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0", + "react-router-dom": "^6.0.0" + }, + "devDependencies": { + "@backstage/cli": "0.28.2", + "@backstage/dev-utils": "1.1.2", + "@backstage/test-utils": "1.7.0", + "@playwright/test": "1.45.3", + "@redhat-developer/red-hat-developer-hub-theme": "0.4.0", + "@testing-library/dom": "^10.0.0", + "@testing-library/jest-dom": "^6.0.0", + "@testing-library/react": "^15.0.0", + "@types/lodash": "^4.14.151", + "@types/node": "20.14.2", + "@types/react": "^18.2.58", + "@types/react-copy-to-clipboard": "5.0.7", + "@types/react-dom": "^18.2.19", + "@types/regression": "2.0.6", + "canvas": "^2.11.2", + "cross-fetch": "4.0.0", + "jest-canvas-mock": "2.5.2", + "prettier": "3.3.3", + "react": "^16.13.1 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0", + "react-router-dom": "^6.0.0", + "start-server-and-test": "2.0.8" + }, + "files": [ + "dist", + "dist-scalprum" + ], + "repository": { + "type": "git", + "url": "https://github.com/backstage/community-plugins", + "directory": "workspaces/kiali/plugins/kiali" + }, + "keywords": [ + "support:tech-preview", + "lifecycle:active", + "backstage", + "plugin" + ], + "homepage": "https://red.ht/rhdh", + "bugs": "https://github.com/backstage/community-plugins/issues", + "maintainers": [ + "@aljesusg" + ], + "author": "The Backstage Community" +} diff --git a/workspaces/kiali/plugins/kiali/report.api.md b/workspaces/kiali/plugins/kiali/report.api.md new file mode 100644 index 0000000000..7bb463cc35 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/report.api.md @@ -0,0 +1,49 @@ +## API Report File for "@backstage-community/plugin-kiali" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +/// + +import { BackstagePlugin } from '@backstage/core-plugin-api'; +import { JSX as JSX_2 } from 'react'; +import { default as KialiIcon } from '@mui/icons-material/Troubleshoot'; +import { RouteRef } from '@backstage/core-plugin-api'; +import { SubRouteRef } from '@backstage/core-plugin-api'; + +// Warning: (ae-forgotten-export) The symbol "EntityKialiContentProps" needs to be exported by the entry point index.d.ts +// Warning: (ae-missing-release-tag) "EntityKialiContent" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const EntityKialiContent: (props: EntityKialiContentProps) => JSX.Element; + +// Warning: (ae-missing-release-tag) "EntityKialiGraphCard" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const EntityKialiGraphCard: () => JSX_2.Element; + +// Warning: (ae-missing-release-tag) "EntityKialiResourcesCard" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const EntityKialiResourcesCard: () => JSX_2.Element; + +export { KialiIcon } + +// Warning: (ae-missing-release-tag) "KialiPage" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const KialiPage: () => JSX_2.Element; + +// Warning: (ae-missing-release-tag) "kialiPlugin" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const kialiPlugin: BackstagePlugin< { +root: RouteRef; +overview: SubRouteRef; +workloads: SubRouteRef; +}, {}, {}>; + +// (No @packageDocumentation comment for this package) + +``` diff --git a/workspaces/kiali/plugins/kiali/src/actions/ActionKeys.ts b/workspaces/kiali/plugins/kiali/src/actions/ActionKeys.ts new file mode 100644 index 0000000000..dc22b0a2e8 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/actions/ActionKeys.ts @@ -0,0 +1,121 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +export enum ActionKeys { + INCREMENT_LOADING_COUNTER = 'INCREMENT_LOADING_COUNTER', + DECREMENT_LOADING_COUNTER = 'DECREMENT_LOADING_COUNTER', + SET_PAGE_VISIBILITY_HIDDEN = 'SET_PAGE_VISIBILITY_HIDDEN', + SET_PAGE_VISIBILITY_VISIBLE = 'SET_PAGE_VISIBILITY_VISIBLE', + + GRAPH_ON_NAMESPACE_CHANGE = 'GRAPH_ON_NAMESPACE_CHANGE', + GRAPH_SET_DEFINITION = 'GRAPH_SET_DEFINITION', + GRAPH_SET_EDGE_MODE = 'GRAPH_SET_EDGE_MODE', + GRAPH_SET_LAYOUT = 'GRAPH_SET_LAYOUT', + GRAPH_SET_NAMESPACE_LAYOUT = 'GRAPH_SET_NAMESPACE_LAYOUT', + GRAPH_SET_NODE = 'GRAPH_SET_NODE', + GRAPH_SET_RANK_RESULT = 'GRAPH_SET_RANK_RESULT', + GRAPH_SET_UPDATE_TIME = 'GRAPH_SET_UPDATE_TIME', + + GRAPH_TOOLBAR_RESET_SETTINGS = 'GRAPH_TOOLBAR_RESET_SETTINGS', + + GRAPH_TOOLBAR_SET_EDGE_LABELS = 'GRAPH_TOOLBAR_SET_EDGE_LABEL_MODE', + GRAPH_TOOLBAR_SET_FIND_VALUE = 'GRAPH_TOOLBAR_SET_FIND_VALUE', + GRAPH_TOOLBAR_SET_GRAPH_TYPE = 'GRAPH_TOOLBAR_SET_GRAPH_TYPE', + GRAPH_TOOLBAR_SET_HIDE_VALUE = 'GRAPH_TOOLBAR_SET_HIDE_VALUE', + GRAPH_TOOLBAR_SET_IDLE_NODES = 'GRAPH_TOOLBAR_SET_IDLE_NODES', + GRAPH_TOOLBAR_SET_RANK_BY = 'GRAPH_TOOLBAR_SET_RANK_BY', + GRAPH_TOOLBAR_SET_TRAFFIC_RATES = 'GRAPH_TOOLBAR_SET_TRAFFIC_RATES', + + // Toggle Actions + GRAPH_TOOLBAR_TOGGLE_BOX_BY_CLUSTER = 'GRAPH_TOOLBAR_TOGGLE_BOX_BY_CLUSTER', + GRAPH_TOOLBAR_TOGGLE_BOX_BY_NAMESPACE = 'GRAPH_TOOLBAR_TOGGLE_BOX_BY_NAMESPACE', + GRAPH_TOOLBAR_TOGGLE_COMPRESS_ON_HIDE = 'GRAPH_TOOLBAR_TOGGLE_COMPRESS_ON_HIDE', + GRAPH_TOOLBAR_TOGGLE_GRAPH_VIRTUAL_SERVICES = 'GRAPH_TOOLBAR_TOGGLE_GRAPH_VIRTUAL_SERVICES', + GRAPH_TOOLBAR_TOGGLE_GRAPH_MISSING_SIDECARS = 'GRAPH_TOOLBAR_TOGGLE_GRAPH_MISSING_SIDECARS', + GRAPH_TOOLBAR_TOGGLE_GRAPH_SECURITY = 'GRAPH_TOOLBAR_TOGGLE_GRAPH_SECURITY', + GRAPH_TOOLBAR_TOGGLE_LEGEND = 'GRAPH_TOOLBAR_TOGGLE_LEGEND', + GRAPH_TOOLBAR_TOGGLE_FIND_HELP = 'GRAPH_TOOLBAR_TOGGLE_FIND_HELP', + GRAPH_TOOLBAR_TOGGLE_IDLE_EDGES = 'GRAPH_TOOLBAR_TOGGLE_IDLE_EDGES', + GRAPH_TOOLBAR_TOGGLE_IDLE_NODES = 'GRAPH_TOOLBAR_TOGGLE_IDLE_NODES', + GRAPH_TOOLBAR_TOGGLE_OPERATION_NODES = 'GRAPH_TOOLBAR_TOGGLE_OPERATION_NODES', + GRAPH_TOOLBAR_TOGGLE_RANK = 'GRAPH_TOOLBAR_TOGGLE_RANK', + GRAPH_TOOLBAR_TOGGLE_RANK_BY = 'GRAPH_TOOLBAR_TOGGLE_RANK_BY', + GRAPH_TOOLBAR_TOGGLE_SERVICE_NODES = 'GRAPH_TOOLBAR_TOGGLE_SERVICE_NODES', + GRAPH_TOOLBAR_TOGGLE_TRAFFIC_ANIMATION = 'GRAPH_TOOLBAR_TOGGLE_TRAFFIC_ANIMATION', + + GRAPH_UPDATE_SUMMARY = 'GRAPH_UPDATE_SUMMARY', + + // Disable Actions + ENABLE_GRAPH_FILTERS = 'ENABLE_GRAPH_FILTERS', + + HELP_STATUS_REFRESH = 'HELP_STATUS_REFRESH', + + JAEGER_SET_URL = 'JAEGER_SET_URL', + JAEGER_SET_ENABLED = 'JAEGER_SET_ENABLED', + JAEGER_SET_INFO = 'JAEGER_SET_INFO', + JAEGER_SET_TRACE_ID = 'JAEGER_SET_TRACE_ID', + JAEGER_SET_TRACE = 'JAEGER_SET_TRACE', + + LOGIN_REQUEST = 'LOGIN_REQUEST', + LOGIN_EXTEND = 'LOGIN_EXTEND', + LOGIN_SUCCESS = 'LOGIN_SUCCESS', + LOGIN_FAILURE = 'LOGIN_FAILURE', + LOGOUT_SUCCESS = 'LOGOUT_SUCCESS', + SESSION_EXPIRED = 'SESSION_EXPIRED', + SET_LANDING_ROUTE = 'SET_LANDING_ROUTE', + + MTLS_SET_INFO = 'MTLS_SET_INFO', + + ISTIO_STATUS_SET_INFO = 'ISTIO_STATUS_SET_INFO', + ISTIO_SET_CERTS_INFO = 'ISTIO_SET_CERTS_INFO', + + MC_ADD_MESSAGE = 'MC_ADD_MESSAGE', + MC_REMOVE_MESSAGE = 'MC_REMOVE_MESSAGE', + MC_MARK_MESSAGE_AS_READ = 'MC_MARK_MESSAGE_AS_READ', + MC_TOGGLE_MESSAGE_DETAIL = 'MC_TOGGLE_MESSAGE_DETAIL', + MC_SHOW = 'MC_SHOW', + MC_HIDE = 'MC_HIDE', + MC_TOGGLE_EXPAND = 'MC_TOGGLE_EXPAND', + MC_TOGGLE_GROUP = 'MC_TOGGLE_GROUP', + MC_HIDE_NOTIFICATION = 'MC_HIDE_NOTIFICATION', + MC_EXPAND_GROUP = 'MC_EXPAND_GROUP', + + METRICS_STATS_SET = 'METRICS_STATS_SET', + + NAMESPACE_REQUEST_STARTED = 'NAMESPACE_REQUEST_STARTED', + NAMESPACE_SUCCESS = 'NAMESPACE_SUCCESS', + NAMESPACE_FAILED = 'NAMESPACE_FAILED', + TOGGLE_ACTIVE_NAMESPACE = 'TOGGLE_ACTIVE_NAMESPACE', + SET_ACTIVE_NAMESPACES = 'SET_ACTIVE_NAMESPACES', + NAMESPACE_SET_FILTER = 'NAMESPACE_SET_FILTER', + + CLUSTER_SET_FILTER = 'CLUSTER_SET_FILTER', + SET_ACTIVE_CLUSTERS = 'SET_ACTIVE_CLUSTERS', + TOGGLE_ACTIVE_CLUSTER = 'TOGGLE_ACTIVE_CLUSTER', + + NAV_COLLAPSE = 'NAV_COLLAPSE', + SET_DURATION = 'SET_DURATION', + SET_KIOSK = 'SET_KIOSK', + SET_THEME = 'SET_THEME', + SET_LAST_REFRESH = 'SET_LAST_REFRESH', + SET_REFRESH_INTERVAL = 'SET_REFRESH_INTERVAL', + SET_REPLAY_QUERY_TIME = 'SET_REPLAY_QUERY_TIME', + SET_TIME_RANGE = 'SET_TIME_RANGE', + TOGGLE_REPLAY_ACTIVE = 'TOGGLE_REPLAY_ACTIVE', + + TOUR_END = 'TOUR_END', + TOUR_SET_STOP = 'TOUR_SET_STOP', + TOUR_START = 'TOUR_START', +} diff --git a/workspaces/kiali/plugins/kiali/src/actions/HelpDropdownActions.ts b/workspaces/kiali/plugins/kiali/src/actions/HelpDropdownActions.ts new file mode 100644 index 0000000000..d1cb8877be --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/actions/HelpDropdownActions.ts @@ -0,0 +1,34 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { ActionType, createAction } from 'typesafe-actions'; + +import { StatusState } from '../types/StatusState'; +import { ActionKeys } from './ActionKeys'; + +export const HelpDropdownActions: { [key: string]: any } = { + statusRefresh: createAction( + ActionKeys.HELP_STATUS_REFRESH, + resolve => (status: StatusState) => + resolve({ + status: status.status, + externalServices: status.externalServices, + warningMessages: status.warningMessages, + istioEnvironment: status.istioEnvironment, + }), + ), +}; + +export type HelpDropdownAction = ActionType; diff --git a/workspaces/kiali/plugins/kiali/src/actions/IstioCertsInfoActions.ts b/workspaces/kiali/plugins/kiali/src/actions/IstioCertsInfoActions.ts new file mode 100644 index 0000000000..5991bf4059 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/actions/IstioCertsInfoActions.ts @@ -0,0 +1,25 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { ActionType, createStandardAction } from 'typesafe-actions'; + +import { CertsInfo } from '../types/CertsInfo'; +import { ActionKeys } from './ActionKeys'; + +export const IstioCertsInfoActions = { + setinfo: createStandardAction(ActionKeys.ISTIO_SET_CERTS_INFO)(), +}; + +export type IstioCertsInfoAction = ActionType; diff --git a/workspaces/kiali/plugins/kiali/src/actions/IstioStatusActions.ts b/workspaces/kiali/plugins/kiali/src/actions/IstioStatusActions.ts new file mode 100644 index 0000000000..3b2514f9c9 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/actions/IstioStatusActions.ts @@ -0,0 +1,27 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { ActionType, createStandardAction } from 'typesafe-actions'; + +import { ComponentStatus } from '../types/IstioStatus'; +import { ActionKeys } from './ActionKeys'; + +export const IstioStatusActions = { + setinfo: createStandardAction(ActionKeys.ISTIO_STATUS_SET_INFO)< + ComponentStatus[] + >(), +}; + +export type IstioStatusAction = ActionType; diff --git a/workspaces/kiali/plugins/kiali/src/actions/KialiAppAction.ts b/workspaces/kiali/plugins/kiali/src/actions/KialiAppAction.ts new file mode 100644 index 0000000000..78149cdb95 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/actions/KialiAppAction.ts @@ -0,0 +1,33 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { HelpDropdownAction } from './HelpDropdownActions'; +import { IstioCertsInfoAction } from './IstioCertsInfoActions'; +import { IstioStatusAction } from './IstioStatusActions'; +import { LoginAction } from './LoginActions'; +import { MeshTlsAction } from './MeshTlsActions'; +import { MessageCenterAction } from './MessageCenterActions'; +import { NamespaceAction } from './NamespaceAction'; +import { UserSettingsAction } from './UserSettingsActions'; + +export type KialiAppAction = + | HelpDropdownAction + | LoginAction + | NamespaceAction + | UserSettingsAction + | IstioCertsInfoAction + | IstioStatusAction + | MeshTlsAction + | MessageCenterAction; diff --git a/workspaces/kiali/plugins/kiali/src/actions/LoginActions.ts b/workspaces/kiali/plugins/kiali/src/actions/LoginActions.ts new file mode 100644 index 0000000000..b8d5403724 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/actions/LoginActions.ts @@ -0,0 +1,78 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { + ActionType, + createAction, + createStandardAction, +} from 'typesafe-actions'; + +import { LoginSession, LoginStatus } from '../store/Store'; +import { ActionKeys } from './ActionKeys'; + +export interface LoginPayload { + error?: any; + landingRoute?: string; + session?: LoginSession; + status: LoginStatus; +} + +// synchronous action creators +export const LoginActions: { [key: string]: any } = { + loginRequest: createAction(ActionKeys.LOGIN_REQUEST), + loginExtend: createAction( + ActionKeys.LOGIN_EXTEND, + resolve => (session: LoginSession) => + resolve({ + status: LoginStatus.loggedIn, + session: session, + error: undefined, + } as LoginPayload), + ), + loginSuccess: createAction( + ActionKeys.LOGIN_SUCCESS, + resolve => (session: LoginSession) => + resolve({ + status: LoginStatus.loggedIn, + session: session, + error: undefined, + uiExpiresOn: session.expiresOn, + } as LoginPayload), + ), + loginFailure: createAction( + ActionKeys.LOGIN_FAILURE, + resolve => (error: any) => + resolve({ + status: LoginStatus.error, + session: undefined, + error: error, + } as LoginPayload), + ), + logoutSuccess: createAction( + ActionKeys.LOGOUT_SUCCESS, + resolve => () => + resolve({ + status: LoginStatus.loggedOut, + session: undefined, + error: undefined, + } as LoginPayload), + ), + sessionExpired: createAction(ActionKeys.SESSION_EXPIRED), + setLandingRoute: createStandardAction(ActionKeys.SET_LANDING_ROUTE)< + string | undefined + >(), +}; + +export type LoginAction = ActionType; diff --git a/workspaces/kiali/plugins/kiali/src/actions/MeshTlsActions.ts b/workspaces/kiali/plugins/kiali/src/actions/MeshTlsActions.ts new file mode 100644 index 0000000000..1affed8f94 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/actions/MeshTlsActions.ts @@ -0,0 +1,25 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { ActionType, createStandardAction } from 'typesafe-actions'; + +import { TLSStatus } from '../types/TLSStatus'; +import { ActionKeys } from './ActionKeys'; + +export const MeshTlsActions = { + setinfo: createStandardAction(ActionKeys.MTLS_SET_INFO)(), +}; + +export type MeshTlsAction = ActionType; diff --git a/workspaces/kiali/plugins/kiali/src/actions/MessageCenterActions.ts b/workspaces/kiali/plugins/kiali/src/actions/MessageCenterActions.ts new file mode 100644 index 0000000000..cfe9ba4d4d --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/actions/MessageCenterActions.ts @@ -0,0 +1,74 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { ActionType, createAction } from 'typesafe-actions'; + +import { MessageType } from '../types/MessageCenter'; +import { ActionKeys } from './ActionKeys'; + +const DEFAULT_GROUP_ID = 'default'; +const DEFAULT_MESSAGE_TYPE = MessageType.ERROR; + +type numberOrNumberArray = number | number[]; + +const toNumberArray = (n: numberOrNumberArray) => (Array.isArray(n) ? n : [n]); + +export const MessageCenterActions = { + addMessage: createAction( + ActionKeys.MC_ADD_MESSAGE, + resolve => + ( + content: string, + detail: string, + groupId: string = DEFAULT_GROUP_ID, + messageType: MessageType = DEFAULT_MESSAGE_TYPE, + showNotification: boolean = true, + ) => + resolve({ content, detail, groupId, messageType, showNotification }), + ), + removeMessage: createAction( + ActionKeys.MC_REMOVE_MESSAGE, + resolve => (messageId: numberOrNumberArray) => + resolve({ messageId: toNumberArray(messageId) }), + ), + toggleMessageDetail: createAction( + ActionKeys.MC_TOGGLE_MESSAGE_DETAIL, + resolve => (messageId: numberOrNumberArray) => + resolve({ messageId: toNumberArray(messageId) }), + ), + markAsRead: createAction( + ActionKeys.MC_MARK_MESSAGE_AS_READ, + resolve => (messageId: numberOrNumberArray) => + resolve({ messageId: toNumberArray(messageId) }), + ), + toggleGroup: createAction( + ActionKeys.MC_TOGGLE_GROUP, + resolve => (groupId: string) => resolve({ groupId }), + ), + expandGroup: createAction( + ActionKeys.MC_EXPAND_GROUP, + resolve => (groupId: string) => resolve({ groupId }), + ), + hideNotification: createAction( + ActionKeys.MC_HIDE_NOTIFICATION, + resolve => (messageId: numberOrNumberArray) => + resolve({ messageId: toNumberArray(messageId) }), + ), + showMessageCenter: createAction(ActionKeys.MC_SHOW), + hideMessageCenter: createAction(ActionKeys.MC_HIDE), + toggleExpandedMessageCenter: createAction(ActionKeys.MC_TOGGLE_EXPAND), +}; + +export type MessageCenterAction = ActionType; diff --git a/workspaces/kiali/plugins/kiali/src/actions/NamespaceAction.ts b/workspaces/kiali/plugins/kiali/src/actions/NamespaceAction.ts new file mode 100644 index 0000000000..a30db712df --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/actions/NamespaceAction.ts @@ -0,0 +1,45 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { + ActionType, + createAction, + createStandardAction, +} from 'typesafe-actions'; + +import { Namespace } from '../types/Namespace'; +import { ActionKeys } from './ActionKeys'; + +export const NamespaceActions = { + toggleActiveNamespace: createStandardAction( + ActionKeys.TOGGLE_ACTIVE_NAMESPACE, + )(), + setActiveNamespaces: createStandardAction(ActionKeys.SET_ACTIVE_NAMESPACES)< + Namespace[] + >(), + setFilter: createStandardAction(ActionKeys.NAMESPACE_SET_FILTER)(), + requestStarted: createAction(ActionKeys.NAMESPACE_REQUEST_STARTED), + requestFailed: createAction(ActionKeys.NAMESPACE_FAILED), + receiveList: createAction( + ActionKeys.NAMESPACE_SUCCESS, + resolve => (newList: Namespace[], receivedAt: Date) => + resolve({ + list: newList, + receivedAt: receivedAt, + }), + ), +}; + +export type NamespaceAction = ActionType; diff --git a/workspaces/kiali/plugins/kiali/src/actions/UserSettingsActions.ts b/workspaces/kiali/plugins/kiali/src/actions/UserSettingsActions.ts new file mode 100644 index 0000000000..ccf300cb48 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/actions/UserSettingsActions.ts @@ -0,0 +1,48 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { + ActionType, + createAction, + createStandardAction, +} from 'typesafe-actions'; + +import { + DurationInSeconds, + IntervalInMilliseconds, + TimeInMilliseconds, + TimeRange, +} from '../types/Common'; +import { ActionKeys } from './ActionKeys'; + +export const UserSettingsActions = { + navCollapse: createAction( + ActionKeys.NAV_COLLAPSE, + resolve => (collapsed: boolean) => resolve({ collapse: collapsed }), + ), + setDuration: createStandardAction( + ActionKeys.SET_DURATION, + )(), + setTimeRange: createStandardAction(ActionKeys.SET_TIME_RANGE)(), + setRefreshInterval: createStandardAction( + ActionKeys.SET_REFRESH_INTERVAL, + )(), + setReplayQueryTime: createStandardAction( + ActionKeys.SET_REPLAY_QUERY_TIME, + )(), + toggleReplayActive: createAction(ActionKeys.TOGGLE_REPLAY_ACTIVE), +}; + +export type UserSettingsAction = ActionType; diff --git a/workspaces/kiali/plugins/kiali/src/actions/index.ts b/workspaces/kiali/plugins/kiali/src/actions/index.ts new file mode 100644 index 0000000000..50e95ffeaa --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/actions/index.ts @@ -0,0 +1,19 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +export * from './HelpDropdownActions'; +export * from './LoginActions'; +export * from './MessageCenterActions'; +export * from './NamespaceAction'; diff --git a/workspaces/kiali/plugins/kiali/src/app/History.ts b/workspaces/kiali/plugins/kiali/src/app/History.ts new file mode 100644 index 0000000000..b7b9a09fd6 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/app/History.ts @@ -0,0 +1,244 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { + createBrowserHistory, + createHashHistory, + createMemoryHistory, +} from 'history'; + +import { toValidDuration } from '../config/ServerConfig'; +import { BoundsInMilliseconds } from '../types/Common'; + +const historyMode = (window as any).HISTORY_MODE + ? (window as any).HISTORY_MODE + : 'browser'; + +const createHistory = () => { + if (process.env.TEST_RUNNER) { + return createMemoryHistory(); + } else if (historyMode === 'hash') { + return createHashHistory(); + } + return createBrowserHistory(); +}; + +let history = createHistory(); + +/** + * Some platforms set a different basename for each page (e.g., Openshift Console) + * A setHistory method is defined to be able to modify the history basename when user + * routes to a different page within Kiali in these platforms. + * This method is not used in standalone Kiali application + */ +export const setHistory = () => { + history = createHistory(); +}; + +export { history }; + +export enum URLParam { + AGGREGATOR = 'aggregator', + BY_LABELS = 'bylbl', + CLUSTERNAME = 'clusterName', + CONFIG = 'config', + DIRECTION = 'direction', + DISPLAY_MODE = 'displayMode', + DURATION = 'duration', + FOCUS_SELECTOR = 'focusSelector', + FROM = 'from', + GRAPH_ANIMATION = 'animation', + GRAPH_BADGE_SECURITY = 'badgeSecurity', + GRAPH_BADGE_SIDECAR = 'badgeSidecar', + GRAPH_BADGE_VS = 'badgeVS', + GRAPH_BOX_CLUSTER = 'boxCluster', + GRAPH_BOX_NAMESPACE = 'boxNamespace', + GRAPH_COMPRESS_ON_HIDE = 'graphCompressOnHide', + GRAPH_EDGE_LABEL = 'edges', + GRAPH_EDGE_MODE = 'edgeMode', + GRAPH_FIND = 'graphFind', + GRAPH_HIDE = 'graphHide', + GRAPH_IDLE_EDGES = 'idleEdges', + GRAPH_IDLE_NODES = 'idleNodes', + GRAPH_LAYOUT = 'layout', + GRAPH_NAMESPACE_LAYOUT = 'namespaceLayout', + GRAPH_OPERATION_NODES = 'operationNodes', + GRAPH_RANK = 'rank', + GRAPH_RANK_BY = 'rankBy', + GRAPH_REPLAY_ACTIVE = 'replayActive', + GRAPH_REPLAY_INTERVAL = 'replayInterval', + GRAPH_REPLAY_START = 'replayStart', + GRAPH_SERVICE_NODES = 'injectServiceNodes', + GRAPH_TRAFFIC = 'traffic', + GRAPH_TYPE = 'graphType', + JAEGER_ERRORS_ONLY = 'errs', + JAEGER_LIMIT_TRACES = 'limit', + JAEGER_PERCENTILE = 'percentile', + JAEGER_SHOW_SPANS_AVG = 'showSpansAvg', + JAEGER_TRACE_ID = 'traceId', + JAEGER_SPAN_ID = 'spanId', + ISTIO_NAME = 'istioName', + NAMESPACES = 'namespaces', + OVERVIEW_TYPE = 'otype', + DIRECTION_TYPE = 'drtype', + QUANTILES = 'quantiles', + RANGE_DURATION = 'rangeDuration', + REFRESH_INTERVAL = 'refresh', + REPORTER = 'reporter', + SHOW_AVERAGE = 'avg', + SHOW_SPANS = 'spans', + SHOW_TRENDLINES = 'trendlines', + SORT = 'sort', + TO = 'to', + EXPERIMENTAL_FLAGS = 'xflags', + TRACING_ERRORS_ONLY = 'errs', + TRACING_LIMIT_TRACES = 'limit', + TRACING_PERCENTILE = 'percentile', + TRACING_SHOW_SPANS_AVG = 'showSpansAvg', + TRACING_TRACE_ID = 'traceId', + TRACING_SPAN_ID = 'spanId', + TYPE = 'type', +} + +export interface URLParamValue { + name: URLParam; + value: any; +} + +export enum ParamAction { + APPEND, + SET, +} + +export class HistoryManager { + static setParam = (name: URLParam | string, value: string) => { + const urlParams = new URLSearchParams(history.location.search); + urlParams.set(name, value); + history.replace(`${history.location.pathname}?${urlParams.toString()}`); + }; + + static getParam = ( + name: URLParam | string, + urlParams?: URLSearchParams, + ): string | undefined => { + let calculatedParams: URLSearchParams | undefined = urlParams; + if (!calculatedParams) { + calculatedParams = new URLSearchParams(history.location.search); + } + const p = calculatedParams.get(name); + return p ?? undefined; + }; + + static getNumericParam = ( + name: URLParam, + urlParams?: URLSearchParams, + ): number | undefined => { + const p = HistoryManager.getParam(name, urlParams); + return p !== undefined ? Number(p) : undefined; + }; + + static getBooleanParam = ( + name: URLParam | string, + urlParams?: URLSearchParams, + ): boolean | undefined => { + const p = HistoryManager.getParam(name, urlParams); + return p !== undefined ? p === 'true' : undefined; + }; + + static deleteParam = (name: URLParam, historyReplace?: boolean) => { + const urlParams = new URLSearchParams(history.location.search); + urlParams.delete(name); + if (historyReplace) { + history.replace(`${history.location.pathname}?${urlParams.toString()}`); + } else { + history.push(`${history.location.pathname}?${urlParams.toString()}`); + } + }; + + static setParams = ( + params: URLParamValue[], + paramAction?: ParamAction, + historyReplace?: boolean, + ) => { + const urlParams = new URLSearchParams(history.location.search); + + if (params.length > 0 && paramAction === ParamAction.APPEND) { + params.forEach(param => urlParams.delete(param.name)); + } + + params.forEach(param => { + if (param.value === '') { + urlParams.delete(param.name); + } else if (paramAction === ParamAction.APPEND) { + urlParams.append(param.name, param.value); + } else { + urlParams.set(param.name, param.value); + } + }); + + if (historyReplace) { + history.replace(`${history.location.pathname}?${urlParams.toString()}`); + } else { + history.push(`${history.location.pathname}?${urlParams.toString()}`); + } + }; + + static getClusterName = (urlParams?: URLSearchParams): string | undefined => { + let calculatedParams: URLSearchParams | undefined = urlParams; + if (!calculatedParams) { + calculatedParams = new URLSearchParams(history.location.search); + } + return calculatedParams.get(URLParam.CLUSTERNAME) || undefined; + }; + + static getDuration = (urlParams?: URLSearchParams): number | undefined => { + const duration = HistoryManager.getNumericParam( + URLParam.DURATION, + urlParams, + ); + if (duration) { + return toValidDuration(Number(duration)); + } + return undefined; + }; + + static getRangeDuration = ( + urlParams?: URLSearchParams, + ): number | undefined => { + const rangeDuration = HistoryManager.getNumericParam( + URLParam.RANGE_DURATION, + urlParams, + ); + if (rangeDuration) { + return toValidDuration(Number(rangeDuration)); + } + return undefined; + }; + + static getTimeBounds = ( + urlParams?: URLSearchParams, + ): BoundsInMilliseconds | undefined => { + const from = HistoryManager.getNumericParam(URLParam.FROM, urlParams); + if (from) { + const to = HistoryManager.getNumericParam(URLParam.TO, urlParams); + // "to" can be undefined (stands for "now") + return { + from: from, + to: to, + }; + } + return undefined; + }; +} diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/api/graphql.svg b/workspaces/kiali/plugins/kiali/src/assets/img/api/graphql.svg new file mode 100644 index 0000000000..86bebc9dce --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/api/graphql.svg @@ -0,0 +1 @@ +GraphQL \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/api/grpc.svg b/workspaces/kiali/plugins/kiali/src/assets/img/api/grpc.svg new file mode 100644 index 0000000000..57241d7735 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/api/grpc.svg @@ -0,0 +1 @@ +GRPC \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/api/rest.svg b/workspaces/kiali/plugins/kiali/src/assets/img/api/rest.svg new file mode 100644 index 0000000000..8c153a4ecd --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/api/rest.svg @@ -0,0 +1 @@ +Rest API \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/go-logo.png b/workspaces/kiali/plugins/kiali/src/assets/img/go-logo.png new file mode 100644 index 0000000000..aee71daf20 Binary files /dev/null and b/workspaces/kiali/plugins/kiali/src/assets/img/go-logo.png differ diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/graphql-logo.svg b/workspaces/kiali/plugins/kiali/src/assets/img/graphql-logo.svg new file mode 100644 index 0000000000..95c03941cf --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/graphql-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/grpc-logo.svg b/workspaces/kiali/plugins/kiali/src/assets/img/grpc-logo.svg new file mode 100644 index 0000000000..6f5c5a4c95 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/grpc-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/hollow-pin.png b/workspaces/kiali/plugins/kiali/src/assets/img/hollow-pin.png new file mode 100644 index 0000000000..14477559f6 Binary files /dev/null and b/workspaces/kiali/plugins/kiali/src/assets/img/hollow-pin.png differ diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/jaeger-icon.svg b/workspaces/kiali/plugins/kiali/src/assets/img/jaeger-icon.svg new file mode 100644 index 0000000000..d4fae63a2f --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/jaeger-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/java-logo.png b/workspaces/kiali/plugins/kiali/src/assets/img/java-logo.png new file mode 100644 index 0000000000..75ad9e281b Binary files /dev/null and b/workspaces/kiali/plugins/kiali/src/assets/img/java-logo.png differ diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/kiali-title.svg b/workspaces/kiali/plugins/kiali/src/assets/img/kiali-title.svg new file mode 100644 index 0000000000..79ef71ed63 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/kiali-title.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/aggregate.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/aggregate.svg new file mode 100755 index 0000000000..13908e47c4 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/aggregate.svg @@ -0,0 +1,74 @@ + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/app.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/app.svg new file mode 100755 index 0000000000..a72267f4b1 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/app.svg @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/edge-danger.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/edge-danger.svg new file mode 100755 index 0000000000..1fc4ed9d81 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/edge-danger.svg @@ -0,0 +1,76 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/edge-idle.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/edge-idle.svg new file mode 100755 index 0000000000..2c62a1eb10 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/edge-idle.svg @@ -0,0 +1,76 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/edge-success.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/edge-success.svg new file mode 100755 index 0000000000..65fee59c66 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/edge-success.svg @@ -0,0 +1,76 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/edge-tcp.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/edge-tcp.svg new file mode 100755 index 0000000000..b58e722729 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/edge-tcp.svg @@ -0,0 +1,73 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/edge-warn.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/edge-warn.svg new file mode 100755 index 0000000000..e30a4ba648 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/edge-warn.svg @@ -0,0 +1,76 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/external-namespace.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/external-namespace.svg new file mode 100755 index 0000000000..6857f7e774 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/external-namespace.svg @@ -0,0 +1,83 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/mtls-badge.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/mtls-badge.svg new file mode 100755 index 0000000000..164474f83c --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/mtls-badge.svg @@ -0,0 +1,64 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-badge-circuit-breaker.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-badge-circuit-breaker.svg new file mode 100755 index 0000000000..eb1ce6ec8f --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-badge-circuit-breaker.svg @@ -0,0 +1,75 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-badge-fault-injection.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-badge-fault-injection.svg new file mode 100644 index 0000000000..ffd0490210 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-badge-fault-injection.svg @@ -0,0 +1,79 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-badge-gateways.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-badge-gateways.svg new file mode 100755 index 0000000000..296ab4777f --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-badge-gateways.svg @@ -0,0 +1,81 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-badge-mirroring.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-badge-mirroring.svg new file mode 100644 index 0000000000..c4c9ed65ce --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-badge-mirroring.svg @@ -0,0 +1,80 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-badge-missing-sidecar.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-badge-missing-sidecar.svg new file mode 100755 index 0000000000..f8005984ad --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-badge-missing-sidecar.svg @@ -0,0 +1,119 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-badge-request-timeout.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-badge-request-timeout.svg new file mode 100644 index 0000000000..09df86b5a9 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-badge-request-timeout.svg @@ -0,0 +1,95 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-badge-traffic-shifting.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-badge-traffic-shifting.svg new file mode 100644 index 0000000000..6ee8675e05 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-badge-traffic-shifting.svg @@ -0,0 +1,82 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-badge-traffic-source.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-badge-traffic-source.svg new file mode 100755 index 0000000000..e31cafcac7 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-badge-traffic-source.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-badge-virtual-services.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-badge-virtual-services.svg new file mode 100755 index 0000000000..f187caa18c --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-badge-virtual-services.svg @@ -0,0 +1,75 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-badge-workload-entry.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-badge-workload-entry.svg new file mode 100644 index 0000000000..cc6a5eeee9 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-badge-workload-entry.svg @@ -0,0 +1,500 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-color-danger.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-color-danger.svg new file mode 100755 index 0000000000..88fa40b792 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-color-danger.svg @@ -0,0 +1,63 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-color-idle.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-color-idle.svg new file mode 100755 index 0000000000..21ea604d15 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-color-idle.svg @@ -0,0 +1,62 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-color-normal.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-color-normal.svg new file mode 100755 index 0000000000..bbc283b45c --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-color-normal.svg @@ -0,0 +1,63 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-color-warning.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-color-warning.svg new file mode 100755 index 0000000000..759998942c --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node-color-warning.svg @@ -0,0 +1,63 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node.svg new file mode 100755 index 0000000000..eaebd1914a --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/node.svg @@ -0,0 +1,67 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/restricted-namespace.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/restricted-namespace.svg new file mode 100755 index 0000000000..0a22dfc226 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/restricted-namespace.svg @@ -0,0 +1,72 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/service-entry.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/service-entry.svg new file mode 100755 index 0000000000..6ec2c0432b --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/service-entry.svg @@ -0,0 +1,68 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/service.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/service.svg new file mode 100755 index 0000000000..b024b386ea --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/service.svg @@ -0,0 +1,65 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/traffic-failed-request.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/traffic-failed-request.svg new file mode 100755 index 0000000000..881e4fc5da --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/traffic-failed-request.svg @@ -0,0 +1,78 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/traffic-normal-request.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/traffic-normal-request.svg new file mode 100755 index 0000000000..951171e5aa --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/traffic-normal-request.svg @@ -0,0 +1,74 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/traffic-tcp.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/traffic-tcp.svg new file mode 100755 index 0000000000..a7fc17472a --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/traffic-tcp.svg @@ -0,0 +1,92 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/virtualservice.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/virtualservice.svg new file mode 100755 index 0000000000..0cc7ea7759 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-nooptimize/virtualservice.svg @@ -0,0 +1,66 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/aggregate.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/aggregate.svg new file mode 100644 index 0000000000..ff211b6aaa --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/aggregate.svg @@ -0,0 +1,19 @@ + + + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/app.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/app.svg new file mode 100644 index 0000000000..f5ff9a691e --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/app.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/edge-danger.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/edge-danger.svg new file mode 100644 index 0000000000..013913b2d6 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/edge-danger.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/edge-idle.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/edge-idle.svg new file mode 100644 index 0000000000..7c35624d61 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/edge-idle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/edge-success.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/edge-success.svg new file mode 100644 index 0000000000..e1467ec020 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/edge-success.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/edge-tcp.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/edge-tcp.svg new file mode 100644 index 0000000000..6877978009 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/edge-tcp.svg @@ -0,0 +1,12 @@ + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/edge-warn.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/edge-warn.svg new file mode 100644 index 0000000000..f94a0b46c3 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/edge-warn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/external-namespace.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/external-namespace.svg new file mode 100644 index 0000000000..36faf0831e --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/external-namespace.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/mtls-badge.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/mtls-badge.svg new file mode 100644 index 0000000000..0f2c461565 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/mtls-badge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-badge-circuit-breaker.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-badge-circuit-breaker.svg new file mode 100644 index 0000000000..c0b994e96e --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-badge-circuit-breaker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-badge-fault-injection.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-badge-fault-injection.svg new file mode 100644 index 0000000000..aaee7f2a8d --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-badge-fault-injection.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-badge-gateways.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-badge-gateways.svg new file mode 100644 index 0000000000..1a68c7528d --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-badge-gateways.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-badge-mirroring.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-badge-mirroring.svg new file mode 100644 index 0000000000..3d0a35b6ff --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-badge-mirroring.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-badge-missing-sidecar.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-badge-missing-sidecar.svg new file mode 100644 index 0000000000..920bcd75cd --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-badge-missing-sidecar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-badge-request-timeout.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-badge-request-timeout.svg new file mode 100644 index 0000000000..2669972377 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-badge-request-timeout.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-badge-traffic-shifting.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-badge-traffic-shifting.svg new file mode 100644 index 0000000000..ffabc60ced --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-badge-traffic-shifting.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-badge-traffic-source.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-badge-traffic-source.svg new file mode 100644 index 0000000000..c8935e695c --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-badge-traffic-source.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-badge-virtual-services.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-badge-virtual-services.svg new file mode 100644 index 0000000000..c5f6063317 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-badge-virtual-services.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-badge-workload-entry.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-badge-workload-entry.svg new file mode 100644 index 0000000000..2274f8843d --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-badge-workload-entry.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-color-danger.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-color-danger.svg new file mode 100644 index 0000000000..5da21fd0fd --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-color-danger.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-color-healthy.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-color-healthy.svg new file mode 100644 index 0000000000..bfaa1e90de --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-color-healthy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-color-idle.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-color-idle.svg new file mode 100644 index 0000000000..6ad4a0bae6 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-color-idle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-color-warning.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-color-warning.svg new file mode 100644 index 0000000000..d4fcbefa52 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node-color-warning.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node.svg new file mode 100644 index 0000000000..be7c352c8e --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/node.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/restricted-namespace.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/restricted-namespace.svg new file mode 100644 index 0000000000..682af9d738 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/restricted-namespace.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/service-entry.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/service-entry.svg new file mode 100644 index 0000000000..0a0c8d2f94 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/service-entry.svg @@ -0,0 +1,17 @@ + + + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/service.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/service.svg new file mode 100644 index 0000000000..e7925f6b06 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/service.svg @@ -0,0 +1,18 @@ + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/traffic-failed-request.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/traffic-failed-request.svg new file mode 100644 index 0000000000..0629173a38 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/traffic-failed-request.svg @@ -0,0 +1,22 @@ + + + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/traffic-healthy-request.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/traffic-healthy-request.svg new file mode 100644 index 0000000000..2f606a6d34 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/traffic-healthy-request.svg @@ -0,0 +1,21 @@ + + + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/traffic-tcp.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/traffic-tcp.svg new file mode 100644 index 0000000000..0fd634efbb --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend-pf/traffic-tcp.svg @@ -0,0 +1,21 @@ + + + + + + diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend/aggregate.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend/aggregate.svg new file mode 100644 index 0000000000..7bf7199af5 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend/aggregate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend/app.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend/app.svg new file mode 100644 index 0000000000..f5ff9a691e --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend/app.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend/edge-danger.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend/edge-danger.svg new file mode 100644 index 0000000000..013913b2d6 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend/edge-danger.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend/edge-idle.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend/edge-idle.svg new file mode 100644 index 0000000000..7c35624d61 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend/edge-idle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend/edge-success.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend/edge-success.svg new file mode 100644 index 0000000000..e1467ec020 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend/edge-success.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend/edge-tcp.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend/edge-tcp.svg new file mode 100644 index 0000000000..ee5bc699cd --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend/edge-tcp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend/edge-warn.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend/edge-warn.svg new file mode 100644 index 0000000000..f94a0b46c3 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend/edge-warn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend/external-namespace.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend/external-namespace.svg new file mode 100644 index 0000000000..36faf0831e --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend/external-namespace.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend/mtls-badge.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend/mtls-badge.svg new file mode 100644 index 0000000000..0f2c461565 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend/mtls-badge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-badge-circuit-breaker.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-badge-circuit-breaker.svg new file mode 100644 index 0000000000..794e5ebbd4 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-badge-circuit-breaker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-badge-fault-injection.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-badge-fault-injection.svg new file mode 100644 index 0000000000..f9f47dc9e7 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-badge-fault-injection.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-badge-gateways.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-badge-gateways.svg new file mode 100644 index 0000000000..d83528be78 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-badge-gateways.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-badge-mirroring.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-badge-mirroring.svg new file mode 100644 index 0000000000..6e3d6623c9 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-badge-mirroring.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-badge-missing-sidecar.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-badge-missing-sidecar.svg new file mode 100644 index 0000000000..f8977dbb17 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-badge-missing-sidecar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-badge-request-timeout.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-badge-request-timeout.svg new file mode 100644 index 0000000000..338b8725e2 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-badge-request-timeout.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-badge-traffic-shifting.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-badge-traffic-shifting.svg new file mode 100644 index 0000000000..d09ff2bba5 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-badge-traffic-shifting.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-badge-traffic-source.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-badge-traffic-source.svg new file mode 100644 index 0000000000..5d2282c32d --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-badge-traffic-source.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-badge-virtual-services.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-badge-virtual-services.svg new file mode 100644 index 0000000000..4067a3dc12 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-badge-virtual-services.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-badge-workload-entry.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-badge-workload-entry.svg new file mode 100644 index 0000000000..2c4d532960 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-badge-workload-entry.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-color-danger.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-color-danger.svg new file mode 100644 index 0000000000..5da21fd0fd --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-color-danger.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-color-idle.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-color-idle.svg new file mode 100644 index 0000000000..b276cdace3 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-color-idle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-color-normal.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-color-normal.svg new file mode 100644 index 0000000000..6ad4a0bae6 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-color-normal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-color-warning.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-color-warning.svg new file mode 100644 index 0000000000..d4fcbefa52 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend/node-color-warning.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend/node.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend/node.svg new file mode 100644 index 0000000000..be7c352c8e --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend/node.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend/restricted-namespace.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend/restricted-namespace.svg new file mode 100644 index 0000000000..682af9d738 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend/restricted-namespace.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend/service-entry.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend/service-entry.svg new file mode 100644 index 0000000000..cee2228f11 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend/service-entry.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend/service.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend/service.svg new file mode 100644 index 0000000000..12dd4a177a --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend/service.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend/traffic-failed-request.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend/traffic-failed-request.svg new file mode 100644 index 0000000000..1eed174bd7 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend/traffic-failed-request.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend/traffic-normal-request.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend/traffic-normal-request.svg new file mode 100644 index 0000000000..631c85d12c --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend/traffic-normal-request.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend/traffic-tcp.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend/traffic-tcp.svg new file mode 100644 index 0000000000..0de0e373fc --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend/traffic-tcp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/legend/virtualservice.svg b/workspaces/kiali/plugins/kiali/src/assets/img/legend/virtualservice.svg new file mode 100644 index 0000000000..3e5a985eaa --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/legend/virtualservice.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/logo-alt.svg b/workspaces/kiali/plugins/kiali/src/assets/img/logo-alt.svg new file mode 100644 index 0000000000..97465ab35d --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/logo-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/logo-lightbkg.svg b/workspaces/kiali/plugins/kiali/src/assets/img/logo-lightbkg.svg new file mode 100644 index 0000000000..3889ec9224 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/logo-lightbkg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/microprofile-logo.png b/workspaces/kiali/plugins/kiali/src/assets/img/microprofile-logo.png new file mode 100644 index 0000000000..d3deb1ec7b Binary files /dev/null and b/workspaces/kiali/plugins/kiali/src/assets/img/microprofile-logo.png differ diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/mtls-status-full-dark.svg b/workspaces/kiali/plugins/kiali/src/assets/img/mtls-status-full-dark.svg new file mode 100644 index 0000000000..76285e3cdd --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/mtls-status-full-dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/mtls-status-full.svg b/workspaces/kiali/plugins/kiali/src/assets/img/mtls-status-full.svg new file mode 100644 index 0000000000..92cbd24642 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/mtls-status-full.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/mtls-status-partial-dark.svg b/workspaces/kiali/plugins/kiali/src/assets/img/mtls-status-partial-dark.svg new file mode 100644 index 0000000000..c0dfa62257 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/mtls-status-partial-dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/mtls-status-partial.svg b/workspaces/kiali/plugins/kiali/src/assets/img/mtls-status-partial.svg new file mode 100644 index 0000000000..95b16d2574 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/mtls-status-partial.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/node-background-key.png b/workspaces/kiali/plugins/kiali/src/assets/img/node-background-key.png new file mode 100644 index 0000000000..2349638800 Binary files /dev/null and b/workspaces/kiali/plugins/kiali/src/assets/img/node-background-key.png differ diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/node-background-topology.png b/workspaces/kiali/plugins/kiali/src/assets/img/node-background-topology.png new file mode 100644 index 0000000000..557ce49865 Binary files /dev/null and b/workspaces/kiali/plugins/kiali/src/assets/img/node-background-topology.png differ diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/nodejs-logo.png b/workspaces/kiali/plugins/kiali/src/assets/img/nodejs-logo.png new file mode 100644 index 0000000000..f860296565 Binary files /dev/null and b/workspaces/kiali/plugins/kiali/src/assets/img/nodejs-logo.png differ diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/rest-logo.svg b/workspaces/kiali/plugins/kiali/src/assets/img/rest-logo.svg new file mode 100644 index 0000000000..6b04ce7d70 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/rest-logo.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/runtime/go.svg b/workspaces/kiali/plugins/kiali/src/assets/img/runtime/go.svg new file mode 100644 index 0000000000..253d146540 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/runtime/go.svg @@ -0,0 +1 @@ +Go \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/runtime/java.svg b/workspaces/kiali/plugins/kiali/src/assets/img/runtime/java.svg new file mode 100644 index 0000000000..a7c5e629f7 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/runtime/java.svg @@ -0,0 +1 @@ +Java \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/runtime/microprofile.svg b/workspaces/kiali/plugins/kiali/src/assets/img/runtime/microprofile.svg new file mode 100644 index 0000000000..ccdd9eed29 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/runtime/microprofile.svg @@ -0,0 +1 @@ +MicroProfile \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/runtime/nodejs.svg b/workspaces/kiali/plugins/kiali/src/assets/img/runtime/nodejs.svg new file mode 100644 index 0000000000..ccc076ee43 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/runtime/nodejs.svg @@ -0,0 +1 @@ +Node.js \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/runtime/quarkus.svg b/workspaces/kiali/plugins/kiali/src/assets/img/runtime/quarkus.svg new file mode 100644 index 0000000000..6e0290225c --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/runtime/quarkus.svg @@ -0,0 +1 @@ +Quarkus \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/runtime/spring-boot.svg b/workspaces/kiali/plugins/kiali/src/assets/img/runtime/spring-boot.svg new file mode 100644 index 0000000000..ba4a784bba --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/runtime/spring-boot.svg @@ -0,0 +1 @@ +Spring Boot \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/runtime/thorntail.svg b/workspaces/kiali/plugins/kiali/src/assets/img/runtime/thorntail.svg new file mode 100644 index 0000000000..3b8d0599f1 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/runtime/thorntail.svg @@ -0,0 +1 @@ +Thorntail \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/runtime/tomcat.svg b/workspaces/kiali/plugins/kiali/src/assets/img/runtime/tomcat.svg new file mode 100644 index 0000000000..997f8187bd --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/runtime/tomcat.svg @@ -0,0 +1 @@ +Tomcat \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/runtime/vertx.svg b/workspaces/kiali/plugins/kiali/src/assets/img/runtime/vertx.svg new file mode 100644 index 0000000000..1349d875f9 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/assets/img/runtime/vertx.svg @@ -0,0 +1 @@ +Vert.x \ No newline at end of file diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/solid-pin.png b/workspaces/kiali/plugins/kiali/src/assets/img/solid-pin.png new file mode 100644 index 0000000000..57769bdd73 Binary files /dev/null and b/workspaces/kiali/plugins/kiali/src/assets/img/solid-pin.png differ diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/thorntail-logo.png b/workspaces/kiali/plugins/kiali/src/assets/img/thorntail-logo.png new file mode 100644 index 0000000000..fcf3ddc66a Binary files /dev/null and b/workspaces/kiali/plugins/kiali/src/assets/img/thorntail-logo.png differ diff --git a/workspaces/kiali/plugins/kiali/src/assets/img/vertx-logo.png b/workspaces/kiali/plugins/kiali/src/assets/img/vertx-logo.png new file mode 100644 index 0000000000..c438d22778 Binary files /dev/null and b/workspaces/kiali/plugins/kiali/src/assets/img/vertx-logo.png differ diff --git a/workspaces/kiali/plugins/kiali/src/components/About/AboutUIModal.tsx b/workspaces/kiali/plugins/kiali/src/components/About/AboutUIModal.tsx new file mode 100644 index 0000000000..0900ee1df8 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/About/AboutUIModal.tsx @@ -0,0 +1,248 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { Link } from '@backstage/core-components'; + +import { + Card, + CardContent, + CardHeader, + Collapse, + Dialog, + DialogActions, + DialogContent, + DialogTitle, + Grid, + IconButton, + Typography, +} from '@material-ui/core'; +import CloseIcon from '@material-ui/icons/Close'; +import { Alert } from '@material-ui/lab'; + +import { config, KialiIcon, KialiLogo } from '../../config'; +import { kialiStyle } from '../../styles/StyleUtils'; +import { + ExternalServiceInfo, + Status, + StatusKey, +} from '../../types/StatusState'; + +type AboutUIModalProps = { + status: Status; + externalServices: ExternalServiceInfo[]; + warningMessages: string[]; + showModal: boolean; + setShowModal: React.Dispatch>; +}; + +const iconStyle = kialiStyle({ + marginRight: '10px', +}); + +const textContentStyle = kialiStyle({ + $nest: { + '& dt, & dd': { + lineHeight: 1.667, + }, + }, +}); + +const closeButton = kialiStyle({ + position: 'absolute', + right: 10, + top: 10, + float: 'right', + padding: 0, +}); + +export const AboutUIModal = (props: AboutUIModalProps) => { + const [showWarnings, setShowWarnings] = React.useState(false); + + const additionalComponentInfoContent = ( + externalService: ExternalServiceInfo, + ) => { + if (!externalService.version && !externalService.url) { + return 'N/A'; + } + const version = externalService.version ? externalService.version : ''; + const url = externalService.url ? ( + + {externalService.url} + + ) : ( + '' + ); + return ( + <> + {version} {url} + + ); + }; + + const renderComponent = (externalService: ExternalServiceInfo) => { + const name = externalService.version + ? externalService.name + : `${externalService.name} URL`; + const additionalInfo = additionalComponentInfoContent(externalService); + return ( + <> + + {name} + + + {additionalInfo} + + + ); + }; + + const renderWebsiteLink = () => { + if (config.about?.website) { + return ( + + + {config.about.website.linkText} + + ); + } + + return null; + }; + + const renderProjectLink = () => { + if (config.about?.project) { + return ( + + + {config.about.project.linkText} + + ); + } + + return null; + }; + + const coreVersion = + props.status[StatusKey.KIALI_CORE_COMMIT_HASH] === '' || + props.status[StatusKey.KIALI_CORE_COMMIT_HASH] === 'unknown' + ? props.status[StatusKey.KIALI_CORE_VERSION] + : `${props.status[StatusKey.KIALI_CORE_VERSION]} (${ + props.status[StatusKey.KIALI_CORE_COMMIT_HASH] + })`; + const containerVersion = props.status[StatusKey.KIALI_CONTAINER_VERSION]; + const meshVersion = props.status[StatusKey.MESH_NAME] + ? `${props.status[StatusKey.MESH_NAME]} ${ + props.status[StatusKey.MESH_VERSION] || '' + }` + : 'Unknown'; + const kialiExternalUrl = props.status[StatusKey.KIALI_EXTERNAL_URL]; + + return ( + props.setShowModal(false)} + aria-labelledby="Kiali" + aria-describedby="Kiali" + fullWidth + > + + + props.setShowModal(false)} + className={closeButton} + > + + + + + + Kiali + + + Kiali + + + {coreVersion || 'Unknown'} + + + Kiali Container + + + {containerVersion || 'Unknown'} + + + Service Mesh + + + {meshVersion || 'Unknown'} + + + Kiali External URL + + + {kialiExternalUrl} + + + + {props.warningMessages.length > 0 && ( + + + {props.warningMessages.length} warnings.{' '} + setShowWarnings(!showWarnings)} + style={{ color: '#2b9af3' }} + > + ({showWarnings ? 'Close' : 'See'} them) + + + } + /> + + + {props.warningMessages.map(warn => ( + + {warn} + + ))} + + + + )} + + Components + {props?.externalServices.map(renderComponent)} + + + + {renderWebsiteLink()} + {renderProjectLink()} + + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/Ambient/AmbientBadge.tsx b/workspaces/kiali/plugins/kiali/src/components/Ambient/AmbientBadge.tsx new file mode 100644 index 0000000000..a6c570c3db --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Ambient/AmbientBadge.tsx @@ -0,0 +1,40 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { Chip, Tooltip } from '@material-ui/core'; + +type AmbientLabelProps = { + style?: React.CSSProperties; + tooltip: string; +}; + +export const AmbientBadge = (props: AmbientLabelProps) => { + const iconComponent = ( + + + + ); + return ( + + {iconComponent} + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/Ambient/AmbientLabel.tsx b/workspaces/kiali/plugins/kiali/src/components/Ambient/AmbientLabel.tsx new file mode 100644 index 0000000000..23fa8881ec --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Ambient/AmbientLabel.tsx @@ -0,0 +1,84 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { Chip, Tooltip } from '@material-ui/core'; + +type AmbientLabelProps = { + tooltip: boolean; + style?: React.CSSProperties; + waypoint?: boolean; +}; + +const AmbientComponent = 'ztunnel'; + +export class AmbientLabel extends React.Component { + render() { + const msg = 'Component is labeled as part of the Istio Ambient Mesh'; + + const tooltipContent = ( +
+
+ {msg} +
+
+
+ ); + const iconComponent = ( + + + {this.props.waypoint && ( + + )} + {!this.props.tooltip && ( + + {msg} + + + + + )} + + ); + return this.props.tooltip ? ( + + {iconComponent} + + ) : ( + iconComponent + ); + } +} diff --git a/workspaces/kiali/plugins/kiali/src/components/Banners/TechPreviewWarning.tsx b/workspaces/kiali/plugins/kiali/src/components/Banners/TechPreviewWarning.tsx new file mode 100644 index 0000000000..2288313cad --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Banners/TechPreviewWarning.tsx @@ -0,0 +1,33 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { Alert } from '@material-ui/lab'; + +type defaultProps = { + message?: string; +}; + +export const TechPreviewWarning = (props: defaultProps) => { + const msg = props.message ? props.message : 'This is a tech preview feature'; + return ( +
+ + {msg}{' '} + +
+ ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/BreadcrumbView/BreadcrumbView.tsx b/workspaces/kiali/plugins/kiali/src/components/BreadcrumbView/BreadcrumbView.tsx new file mode 100644 index 0000000000..f621cbeea7 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/BreadcrumbView/BreadcrumbView.tsx @@ -0,0 +1,135 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; +import { Location, useLocation } from 'react-router-dom'; + +import { Breadcrumbs } from '@material-ui/core'; + +import { HistoryManager } from '../../app/History'; +import { Paths } from '../../config'; +import { kialiStyle } from '../../styles/StyleUtils'; +import { dicIstioType } from '../../types/IstioConfigList'; +import { BackstageObjectLink } from '../../utils/backstageLinks'; +import { FilterSelected } from '../Filters/StatefulFilters'; + +const ItemNames = { + applications: 'App', + services: 'Service', + workloads: 'Workload', + istio: 'Istio Object', +}; + +const IstioName = 'Istio Config'; +const namespaceRegex = + /kiali\/([a-z0-9-]+)\/([\w-.]+)\/([\w-.*]+)(\/([\w-.]+))?(\/([\w-.]+))?/; + +export const getPath = (props: Location) => { + const match = namespaceRegex.exec(props.pathname) || []; + const ns = match[2]; + // @ts-ignore + const page = Paths[match[1]?.toLocaleUpperCase('en-US')]; + const istioType = match[3]; + const urlParams = new URLSearchParams(props.search); + const itemName = page !== 'istio' ? match[3] : match[5]; + return { + cluster: HistoryManager.getClusterName(urlParams), + istioType: istioType, + item: itemName, + // @ts-ignore + itemName: ItemNames[page], + namespace: ns, + pathItem: page, + }; +}; + +const breadcrumStyle = kialiStyle({ + marginBottom: '20px', + marginTop: '-20px', +}); + +export const BreadcrumbView = (props: { entity?: boolean }) => { + const capitalize = (str: string) => { + return str?.charAt(0)?.toLocaleUpperCase('en-US') + str?.slice(1); + }; + + const path = getPath(useLocation()); + + const istioTypeF = (rawType: string) => { + const istioType = Object.keys(dicIstioType).find( + // @ts-ignore + key => dicIstioType[key] === rawType, + ); + return istioType || capitalize(rawType); + }; + + const cleanFilters = () => { + FilterSelected.resetFilters(); + }; + + const isIstioF = () => { + return path?.pathItem === 'istio'; + }; + + const namespace = path ? path.namespace : ''; + const item = path ? path.item : ''; + const istioType = path ? path.istioType : ''; + const pathItem = path ? path.pathItem : ''; + + const isIstio = isIstioF(); + + const tab = `tabresources=${pathItem}`; + const filterNs = `namespaces=${namespace}`; + + return ( +
+ + + {isIstio ? IstioName : capitalize(pathItem)} + + + Namespace: {namespace} + + {isIstio && ( + + {istioType ? istioTypeF(istioType) : istioType} + + )} + <>{item} + +
+ ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/Charts/ChartWithLegend.tsx b/workspaces/kiali/plugins/kiali/src/components/Charts/ChartWithLegend.tsx new file mode 100644 index 0000000000..ee9293ff8a --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Charts/ChartWithLegend.tsx @@ -0,0 +1,790 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { Tooltip } from '@material-ui/core'; +import { + Chart, + ChartAxis, + ChartGroup, + ChartLabel, + ChartLegend, + ChartLine, + ChartProps, + ChartScatter, + ChartTooltipProps, + createContainer, +} from '@patternfly/react-charts'; +import { Button, ButtonVariant } from '@patternfly/react-core'; +import { format as d3Format } from 'd3-format'; +import regression from 'regression'; +import { VictoryBoxPlot } from 'victory-box-plot'; +import { VictoryPortal } from 'victory-core'; +import { VictoryVoronoiContainer } from 'victory-voronoi-container'; + +import { PFColors } from '../../components/Pf/PfColors'; +import { KialiIcon } from '../../config/KialiIcon'; +import { kialiStyle } from '../../styles/StyleUtils'; +import { XAxisType } from '../../types/Dashboards'; +import { Overlay } from '../../types/Overlay'; +import { + LegendItem, + LineInfo, + RawOrBucket, + RichDataPoint, + VCDataPoint, + VCLines, +} from '../../types/VictoryChartInfo'; +import { getFormatter, getUnit } from '../../utils/Formatter'; +import { toBuckets } from '../../utils/VictoryChartsUtils'; +import { addLegendEvent, VCEvent } from '../../utils/VictoryEvents'; +import { BrushHandlers, getVoronoiContainerProps } from './Container'; +import { CustomTooltip } from './CustomTooltip'; +import { INTERPOLATION_STRATEGY } from './SparklineChart'; + +type Props = { + brushHandlers?: BrushHandlers; + chartHeight?: number; + data: VCLines; + fill?: boolean; + groupOffset?: number; + isMaximized?: boolean; + labelComponent?: React.ReactElement; + moreChartProps?: ChartProps; + onClick?: (datum: RawOrBucket) => void; + onTooltipClose?: (datum: RawOrBucket) => void; + onTooltipOpen?: (datum: RawOrBucket) => void; + overlay?: Overlay; + overrideSeriesComponentStyle?: boolean; + // The TracingScatter component needs a flag to indicate that the trace datapoint needs a mouse pointer + // It could be detected indirectly, but it's complicated and less clear, a new optional flag simplifies this logic + pointer?: boolean; + seriesComponent: React.ReactElement; + showSpans?: boolean; + showTrendline?: boolean; + sizeRatio?: number; + stroke?: boolean; + timeWindow?: [Date, Date]; + unit: string; + xAxis?: XAxisType; +}; + +type State = { + hiddenSeries: Set; + showMoreLegend: boolean; + width: number; +}; + +type Padding = { bottom: number; left: number; right: number; top: number }; + +type ScaleInfo = { count: number; format: string }; + +const overlayName = 'overlay'; + +const axisStyle = { + tickLabels: { fontSize: 12, padding: 2, fill: PFColors.Color100 }, + grid: { + fill: 'none', + stroke: PFColors.ColorLight300, + strokeDasharray: '10, 5', + strokeLinecap: 'round', + strokeLinejoin: 'round', + pointerEvents: 'painted', + }, +}; + +export const MIN_HEIGHT = 20; +export const MIN_HEIGHT_YAXIS = 70; +export const MIN_WIDTH = 275; +export const LEGEND_HEIGHT = 25; +const FONT_SIZE_LEGEND = 14; + +const moreLegendStyle = kialiStyle({ + display: 'flex', + marginTop: '0.25rem', + marginLeft: 'auto', +}); + +const overlayLegendStyle = kialiStyle({ + display: 'flex', + flexWrap: 'wrap', + flexDirection: 'column', + position: 'relative', + background: 'var(--pf-v5-global--BackgroundColor--dark-100)', + opacity: 0.7, + overflow: 'auto', +}); + +const fullLegendStyle = kialiStyle({ + color: PFColors.White, + margin: 'auto', + $nest: { + '& > div': { + display: 'inline-block', + marginRight: '0.25rem', + width: '0.5rem', + height: '0.5rem', + }, + }, +}); + +export class ChartWithLegend< + T extends RichDataPoint, + O extends LineInfo, +> extends React.Component, State> { + containerRef: React.RefObject; + hoveredItem?: VCDataPoint; + mouseOnLegend = false; + + constructor(props: Props) { + super(props); + this.containerRef = React.createRef(); + this.state = { + width: 0, + hiddenSeries: new Set([overlayName]), + showMoreLegend: false, + }; + } + + componentDidMount(): void { + setTimeout(() => { + this.handleResize(); + window.addEventListener('resize', this.handleResize); + }); + } + + componentWillUnmount(): void { + window.removeEventListener('resize', this.handleResize); + } + + private handleResize = (): void => { + if (this.containerRef && this.containerRef.current) { + this.setState({ width: this.containerRef.current.clientWidth }); + } + }; + + private onTooltipOpen = (points?: VCDataPoint[]): void => { + if (points && points.length > 0) { + this.hoveredItem = points[0]; + } else { + this.hoveredItem = undefined; + } + + if (this.props.onTooltipOpen) { + this.props.onTooltipOpen(this.hoveredItem as RawOrBucket); + } + }; + + private onTooltipClose = (): void => { + if (this.props.onTooltipClose) { + this.props.onTooltipClose(this.hoveredItem as RawOrBucket); + } + + this.hoveredItem = undefined; + }; + + private onShowMoreLegend = (): void => { + this.setState(prevState => { + return { + showMoreLegend: !prevState.showMoreLegend, + }; + }); + }; + + private normalizeOverlay = (factor: number): (VCDataPoint & O)[] => { + // All data is relative to the first Y-axis, even if a second one is in use + // To make it appear as relative to the second axis, we need to normalize it, ie. apply the same scale factor that exists between the two axis + // This scale factor is stored in every datapoint so that it can be "reverted" when we need to retrieve the original value, e.g. in tooltips + return this.props.overlay!.vcLine.datapoints.map(dp => ({ + ...dp, + y: dp.y * factor, + scaleFactor: factor, + })); + }; + + private scaledAxisInfo = (data: VCLines): ScaleInfo => { + const ticks = Math.max(...data.map(s => s.datapoints.length)); + + if (this.state.width < 500) { + return { + count: Math.min(5, ticks), + format: '%H:%M', + }; + } else if (this.state.width < 700) { + return { + count: Math.min(10, ticks), + format: '%H:%M', + }; + } + + return { + count: Math.min(15, ticks), + format: '%H:%M:%S', + }; + }; + + private registerEvents = ( + events: VCEvent[], + idx: number, + serieID: string[], + serieName: string, + ): void => { + addLegendEvent(events, { + legendName: 'serie-legend', + idx: idx, + serieID: serieID, + onClick: () => { + if (!this.state.hiddenSeries.delete(serieName)) { + // Was not already hidden => add to set + this.state.hiddenSeries.add(serieName); + } + this.setState(prevState => ({ + hiddenSeries: new Set(prevState.hiddenSeries), + })); + return null; + }, + }); + }; + + private buildFilteredLegendData = ( + fullLegendData: LegendItem[], + ): LegendItem[] => { + // 30px == "more legend" left button width + // 10px == "more legend" left padding + const maxWidth = this.state.width - 30 - 10; + const filtered: LegendItem[] = []; + let currentWidth = 0; + + for (let i = 0; i < fullLegendData.length; i++) { + const item = fullLegendData[i]; + // 12px == legend icon + space + // 7px == char size + // 15px == right padding + currentWidth += 12 + item.name.length * 7 + 15; + + if (currentWidth >= maxWidth) { + break; + } + + filtered.push(item); + } + + return filtered; + }; + + private withStyle = ( + props: { [key: string]: unknown }, + color?: string, + strokeDasharray?: boolean, + ): { [key: string]: unknown } => { + return this.props.overrideSeriesComponentStyle === false + ? props + : { + ...props, + style: { + data: { + fill: this.props.fill ? color : undefined, + stroke: this.props.stroke ? color : undefined, + strokeDasharray: strokeDasharray === true ? '3 5' : undefined, + cursor: this.props.pointer ? 'pointer' : 'default', + }, + }, + }; + }; + + private buildFullLegendData = (): LegendItem[] => { + return this.props.data.map(s => { + const name = s.legendItem.name; + + if (this.state.hiddenSeries.has(s.legendItem.name)) { + return { + name, + symbol: { ...s.legendItem.symbol, fill: PFColors.Color200 }, + }; + } + + return { ...s.legendItem, name }; + }); + }; + + private renderTimeSeries = (height: number): React.ReactNode => { + const groupOffset = this.props.groupOffset ?? 0; + + return ( + + {this.props.data + .map((serie, idx) => { + if (this.state.hiddenSeries.has(serie.legendItem.name)) { + return undefined; + } + + const plot = React.cloneElement( + this.props.seriesComponent, + this.withStyle( + { + key: `serie-${idx}`, + name: `serie-${idx}`, + data: serie.datapoints, + interpolation: INTERPOLATION_STRATEGY, + }, + serie.color, + ), + ); + + // serie.datapoints may contain undefined values in certain scenarios i.e. "unknown" values + if (this.props.showTrendline === true && serie.datapoints[0]) { + const first_dpx = + (serie.datapoints[0].x as Date).getTime() / 1000; + + const datapoints = serie.datapoints.map(d => { + const t = ((d.x as Date).getTime() / 1000 - first_dpx) / 10000; + let trendPoint = parseFloat(d.y.toString()); + + if (d.y0) { + // If both reporters are enabled, generate the trend line using + // the mean values of both reporters + trendPoint += parseFloat(d.y0.toString()); + trendPoint *= 0.5; + } + + // Array is [time, y]; + return [t, trendPoint]; + }); + + // @ts-ignore + const linearRegression = regression.linear(datapoints, { + precision: 10, + }); + + const regressionDatapoints = serie.datapoints.map(d => ({ + ...d, + name: `${d.name} (trendline)`, + y: linearRegression.predict( + ((d.x as Date).getTime() / 1000 - first_dpx) / 10000, + )[1], + y0: undefined, // Clear y0, in case it is set to prevent the tooltip showing this value. + })); + + const regressionPlot = React.cloneElement( + , // Trend lines are always line charts. + this.withStyle( + { + key: `serie-reg-${idx}`, + name: `serie-reg-${idx}`, + data: regressionDatapoints, + interpolation: INTERPOLATION_STRATEGY, + }, + serie.color, + true, + ), + ); + + return [plot, regressionPlot]; + } + + return [plot]; + }) + .flat()} + + ); + }; + + private renderCategories = (): React.ReactNode => { + let domainX = 1; + const nbSeries = this.props.data.length - this.state.hiddenSeries.size; + const size = + ((this.props.sizeRatio ?? 1) * this.state.width) / Math.max(nbSeries, 1); + + return this.props.data.map((serie, idx) => { + if (this.state.hiddenSeries.has(serie.legendItem.name)) { + return undefined; + } + + return React.cloneElement( + this.props.seriesComponent, + this.withStyle( + { + key: `serie-${idx}`, + name: `serie-${idx}`, + data: serie.datapoints.map(d => ({ + size: size, + ...d, + x: domainX++, + })), + barWidth: size, + }, + serie.color, + ), + ); + }); + }; + + render(): React.ReactNode { + const scaleInfo = this.scaledAxisInfo(this.props.data); + const fullLegendData = this.buildFullLegendData(); + const filteredLegendData = this.buildFilteredLegendData(fullLegendData); + const showMoreLegend = fullLegendData.length > filteredLegendData.length; + const chartHeight = this.props.chartHeight ?? 300; + const overlayIdx = this.props.data.length; + const showOverlay = (this.props.overlay && this.props.showSpans) ?? false; + const overlayRightPadding = showOverlay ? 15 : 0; + + const padding: Padding = { + top: 0, + bottom: chartHeight > MIN_HEIGHT_YAXIS ? LEGEND_HEIGHT : 0, + left: 0, + right: 10 + overlayRightPadding, + }; + + const events: VCEvent[] = []; + + if (this.props.onClick) { + events.push({ + target: 'parent', + eventHandlers: { + onClick: () => { + if (this.hoveredItem) { + this.props.onClick!(this.hoveredItem as RawOrBucket); + } + return []; + }, + }, + }); + } + + this.props.data.forEach((s, idx) => + this.registerEvents( + events, + idx, + [`serie-${idx}`, `serie-reg-${idx}`], + s.legendItem.name, + ), + ); + + let useSecondAxis = showOverlay; + let normalizedOverlay: RawOrBucket[] = []; + let overlayFactor = 1.0; + + const mainMax = Math.max( + ...this.props.data.map(line => + Math.max(...line.datapoints.map(d => d.y)), + ), + ); + + if (this.props.overlay) { + this.registerEvents(events, overlayIdx, [overlayName], overlayName); + // Normalization for y-axis display to match y-axis domain of the main data + // (see https://formidable.com/open-source/victory/gallery/multiple-dependent-axes/) + const overlayMax = Math.max( + ...this.props.overlay.vcLine.datapoints.map(d => d.y), + ); + + if (overlayMax !== 0) { + overlayFactor = mainMax / overlayMax; + } + + if ( + this.props.unit === this.props.overlay.info.lineInfo.unit && + overlayFactor > 0.5 && + overlayFactor < 2 + ) { + // Looks like it's fine to re-use the existing axis + useSecondAxis = false; + overlayFactor = 1.0; + } + + normalizedOverlay = this.normalizeOverlay(overlayFactor); + + if (this.props.overlay.info.buckets) { + // Transform to bucketed stats + const model: O = { + ...this.props.overlay.info.lineInfo, + scaleFactor: overlayFactor, + }; + normalizedOverlay = toBuckets( + this.props.overlay.info.buckets, + normalizedOverlay as (VCDataPoint & O)[], + model, + this.props.timeWindow, + ); + } + } + + const tooltipHooks = { + onOpen: this.onTooltipOpen, + onClose: this.onTooltipClose, + }; + + const labelComponent = this.props.labelComponent ? ( + React.cloneElement(this.props.labelComponent as any, tooltipHooks) + ) : ( + + ); + + const filteredData = this.props.data.filter( + s => !this.state.hiddenSeries.has(s.legendItem.name), + ); + + const voronoiProps = getVoronoiContainerProps( + labelComponent, + () => this.mouseOnLegend, + ); + + let containerComponent: React.ReactElement; + + if (this.props.brushHandlers) { + const VoronoiBrushContainer = createContainer('brush', 'voronoi'); + + containerComponent = ( + + ); + } else { + containerComponent = ; + } + + const chart = ( +
+ + { + // Use width to change style of the x series supporting narrow scenarios + // eslint-disable-next-line no-nested-ternary + this.props.xAxis === 'series' ? ( + s.legendItem.name)} + tickFormat={() => ''} + /> + ) : this.state.width <= MIN_WIDTH ? ( + { + return `:${t.getMinutes()}`; + }} + /> + ) : ( + + ) + } + + + + + } + dependentAxis + tickCount={chartHeight <= MIN_HEIGHT_YAXIS ? 1 : undefined} + tickFormat={getFormatter(d3Format, this.props.unit)} + label={getUnit(d3Format, this.props.unit, mainMax)} + axisLabelComponent={ + + } + style={axisStyle} + /> + + {useSecondAxis && this.props.overlay && ( + + getFormatter( + d3Format, + this.props.overlay?.info.lineInfo.unit ?? '', + )(t / overlayFactor) + } + tickLabelComponent={} + label={getUnit( + d3Format, + this.props.overlay?.info.lineInfo.unit ?? '', + Math.max(...this.props.overlay.vcLine.datapoints.map(d => d.y)), + )} + axisLabelComponent={ + + } + /> + )} + + {this.props.xAxis === 'series' + ? this.renderCategories() + : this.renderTimeSeries( + chartHeight > MIN_HEIGHT_YAXIS + ? chartHeight - LEGEND_HEIGHT + : chartHeight, + )} + + {showOverlay && + (this.props.overlay!.info.buckets ? ( + + ) : ( + + ))} + + {chartHeight > MIN_HEIGHT_YAXIS ? ( + + ) : undefined} + + + {showMoreLegend && chartHeight > MIN_HEIGHT_YAXIS && ( + Show full legend
} + > + + + )} + + {this.state.showMoreLegend && ( +
+ {fullLegendData.map((ld: LegendItem, idx: number) => ( +
+
+ {ld.name} +
+ ))} +
+ )} +
+ ); + + return chartHeight > MIN_HEIGHT ? ( + chart + ) : ( +
+ + Increase height of the chart +
+ } + > + + + + ); + } +} diff --git a/workspaces/kiali/plugins/kiali/src/components/Charts/Container.tsx b/workspaces/kiali/plugins/kiali/src/components/Charts/Container.tsx new file mode 100644 index 0000000000..318b8fea09 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Charts/Container.tsx @@ -0,0 +1,100 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { format as d3Format } from 'd3-format'; +import { DomainTuple } from 'victory-core'; +import { VictoryVoronoiContainerProps } from 'victory-voronoi-container'; + +import { RichDataPoint } from '../../types/VictoryChartInfo'; +import { getFormatter } from '../../utils/Formatter'; + +type BrushDomain = { x: DomainTuple; y: DomainTuple }; + +export type BrushHandlers = { + /* eslint-disable @typescript-eslint/no-explicit-any */ + onCleared?: (domain: BrushDomain, props: any) => void; + onDomainChange?: (domain: BrushDomain, props: any) => void; + onDomainChangeEnd?: (domain: BrushDomain, props: any) => void; + /* eslint-enable @typescript-eslint/no-explicit-any */ +}; + +const formatValue = ( + label: string, + datum: RichDataPoint, + value: number, + y0?: number, +): string => { + // Formats a value based on unit and scale factor. + // Scale factor is usually undefined, except when a second axis is in use (then it's the ratio between first axis and second axis maxs) + + if (y0 !== undefined) { + return ( + `${label}:` + + ` source = ${getFormatter( + d3Format, + datum.unit!, + true, + )(value / (datum.scaleFactor || 1))}; destination = ${getFormatter( + d3Format, + datum.unit!, + true, + )(y0 / (datum.scaleFactor || 1))}` + ); + } + + return `${label}: ${getFormatter( + d3Format, + datum.unit!, + true, + )(value / (datum.scaleFactor || 1))}`; +}; + +export const getVoronoiContainerProps = ( + labelComponent: React.ReactElement, + hideTooltip: () => boolean, +): VictoryVoronoiContainerProps => { + return { + labels: obj => { + if (obj.datum.hideLabel || hideTooltip()) { + return ''; + } + + if (obj.datum._median !== undefined) { + // Buckets display => datapoint is expected to have _median, _min, _max, _q1, _q3 stats + const avg = + obj.datum.y.reduce((s: number, y: number) => s + y, 0) / + obj.datum.y.length; + + return `${obj.datum.name} (${obj.datum.y.length} datapoints) + ${formatValue('avg', obj.datum, avg)}, ${formatValue( + 'min', + obj.datum, + obj.datum._min, + )}, ${formatValue('max', obj.datum, obj.datum._max)} + ${formatValue('p25', obj.datum, obj.datum._q1)}, ${formatValue( + 'p50', + obj.datum, + obj.datum._median, + )}, ${formatValue('p75', obj.datum, obj.datum._q3)}`; + } + + return formatValue(obj.datum.name, obj.datum, obj.datum.y, obj.datum.y0); + }, + labelComponent: labelComponent, + // We blacklist "parent" as a workaround to avoid the VictoryVoronoiContainer crashing. + // See https://github.com/FormidableLabs/victory/issues/1355 + voronoiBlacklist: ['parent'], + }; +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/Charts/CustomTooltip.tsx b/workspaces/kiali/plugins/kiali/src/components/Charts/CustomTooltip.tsx new file mode 100644 index 0000000000..9ba59ddeb2 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Charts/CustomTooltip.tsx @@ -0,0 +1,163 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { + ChartCursorFlyout, + ChartLabel, + ChartPoint, + ChartTooltip, + ChartTooltipProps, +} from '@patternfly/react-charts'; + +import { VCDataPoint } from '../../types/VictoryChartInfo'; +import { toLocaleStringWithConditionalDate } from '../../utils/Date'; + +const dy = 15; +const headSizeDefault = 2 * dy; +const yMargin = 8; + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +const canvasContext: any = document.createElement('canvas').getContext('2d'); +canvasContext.font = '14px overpass'; + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +const CustomLabel = (props: any) => { + const x = props.x - 11 - props.textWidth / 2; + const textsWithHead = props.head + ? [props.head, ' '].concat(props.text) + : props.text; + const headSize = props.head ? 2 * dy : 0; + const startY = yMargin + props.y - (textsWithHead.length * dy) / 2 + headSize; + + return ( + <> + {props.activePoints + ?.filter((pt: any) => pt.color && !pt.hideLabel) + .map((pt: any, idx: number) => { + const symbol = pt.symbol || 'square'; + return ( + + ); + })} + + + ); +}; + +const getHeader = (activePoints?: VCDataPoint[]): string | undefined => { + if (activePoints && activePoints.length > 0) { + const x = activePoints[0].x; + if (typeof x === 'object') { + // Assume date + return toLocaleStringWithConditionalDate(x); + } + } + return undefined; +}; + +export type HookedTooltipProps = ChartTooltipProps & { + activePoints?: (VCDataPoint & T)[]; + onOpen?: (items: VCDataPoint[]) => void; + onClose?: () => void; +}; + +export class HookedChartTooltip extends React.Component< + HookedTooltipProps +> { + componentDidMount() { + if (this.props.onOpen && this.props.activePoints) { + this.props.onOpen(this.props.activePoints); + } + } + + componentWillUnmount() { + if (this.props.onClose) { + this.props.onClose(); + } + } + + render() { + return ; + } +} + +type Props = HookedTooltipProps<{}> & { + showTime?: boolean; +}; + +export const CustomTooltip = (props: Props) => { + const getDerivedStateFromProps = () => { + const head = props.showTime ? getHeader(props.activePoints) : undefined; + let texts: string[] = []; + + if (props.text && Array.isArray(props.text)) { + texts = props.text as string[]; + } else if (props.text) { + texts = [props.text as string]; + } + + let height = texts.length * dy + 2 * yMargin; + if (head) { + height += headSizeDefault; + } + const textWidth = Math.max( + ...texts.map(t => canvasContext.measureText(t).width), + ); + const width = + 50 + + (head + ? Math.max(textWidth, canvasContext.measureText(head).width) + : textWidth); + return { + head: head, + texts: texts, + textWidth: textWidth, + width: width, + height: height, + }; + }; + + const initialState = getDerivedStateFromProps(); + + return ( + + } + labelComponent={ + + } + constrainToVisibleArea + /> + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/Charts/Dashboard.tsx b/workspaces/kiali/plugins/kiali/src/components/Charts/Dashboard.tsx new file mode 100644 index 0000000000..3b3bd00b42 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Charts/Dashboard.tsx @@ -0,0 +1,137 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { Grid } from '@material-ui/core'; +import { ChartThemeColor, getTheme } from '@patternfly/react-charts'; +import { isArray } from 'lodash'; + +import { ChartModel, DashboardModel } from '../../types/Dashboards'; +import { AllPromLabelsValues } from '../../types/Metrics'; +import { Overlay } from '../../types/Overlay'; +import { LineInfo, RawOrBucket } from '../../types/VictoryChartInfo'; +import { getDataSupplier } from '../../utils/VictoryChartsUtils'; +import { BrushHandlers } from './Container'; +import { KChart } from './KChart'; + +export type Props = { + colors?: string[]; + dashboard: DashboardModel; + maximizedChart?: string; + expandHandler: (expandedChart?: string) => void; + labelValues: AllPromLabelsValues; + labelPrettifier?: (key: string, value: string) => string; + onClick?: (chart: ChartModel, datum: RawOrBucket) => void; + brushHandlers?: BrushHandlers; + template?: string; + dashboardHeight: number; + showSpans: boolean; + showTrendlines?: boolean; + customMetric?: boolean; + overlay?: Overlay; + timeWindow?: [Date, Date]; +}; + +type State = { + maximizedChart?: string; +}; + +export class Dashboard extends React.Component< + Props, + State +> { + constructor(props: Props) { + super(props); + this.state = { + maximizedChart: props.maximizedChart, + }; + } + + private onToggleMaximized = (chartKey: string): void => { + const maximized = this.state.maximizedChart ? undefined : chartKey; + this.setState(prevState => ({ + maximizedChart: prevState.maximizedChart ? undefined : chartKey, + })); + this.props.expandHandler(maximized); + }; + + private getChartHeight = (): number => { + if (this.state.maximizedChart) { + return this.props.dashboardHeight; + } + // Dashboards define the rows that are used + // Columns are defined using the spans field in the charts definition using a flex strategy + // When columns span the grid (12 spans) charts move to the next row + // By default metrics use a 2 row layout + const rows = this.props.dashboard.rows > 0 ? this.props.dashboard.rows : 2; + return this.props.dashboardHeight / rows; + }; + + private renderChart(chart: ChartModel) { + let colorScale = + this.props.colors || getTheme(ChartThemeColor.multi).chart!.colorScale!; + if (!isArray(colorScale)) { + colorScale = [colorScale]; + } + const dataSupplier = getDataSupplier( + chart, + { + values: this.props.labelValues, + prettifier: this.props.labelPrettifier, + }, + colorScale as string[], + ); + let onClick: ((datum: RawOrBucket) => void) | undefined = undefined; + if (this.props.onClick) { + onClick = (datum: RawOrBucket) => this.props.onClick!(chart, datum); + } + return ( + this.onToggleMaximized(chart.name)} + isMaximized={this.state.maximizedChart !== undefined} + overlay={chart.xAxis === 'series' ? undefined : this.props.overlay} + onClick={onClick} + brushHandlers={this.props.brushHandlers} + timeWindow={this.props.timeWindow} + /> + ); + } + + render() { + if (this.state.maximizedChart) { + const chart = this.props.dashboard.charts.find( + c => c.name === this.state.maximizedChart, + ); + if (chart) { + return this.renderChart(chart); + } + } + + return ( + + {this.props.dashboard.charts.map(c => { + return {this.renderChart(c)}; + })} + + ); + } +} diff --git a/workspaces/kiali/plugins/kiali/src/components/Charts/KChart.tsx b/workspaces/kiali/plugins/kiali/src/components/Charts/KChart.tsx new file mode 100644 index 0000000000..550d70b2d1 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Charts/KChart.tsx @@ -0,0 +1,330 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { + ChartArea, + ChartBar, + ChartLine, + ChartScatter, +} from '@patternfly/react-charts'; +import { + Button, + ButtonVariant, + EmptyState, + EmptyStateBody, + EmptyStateIcon, + EmptyStateVariant, +} from '@patternfly/react-core'; +import { CubesIcon, ErrorCircleOIcon } from '@patternfly/react-icons'; + +import { PFColors } from '../../components/Pf/PfColors'; +import { KialiIcon } from '../../config/KialiIcon'; +import { kialiStyle } from '../../styles/StyleUtils'; +import { ChartModel } from '../../types/Dashboards'; +import { Overlay } from '../../types/Overlay'; +import { + LineInfo, + RawOrBucket, + RichDataPoint, + VCLines, +} from '../../types/VictoryChartInfo'; +import { + ChartWithLegend, + LEGEND_HEIGHT, + MIN_HEIGHT, + MIN_HEIGHT_YAXIS, +} from './ChartWithLegend'; +import { BrushHandlers } from './Container'; + +type KChartProps = { + chart: ChartModel; + chartHeight?: number; + data: VCLines; + isMaximized: boolean; + onToggleMaximized: () => void; + onClick?: (datum: RawOrBucket) => void; + showSpans: boolean; + showTrendline?: boolean; + brushHandlers?: BrushHandlers; + overlay?: Overlay; + timeWindow?: [Date, Date]; +}; + +export const maximizeButtonStyle: React.CSSProperties = { + position: 'relative', + float: 'right', +}; + +const emptyStyle = kialiStyle({ + padding: '0 0 0 0', + margin: '0 0 0 0', +}); + +const kchartStyle = kialiStyle({ + paddingTop: 15, + paddingLeft: 25, + paddingRight: 25, + paddingBottom: 12, +}); + +// 24px (title + toolbar) + 20px (margin) + 15px (padding) + 15px (padding) +const titlePadding = 64; + +type State = { + collapsed: boolean; +}; + +type ChartTypeData = { + fill: boolean; + stroke: boolean; + groupOffset: number; + seriesComponent: React.ReactElement; + sizeRatio: number; +}; + +const lineInfo: ChartTypeData = { + fill: false, + stroke: true, + groupOffset: 0, + seriesComponent: , + sizeRatio: 1.0, +}; +const areaInfo: ChartTypeData = { + fill: true, + stroke: false, + groupOffset: 0, + seriesComponent: , + sizeRatio: 1.0, +}; +const barInfo: ChartTypeData = { + fill: true, + stroke: false, + groupOffset: 7, + seriesComponent: , + sizeRatio: 1 / 6, +}; +const scatterInfo: ChartTypeData = { + fill: true, + stroke: false, + groupOffset: 0, + seriesComponent: , + sizeRatio: 1 / 30, +}; + +export class KChart extends React.Component< + KChartProps, + State +> { + constructor(props: KChartProps) { + super(props); + this.state = { + collapsed: + this.props.chart.startCollapsed || + (!this.props.chart.error && this.isEmpty()), + }; + } + + componentDidUpdate(prevProps: KChartProps) { + // Check when there is a change on empty datapoints on a refresh to draw the chart collapsed the first time + // User can change the state after that point + const propsIsEmpty = !this.props.data.some(s => s.datapoints.length !== 0); + const prevPropsIsEmpty = !prevProps.data.some( + s => s.datapoints.length !== 0, + ); + if (propsIsEmpty !== prevPropsIsEmpty) { + this.setState({ + collapsed: propsIsEmpty, + }); + } + } + + private getInnerChartHeight = (): number => { + const chartHeight: number = this.props.chartHeight || 300; + const innerChartHeight = chartHeight - titlePadding; + return innerChartHeight; + }; + + private determineChartType() { + if (this.props.chart.chartType === undefined) { + if (this.props.chart.xAxis === 'series') { + return barInfo; + } else if (this.props.data.some(m => m.datapoints.some(dp => dp.y0))) { + return areaInfo; + } + return lineInfo; + } + const chartType = this.props.chart.chartType; + switch (chartType) { + case 'area': + return areaInfo; + case 'bar': + return barInfo; + case 'scatter': + return scatterInfo; + case 'line': + default: + return lineInfo; + } + } + + private isEmpty(): boolean { + return !this.props.data.some(s => s.datapoints.length !== 0); + } + + private renderChart() { + if (this.state.collapsed) { + return undefined; + } + const typeData = this.determineChartType(); + const minDomain = + this.props.chart.min === undefined + ? undefined + : { y: this.props.chart.min }; + const maxDomain = + this.props.chart.max === undefined + ? undefined + : { y: this.props.chart.max }; + return ( + + ); + } + + private renderEmpty() { + const chartHeight = this.getInnerChartHeight(); + return chartHeight > MIN_HEIGHT ? ( +
MIN_HEIGHT_YAXIS + ? chartHeight - LEGEND_HEIGHT + : chartHeight, + textAlign: 'center', + borderLeft: `2px solid ${PFColors.ColorLight200}`, + borderBottom: `2px solid ${PFColors.ColorLight200}`, + }} + > + + {this.props.isMaximized && } + + No data available + + +
+ ) : undefined; + } + + private renderError() { + return ( +
+ + {this.props.isMaximized && ( + ( + + )} + /> + )} + + An error occured while fetching this metric: +

+ {this.props.chart.error} +

+
+
+
+ ); + } + render() { + // eslint-disable-next-line no-nested-ternary + const renderE = this.props.chart.error + ? this.renderError() + : this.isEmpty() + ? this.renderEmpty() + : this.renderChart(); + return ( +
+
+
+ {this.props.chart.name} +
+ {this.props.onToggleMaximized && ( +
+ +
+ )} +
+
+ {renderE} +
+
+ ); + } +} diff --git a/workspaces/kiali/plugins/kiali/src/components/Charts/SparklineChart.tsx b/workspaces/kiali/plugins/kiali/src/components/Charts/SparklineChart.tsx new file mode 100644 index 0000000000..cb969a4d69 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Charts/SparklineChart.tsx @@ -0,0 +1,260 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { useTheme } from '@material-ui/core/styles'; +import { + Chart, + ChartArea, + ChartAxis, + ChartLabel, + ChartLegend, + ChartProps, + ChartScatter, + ChartThreshold, + ChartVoronoiContainer, +} from '@patternfly/react-charts'; + +import { + RichDataPoint, + VCDataPoint, + VCLines, +} from '../../types/VictoryChartInfo'; +import { addLegendEvent, VCEvent } from '../../utils/VictoryEvents'; +import { PFColors } from '../Pf/PfColors'; +import { CustomTooltip } from './CustomTooltip'; + +type Props = ChartProps & { + labelName: string; + name: string; + series: VCLines; + showLegend?: boolean; + showXAxisValues?: boolean; + showYAxis?: boolean; + tooltipFormat?: (dp: VCDataPoint) => string; + thresholds?: VCLines; +}; + +export const INTERPOLATION_STRATEGY = 'monotoneX'; + +export const SparklineChart = (props: Props) => { + const [width, setWidth] = React.useState(props.width || 1); + const [hiddenSeries, setHiddenSeries] = React.useState>( + new Set(), + ); + const containerRef: React.RefObject | undefined = + props.width === undefined ? React.createRef() : undefined; + const theme = useTheme(); + const axisStyle = { + tickLabels: { fill: theme.palette.type === 'dark' ? '#dcdcdc' : '#000' }, + }; + const labelStyle = { + fill: theme.palette.type === 'dark' ? '#dcdcdc' : '#000', + }; + + const handleResize = () => { + if (containerRef?.current) { + setWidth(containerRef.current.clientWidth); + } + }; + + React.useEffect(() => { + if (containerRef) { + setTimeout(() => { + handleResize(); + window.addEventListener('resize', handleResize); + }); + + return () => { + window.removeEventListener('resize', handleResize); + }; + } + return () => {}; + }); + + const renderChart = () => { + const legendHeight = 30; + let height = props.height || 300; + let padding = { top: 0, bottom: 0, left: 0, right: 0 }; + if (props.padding) { + const p = props.padding as number; + if (Number.isFinite(p)) { + padding = { top: p, bottom: p, left: p, right: p }; + } else { + padding = { ...padding, ...(props.padding as object) }; + } + } + const events: VCEvent[] = []; + if (props.showLegend) { + padding.bottom += legendHeight; + height += legendHeight; + props.series.forEach((_, idx) => { + addLegendEvent(events, { + legendName: `${props.name}-legend`, + idx: idx, + serieID: [`${props.name}-area-${idx}`], + onClick: () => { + if (!hiddenSeries.delete(idx)) { + // Was not already hidden => add to set + hiddenSeries.add(idx); + } + setHiddenSeries(new Set(hiddenSeries)); + return null; + }, + onMouseOver: prs => { + return { + style: { ...prs.style, strokeWidth: 4, fillOpacity: 0.5 }, + }; + }, + }); + }); + } + + const container = ( + + props.tooltipFormat ? props.tooltipFormat(obj.datum) : obj.datum.y + } + labelComponent={} + voronoiBlacklist={props.series.map( + (_, idx) => `${props.name}-scatter-${idx}`, + )} + /> + ); + const hiddenAxisStyle = { + axis: { stroke: 'none' }, + ticks: { stroke: 'none' }, + tickLabels: { stroke: 'none', fill: 'none' }, + }; + + return ( + + {props.showXAxisValues ? ( + dp.x)} + tickFormat={x => + (x as Date).toLocaleTimeString([], { + hour: '2-digit', + minute: '2-digit', + }) + } + tickCount={2} + style={axisStyle} + /> + ) : ( + + )} + {props.showYAxis ? ( + + } + tickCount={2} + dependentAxis + style={axisStyle} + /> + ) : ( + + )} + {props.series.map((serie, idx) => { + if (hiddenSeries.has(idx)) { + return undefined; + } + return ( + (active ? 5 : 2)} + /> + ); + })} + {props.series.map((serie, idx) => { + if (hiddenSeries.has(idx)) { + return undefined; + } + return ( + + ); + })} + {props.showLegend && ( + { + if (hiddenSeries.has(idx)) { + return { ...s.legendItem, symbol: { fill: PFColors.Color200 } }; + } + return s.legendItem; + })} + y={height - legendHeight} + height={legendHeight} + width={width} + /> + )} + + {props.thresholds && + props.thresholds.map((serie, idx) => { + if (hiddenSeries.has(idx)) { + return undefined; + } + return ( + + ); + })} + + ); + }; + + if (containerRef) { + return
{renderChart()}
; + } + return renderChart(); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/DefaultSecondaryMasthead/DefaultSecondaryMasthead.tsx b/workspaces/kiali/plugins/kiali/src/components/DefaultSecondaryMasthead/DefaultSecondaryMasthead.tsx new file mode 100644 index 0000000000..0fc880403e --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/DefaultSecondaryMasthead/DefaultSecondaryMasthead.tsx @@ -0,0 +1,60 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React from 'react'; + +import { Grid, IconButton, Tooltip } from '@material-ui/core'; +import Refresh from '@material-ui/icons/Refresh'; + +type DefaultProps = { + hideNamespaceSelector?: boolean; + elements?: JSX.Element[]; + showClusterSelector?: boolean; + onRefresh: () => void; +}; + +const defaultStyle: React.CSSProperties = { marginTop: '25px', float: 'left' }; +const justReloadStyle: React.CSSProperties = { marginTop: '0', float: 'right' }; + +export const DefaultSecondaryMasthead: React.FC = ( + props: DefaultProps, +) => { + return ( + + {props.elements?.map(element => { + return element; + })} + 0 ? 1 : 12}> + 0 + ? defaultStyle + : justReloadStyle + } + > + + + + + + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/DetailDescription/DetailDescription.tsx b/workspaces/kiali/plugins/kiali/src/components/DetailDescription/DetailDescription.tsx new file mode 100644 index 0000000000..168f2c5ddc --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/DetailDescription/DetailDescription.tsx @@ -0,0 +1,456 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; +import { Link } from 'react-router-dom'; + +import { Tooltip } from '@material-ui/core'; + +import { isMultiCluster, serverConfig } from '../../config'; +import { createIcon, KialiIcon } from '../../config/KialiIcon'; +import { isGateway, isWaypoint } from '../../helpers/LabelFilterHelper'; +import { healthIndicatorStyle } from '../../styles/HealthStyle'; +import { kialiStyle } from '../../styles/StyleUtils'; +import { AppWorkload } from '../../types/App'; +import * as H from '../../types/Health'; +import { HealthSubItem } from '../../types/Health'; +import { DRAWER } from '../../types/types'; +import { Workload } from '../../types/Workload'; +import { BackstageObjectLink } from '../../utils/backstageLinks'; +import { renderTrafficStatus } from '../Health/HealthDetails'; +import { MissingSidecar } from '../MissingSidecar/MissingSidecar'; +import { PFBadge, PFBadges } from '../Pf/PfBadges'; + +type Props = { + entity?: boolean; + apps?: string[]; + cluster?: string; + health?: H.Health; + namespace: string; + services?: string[]; + waypointWorkloads?: Workload[]; + workloads?: AppWorkload[]; + view?: string; +}; + +const iconStyle = kialiStyle({ + margin: 0, + padding: 0, + display: 'inline-block', +}); + +const resourceListStyle = kialiStyle({ + margin: '0 0 0.5rem 0', + $nest: { + '& > span': { + float: 'left', + width: '125px', + fontWeight: 700, + }, + }, +}); + +const containerStyle = kialiStyle({ + margin: '1rem 0 0.5rem 0', +}); + +const itemStyle = kialiStyle({ + paddingBottom: '0.25rem', +}); + +const infoStyle = kialiStyle({ + marginLeft: '0.5rem', +}); + +export const renderWaypoint = (bgsize?: string): React.ReactNode => { + const badgeSize = bgsize === 'global' || bgsize === 'sm' ? bgsize : 'global'; + return [ +
+ + Waypoint proxy + + + +
, + ]; +}; + +export const DetailDescription: React.FC = (props: Props) => { + const renderAppItem = ( + namespace: string, + appName: string, + ): React.ReactNode => { + let link: React.ReactNode; + + link = ( + + {appName} + + ); + + let href = `/namespaces/${namespace}/applications/${appName}`; + + if (props.cluster && isMultiCluster) { + href = `${href}?clusterName=${props.cluster}`; + } + + if (props.view === DRAWER) { + href = `#application/${namespace}_${appName}`; + + link = {appName}; + } + + return ( +
  • +
    + +
    + + {link} +
  • + ); + }; + + const renderServiceItem = ( + namespace: string, + serviceName: string, + ): React.ReactNode => { + let link: React.ReactNode; + + link = ( + + {serviceName} + + ); + + if (props.view === DRAWER) { + let href = `/namespaces/${namespace}/services/${serviceName}`; + + if (props.cluster && isMultiCluster) { + href = `${href}?clusterName=${props.cluster}`; + } + + href = `#service/${namespace}_${serviceName}`; + link = {serviceName}; + } + + return ( +
  • +
    + +
    + + {link} +
  • + ); + }; + + const renderEmptyItem = (type: string): React.ReactNode => { + const message = `No ${type} found`; + + return
    {message}
    ; + }; + + const appList = (): React.ReactNode => { + const applicationList = + props.apps && props.apps.length > 0 + ? props.apps + .sort((a1: string, a2: string) => (a1 < a2 ? -1 : 1)) + .filter(name => { + if (name === undefined) { + return null; + } + + return name; + }) + .map(name => renderAppItem(props.namespace, name)) + : renderEmptyItem('applications'); + + return [ +
    +
      + {applicationList} +
    +
    , + ]; + }; + + const renderServiceAccounts = ( + workload: AppWorkload, + ): NonNullable => { + return ( +
    + {workload.serviceAccountNames && + workload.serviceAccountNames.length > 0 ? ( +
    + Service accounts + +
      + {workload.serviceAccountNames.map((serviceAccount, _) => ( +
    • + {serviceAccount} +
    • + ))} +
    +
    + ) : ( + 'Not found' + )} +
    + ); + }; + + const renderWorkloadItem = (workload: AppWorkload): React.ReactNode => { + let link: React.ReactNode; + + link = ( + + {workload.workloadName} + + ); + + if (props.view === DRAWER) { + let href = `/namespaces/${props.namespace}/workloads/${workload.workloadName}`; + + if (props.cluster && isMultiCluster) { + href = `${href}?clusterName=${props.cluster}`; + } + + href = `#workload/${props.namespace}_${workload.workloadName}`; + link = {workload.workloadName}; + } + + return ( + +
    + +
    + {link} + + + + {((!workload.istioSidecar && + !workload.istioAmbient && + !isWaypoint(workload.labels) && + serverConfig.ambientEnabled) || + (!workload.istioSidecar && !serverConfig.ambientEnabled)) && ( + + )} +
    + ); + }; + + const renderWorkloadHealthItem = (sub: HealthSubItem): React.ReactNode => { + let workload: AppWorkload | undefined = undefined; + + if (props.workloads && props.workloads.length > 0) { + for (const wk of props.workloads) { + const hWorkload = sub.text.substring(0, sub.text.indexOf(':')); + + if (hWorkload === wk.workloadName) { + workload = wk; + break; + } + } + } + + if (workload) { + let link: React.ReactNode; + + if (props.view === DRAWER) { + let href = `/namespaces/${props.namespace}/workloads/${workload.workloadName}`; + + if (props.cluster && isMultiCluster) { + href = `${href}?clusterName=${props.cluster}`; + } + + href = `#workload/${props.namespace}_${workload.workloadName}`; + link = {workload.workloadName}; + } else { + link = ( + + {workload.workloadName} + + ); + } + + return ( + +
    + +
    + + {link} + + + + + + {sub.text}} + className={healthIndicatorStyle} + > + + {createIcon(sub.status)} + + + + {((!workload.istioSidecar && + !workload.istioAmbient && + serverConfig.ambientEnabled) || + (!workload.istioSidecar && !serverConfig.ambientEnabled)) && ( + + )} +
    + ); + } + return ( + + {createIcon(sub.status)} + {sub.text} + + ); + }; + + const renderWorkloadStatus = (): React.ReactNode => { + if (props.health) { + const item = props.health.getWorkloadStatus(); + + if (item) { + return ( +
    + {item.text} + + {item.children && ( +
      + {item.children.map((sub, _) => { + return ( +
    • + {renderWorkloadHealthItem(sub)} +
    • + ); + })} +
    + )} +
    + ); + } + return ( +
    +
      + {props.workloads + ? props.workloads + .sort((w1: AppWorkload, w2: AppWorkload) => + w1.workloadName < w2.workloadName ? -1 : 1, + ) + .map((wkd, _) => { + return ( +
    • + {renderWorkloadItem(wkd)} +
    • + ); + }) + : undefined} +
    +
    + ); + } + return undefined; + }; + + const workloadSummary = (): React.ReactNode => { + return
    {renderWorkloadStatus()}
    ; + }; + + const serviceList = (): React.ReactNode => { + const serviceListT = + props.services && props.services.length > 0 + ? props.services + .sort((s1: string, s2: string) => (s1 < s2 ? -1 : 1)) + .map(name => renderServiceItem(props.namespace, name)) + : renderEmptyItem('services'); + + return [ +
    +
      + {serviceListT} +
    +
    , + ]; + }; + + return ( +
    + {props.apps !== undefined && appList()} + {props.workloads !== undefined && workloadSummary()} + {props.services !== undefined && serviceList()} + {props.health && renderTrafficStatus(props.health)} + {props.waypointWorkloads && renderWaypoint()} +
    + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/Drawers/AppDetailsDrawer.tsx b/workspaces/kiali/plugins/kiali/src/components/Drawers/AppDetailsDrawer.tsx new file mode 100644 index 0000000000..34e19d584d --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Drawers/AppDetailsDrawer.tsx @@ -0,0 +1,90 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; +import { useAsyncFn, useDebounce } from 'react-use'; + +import { useApi } from '@backstage/core-plugin-api'; + +import { CircularProgress } from '@material-ui/core'; +import { AxiosError } from 'axios'; + +import { HistoryManager } from '../../app/History'; +import { AppInfo } from '../../pages/AppDetails/AppInfo'; +import { kialiApiRef } from '../../services/Api'; +import { App, AppQuery } from '../../types/App'; +import { AppHealth } from '../../types/Health'; +import { DRAWER } from '../../types/types'; + +type Props = { + namespace: string; + app: string; +}; +export const AppDetailsDrawer = (props: Props) => { + const kialiClient = useApi(kialiApiRef); + const [appItem, setAppItem] = React.useState(); + const [health, setHealth] = React.useState(); + const cluster = HistoryManager.getClusterName(); + + const fetchApp = async () => { + const params: AppQuery = { + rateInterval: `60s`, + health: 'true', + }; + + kialiClient + .getApp(props.namespace, props.app, params, cluster) + .then((appResponse: App) => { + const healthR = AppHealth.fromJson( + props.namespace, + props.app, + appResponse.health, + { + rateInterval: 60, + hasSidecar: appResponse.workloads.some(w => w.istioSidecar), + hasAmbient: appResponse.workloads.some(w => w.istioAmbient), + }, + ); + setAppItem(appResponse); + setHealth(healthR); + }) + .catch((err: AxiosError) => { + // eslint-disable-next-line no-console + console.log(err); + }); + }; + + const [{ loading }, refresh] = useAsyncFn( + async () => { + // Check if the config is loaded + await fetchApp(); + }, + [], + { loading: true }, + ); + useDebounce(refresh, 10); + + if (loading) { + return ; + } + + return ( + <> + {appItem && ( + + )} + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/Drawers/ServiceDetailsDrawer.tsx b/workspaces/kiali/plugins/kiali/src/components/Drawers/ServiceDetailsDrawer.tsx new file mode 100644 index 0000000000..18a922d186 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Drawers/ServiceDetailsDrawer.tsx @@ -0,0 +1,86 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; +import { useAsyncFn, useDebounce } from 'react-use'; + +import { useApi } from '@backstage/core-plugin-api'; + +import { CircularProgress } from '@material-ui/core'; + +import { HistoryManager } from '../../app/History'; +import { ServiceInfo } from '../../pages/ServiceDetails/ServiceInfo'; +import { kialiApiRef } from '../../services/Api'; +import { Validations } from '../../types/IstioObjects'; +import { ServiceDetailsInfo } from '../../types/ServiceInfo'; +import { DRAWER } from '../../types/types'; + +type Props = { + namespace: string; + service: string; +}; +export const ServiceDetailsDrawer = (props: Props) => { + const kialiClient = useApi(kialiApiRef); + const [serviceItem, setServiceItem] = React.useState(); + const cluster = HistoryManager.getClusterName(); + const [validations, setValidations] = React.useState({}); + + const fetchService = async () => { + kialiClient + .getServiceDetail(props.namespace, props.service, true, cluster, 60) + .then((serviceResponse: ServiceDetailsInfo) => { + setServiceItem(serviceResponse); + setValidations(serviceResponse.validations); + }) + .catch(err => { + // eslint-disable-next-line no-console + console.log(err); + }); + }; + + const [{ loading }, refresh] = useAsyncFn( + async () => { + // Check if the config is loaded + await fetchService(); + }, + [], + { loading: true }, + ); + useDebounce(refresh, 10); + + if (loading) { + return ; + } + + return ( + <> + {serviceItem && ( + + )} + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/Drawers/WorkloadDetailsDrawer.tsx b/workspaces/kiali/plugins/kiali/src/components/Drawers/WorkloadDetailsDrawer.tsx new file mode 100644 index 0000000000..589e00568d --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Drawers/WorkloadDetailsDrawer.tsx @@ -0,0 +1,99 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; +import { useAsyncFn, useDebounce } from 'react-use'; + +import { useApi } from '@backstage/core-plugin-api'; + +import { CircularProgress } from '@material-ui/core'; + +import { WorkloadInfo } from '../../pages/WorkloadDetails/WorkloadInfo'; +import { kialiApiRef } from '../../services/Api'; +import { WorkloadHealth } from '../../types/Health'; +import { DRAWER } from '../../types/types'; +import { Workload, WorkloadQuery } from '../../types/Workload'; + +type Props = { + namespace: string; + workload: string; +}; +export const WorkloadDetailsDrawer = (props: Props) => { + const kialiClient = useApi(kialiApiRef); + const [workloadItem, setWorkloadItem] = React.useState(); + const [health, setHealth] = React.useState(); + + const fetchWorkload = async () => { + const query: WorkloadQuery = { + health: 'true', + rateInterval: `60s`, + validate: 'false', + }; + + kialiClient + .getWorkload( + props.namespace ? props.namespace : '', + props.workload ? props.workload : '', + query, + ) + .then((workloadResponse: Workload) => { + setWorkloadItem(workloadResponse); + + const wkHealth = WorkloadHealth.fromJson( + props.namespace ? props.namespace : '', + workloadResponse.name, + workloadResponse.health, + { + rateInterval: 60, + hasSidecar: workloadResponse.istioSidecar, + hasAmbient: workloadResponse.istioAmbient, + }, + ); + setHealth(wkHealth); + }) + .catch(err => { + // eslint-disable-next-line no-console + console.log(err); + }); + }; + + const [{ loading }, refresh] = useAsyncFn( + async () => { + // Check if the config is loaded + await fetchWorkload(); + }, + [], + { loading: true }, + ); + useDebounce(refresh, 10); + + if (loading) { + return ; + } + + return ( + <> + {workloadItem && ( + + )} + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/Envoy/AccessLogModal.tsx b/workspaces/kiali/plugins/kiali/src/components/Envoy/AccessLogModal.tsx new file mode 100644 index 0000000000..a8f079d239 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Envoy/AccessLogModal.tsx @@ -0,0 +1,977 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { + Table, + TableBody, + TableCell, + TableHead, + TableRow, +} from '@material-ui/core'; +import { + Button, + ButtonVariant, + Modal, + Split, + SplitItem, +} from '@patternfly/react-core'; +import { classes } from 'typestyle'; + +import { PFColors } from '../../components/Pf/PfColors'; +import { kialiStyle } from '../../styles/StyleUtils'; +import { AccessLog } from '../../types/IstioObjects'; + +export interface AccessLogModalProps { + accessLog: AccessLog; + accessLogMessage: string; + className?: string; + onClose?: () => void; +} + +const fieldStyle = kialiStyle({ + color: PFColors.Orange400, + fontWeight: 'bold', + paddingLeft: 0, + paddingRight: 0, +}); + +const modalStyle = kialiStyle({ + height: '70%', + width: '50%', + overflow: 'auto', + overflowY: 'hidden', +}); + +const prefaceStyle = kialiStyle({ + fontFamily: 'monospace', + fontSize: 'var(--kiali-global--font-size)', + backgroundColor: PFColors.Black1000, + color: PFColors.Gold400, + marginBottom: '1rem', + overflow: 'auto', + resize: 'none', + padding: '0.75rem', + whiteSpace: 'pre', +}); + +const splitStyle = kialiStyle({ + overflow: 'auto', + width: '50%', +}); + +const contentStyle = kialiStyle({ + marginLeft: '0.5rem', + marginRight: '0.5rem', +}); + +const descriptionStyle = kialiStyle({ + backgroundColor: PFColors.BackgroundColor200, + padding: '1rem 1.25rem', + $nest: { + '& dt': { + fontWeight: 'bold', + }, + }, +}); + +const tableStyle = kialiStyle({ + background: 'transparent', + marginBottom: '0.25rem', + $nest: { + '& tbody tr:last-child': { + borderBottom: 0, + }, + '& tr > *': { + padding: '0.25rem', + }, + }, +}); + +export const AccessLogModal: React.FC = ( + props: AccessLogModalProps, +) => { + const [description, setDescription] = React.useState( +
    +
    Click Field Name for Description
    +
    , + ); + + const getDescription = (alFieldName: string): React.ReactNode => { + switch (alFieldName) { + case 'authority': + return ( + <> +
    %REQ(X?Y):Z%
    +
    +
    +
    HTTP
    +
    +

    + Authority is the request authority header %REQ(:AUTHORITY)% +

    +
    +
    TCP
    +
    +

    Not implemented (“-“).

    +
    +
    +
    + + ); + case 'bytes received': + return ( + <> +
    %BYTES_RECEIVED%
    +
    +
    +
    HTTP
    +
    +

    Body bytes received.

    +
    +
    TCP
    +
    +

    Downstream bytes received on connection.

    +
    +
    +

    Renders a numeric value in typed JSON logs.

    +
    + + ); + case 'bytes sent': + return ( + <> +
    %BYTES_SENT%
    +
    +
    +
    HTTP
    +
    +

    + Body bytes sent. For WebSocket connection it will also + include response header bytes. +

    +
    +
    TCP
    +
    +

    Downstream bytes sent on connection.

    +
    +
    +

    Renders a numeric value in typed JSON logs.

    +
    + + ); + case 'downstream local': + return ( + <> +
    %DOWNSTREAM_LOCAL_ADDRESS%
    +
    +

    + Local address of the downstream connection. If the address is an + IP address it includes both address and port. If the original + connection was redirected by iptables REDIRECT, this represents + the original destination address restored by the{' '} + + + Original Destination Filter + + {' '} + using SO_ORIGINAL_DST socket option. If the original connection + was redirected by iptables TPROXY, and the listener’s + transparent option was set to true, this represents the original + destination address and port. +

    +
    + + ); + case 'downstream remote': + return ( + <> +
    %DOWNSTREAM_REMOTE_ADDRESS%
    +
    +

    + Remote address of the downstream connection. If the address is + an IP address it includes both address and port. +

    +
    +

    Note

    +

    + This may not be the physical remote address of the peer if the + address has been inferred from{' '} + + Proxy Protocol filter + {' '} + or{' '} + + x-forwarded-for + + . +

    +
    +
    + + ); + case 'duration': + return ( + <> +
    %DURATION%
    +
    +
    +
    HTTP
    +
    +

    + Total duration in milliseconds of the request from the start + time to the last byte out. +

    +
    +
    TCP
    +
    +

    + Total duration in milliseconds of the downstream connection. +

    +
    +
    +

    Renders a numeric value in typed JSON logs.

    +
    + + ); + case 'forwarded for': + return ( + <> +
    %REQ(X?Y):Z%
    +
    +
    +
    HTTP
    +
    +

    + ForwardedFor is the X-Forwarded-For header value + %REQ(FORWARDED-FOR)% +

    +
    +
    TCP
    +
    +

    Not implemented (“-“).

    +
    +
    +
    + + ); + case 'method': + return ( + <> +
    %REQ(X?Y):Z%
    +
    +
    +
    HTTP
    +
    +

    Method is the HTTP method %REQ(:METHOD)%

    +
    +
    TCP
    +
    +

    Not implemented (“-“).

    +
    +
    +
    + + ); + case 'protocol': + return ( + <> +
    %PROTOCOL%
    +
    +
    +
    HTTP
    +
    +

    + Protocol. Currently either HTTP/1.1 or{' '} + HTTP/2. +

    +
    +
    TCP
    +
    +

    Not implemented (“-“).

    +
    +
    +

    + In typed JSON logs, PROTOCOL will render the string{' '} + + "-" + {' '} + if the protocol is not available (e.g. in TCP logs). +

    +
    + + ); + case 'request id': + return ( + <> +
    %REQ(X?Y):Z%
    +
    +
    +
    HTTP
    +
    +

    + RequestId is the envoy generated X-REQUEST-ID header + "%REQ(X-REQUEST-ID)%" +

    +
    +
    TCP
    +
    +

    Not implemented (“-“).

    +
    +
    +
    + + ); + case 'requested server': + return ( + <> +
    %REQUESTED_SERVER_NAME%
    +
    +
    +
    HTTP
    +
    +

    + String value set on ssl connection socket for Server Name + Indication (SNI) +

    +
    +
    TCP
    +
    +

    + String value set on ssl connection socket for Server Name + Indication (SNI) +

    +
    +
    +
    + + ); + case 'response flags': + return ( + <> +
    %RESPONSE_FLAGS%
    +
    +

    + Additional details about the response or connection, if any. For + TCP connections, the response codes mentioned in the + descriptions do not apply. Possible values are: +

    +
    +
    HTTP and TCP
    +
    +
      +
    • +

      + UH: No healthy upstream hosts in + upstream cluster in addition to 503 response code. +

      +
    • +
    • +

      + UF: Upstream connection failure in + addition to 503 response code. +

      +
    • +
    • +

      + UO: Upstream overflow ( + + circuit breaking + + ) in addition to 503 response code. +

      +
    • +
    • +

      + NR: No{' '} + + route configured + {' '} + for a given request in addition to 404 response code, or + no matching filter chain for a downstream connection. +

      +
    • +
    • +

      + URX: The request was rejected because + the{' '} + + + upstream retry limit (HTTP) + + {' '} + or{' '} + + + maximum connect attempts (TCP) + + {' '} + was reached. +

      +
    • +
    • +

      + NC: Upstream cluster not found. +

      +
    • +
    +
    +
    HTTP only
    +
    +
      +
    • +

      + DC: Downstream connection termination. +

      +
    • +
    • +

      + LH: Local service failed{' '} + + + health check request + + {' '} + in addition to 503 response code. +

      +
    • +
    • +

      + UT: Upstream request timeout in + addition to 504 response code. +

      +
    • +
    • +

      + LR: Connection local reset in addition + to 503 response code. +

      +
    • +
    • +

      + UR: Upstream remote reset in addition + to 503 response code. +

      +
    • +
    • +

      + UC: Upstream connection termination in + addition to 503 response code. +

      +
    • +
    • +

      + DI: The request processing was delayed + for a period specified via{' '} + + fault injection + + . +

      +
    • +
    • +

      + FI: The request was aborted with a + response code specified via{' '} + + fault injection + + . +

      +
    • +
    • +

      + RL: The request was ratelimited locally + by the{' '} + + + HTTP rate limit filter + + {' '} + in addition to 429 response code. +

      +
    • +
    • +

      + UAEX: The request was denied by the + external authorization service. +

      +
    • +
    • +

      + RLSE: The request was rejected because + there was an error in rate limit service. +

      +
    • +
    • +

      + IH: The request was rejected because it + set an invalid value for a{' '} + + + strictly-checked header + + {' '} + in addition to 400 response code. +

      +
    • +
    • +

      + SI: Stream idle timeout in addition to + 408 response code. +

      +
    • +
    • +

      + DPE: The downstream request had an HTTP + protocol error. +

      +
    • +
    • +

      + UPE: The upstream response had an HTTP + protocol error. +

      +
    • +
    • +

      + UMSDR: The upstream request reached to + max stream duration. +

      +
    • +
    +
    +
    +
    + + ); + case 'route name': + return ( + <> +
    %ROUTE_NAME%
    +
    +

    + RouteName is the name of the VirtualService route which matched + this request %ROUTE_NAME% +

    +
    + + ); + case 'status code': + return ( + <> +
    %RESPONSE_CODE%
    +
    +
    +
    HTTP
    +
    +

    + HTTP response code. Note that a response code of ‘0’ means + that the server never sent the beginning of a response. This + generally means that the (downstream) client disconnected. +

    +

    + Note that in the case of 100-continue responses, only the + response code of the final headers will be logged. If a + 100-continue is followed by a 200, the logged response will + be 200. If a 100-continue results in a disconnect, the 100 + will be logged. +

    +
    +
    TCP
    +
    +

    Not implemented (“-“).

    +
    +
    +

    Renders a numeric value in typed JSON logs.

    +
    + + ); + case 'tcp service time': + return ( + <> +
    %REQ(X?Y):Z%
    +
    +
    +
    HTTP
    +
    +

    + TCPServiceTime is the X-ENVOY-UPSTREAM-SERVICE-TIME header + "%REQ(X-ENVOY-UPSTREAM-SERVICE-TIME)%" +

    +
    +
    TCP
    +
    +

    Not implemented (“-“).

    +
    +
    +
    + + ); + case 'timestamp': + return ( + <> +
    %START_TIME%
    +
    +
    +
    HTTP
    +
    +

    Request start time including milliseconds.

    +
    +
    TCP
    +
    +

    + Downstream connection start time including milliseconds. +

    +
    +
    +

    + START_TIME can be customized using a{' '} + + format string + + . In addition to that, START_TIME also accepts following + specifiers: +

    + + + + +

    Specifier

    +
    + +

    Explanation

    +
    +
    +
    + + + +

    + + %s + +

    +
    + +

    The number of seconds since the Epoch

    +
    +
    + + +

    + + %f + + ,{' '} + + %[1-9]f + +

    +
    + +

    + Fractional seconds digits, default is 9 digits + (nanosecond) +

    +
    +
    + + +
      +
    • +

      + + %3f + {' '} + millisecond (3 digits) +

      +
    • +
    • +

      + + %6f + {' '} + microsecond (6 digits) +

      +
    • +
    • +

      + + %9f + {' '} + nanosecond (9 digits) +

      +
    • +
    +
    +
    +
    +
    +

    Examples of formatting START_TIME is as follows:

    +
    +
    +
    +                    
    +                    %START_TIME(%Y/%m/%dT%H:%M:%S%z %s)% # To include
    +                    millisecond fraction of the second (.000 ... .999). E.g.
    +                    1527590590.528. %START_TIME(%s.%3f)% %START_TIME(%s.%6f)%
    +                    %START_TIME(%s.%9f)%
    +                  
    +
    +
    +

    + In typed JSON logs, START_TIME is always rendered as a string. +

    +
    + + ); + case 'upstream cluster': + return ( + <> +
    %UPSTREAM_CLUSTER%
    +
    +

    + Upstream cluster to which the upstream host belongs to. If + runtime feature + + envoy.reloadable_features.use_observable_cluster_name + {' '} + is enabled, then{' '} + + alt_stat_name + {' '} + will be used if provided. +

    +
    + + ); + case 'upstream failure reason': + return ( + <> +
    %UPSTREAM_TRANSPORT_FAILURE_REASON%
    +
    +
    +
    HTTP
    +
    +

    + If upstream connection failed due to transport socket (e.g. + TLS handshake), provides the failure reason from the + transport socket. The format of this field depends on the + configured upstream transport socket. Common TLS failures + are in{' '} + + TLS trouble shooting + + . +

    +
    +
    TCP
    +
    +

    Not implemented (“-“)

    +
    +
    +
    + + ); + case 'upstream local': + return ( + <> +
    %UPSTREAM_LOCAL_ADDRESS%
    +
    +

    + Local address of the upstream connection. If the address is an + IP address it includes both address and port. +

    +
    + + ); + case 'upstream service': + return ( + <> +
    %UPSTREAM_HOST%
    +
    +

    + Upstream host URL (e.g.,{' '} + + tcp://ip:port + {' '} + for TCP connections). +

    +
    + + ); + case 'uri path': + return ( + <> +
    %REQ(X?Y):Z%
    +
    +
    +
    HTTP
    +
    +

    + An HTTP request header: "%REQ(X-ENVOY-ORIGINAL-PATH?):PATH" +

    +
    +
    TCP
    +
    +

    Not implemented (“-“).

    +
    +
    +
    + + ); + case 'user agent': + return ( + <> +
    %REQ(X?Y):Z%
    +
    +
    +
    HTTP
    +
    +

    An HTTP request header: "%REQ(USER-AGENT)

    +
    +
    TCP
    +
    +

    Not implemented (“-“).

    +
    +
    +
    + + ); + default: + return <>No documentation available; + } + }; + + const handleClick = (alFieldName: string): void => { + setDescription(getDescription(alFieldName)); + }; + + const accessLogField = (key: string, val: string): React.ReactNode => { + return ( + <> + + {val ? val : '-'} +
    + + ); + }; + + const accessLogContent = (al: AccessLog): React.ReactNode => { + return ( +
    + {accessLogField('authority', al.authority)} + {accessLogField('bytes received', al.bytes_received)} + {accessLogField('bytes sent', al.bytes_sent)} + {accessLogField('downstream local', al.downstream_local)} + {accessLogField('downstream remote', al.downstream_remote)} + {accessLogField('duration', al.duration)} + {accessLogField('forwarded for', al.forwarded_for)} + {accessLogField('method', al.method)} + {accessLogField('protocol', al.protocol)} + {accessLogField('request id', al.request_id)} + {accessLogField('requested server', al.requested_server)} + {accessLogField('response flags', al.response_flags)} + {accessLogField('route name', al.route_name)} + {accessLogField('status code', al.status_code)} + {accessLogField('tcp service time', al.tcp_service_time)} + {accessLogField('timestamp', al.timestamp)} + {accessLogField('upstream cluster', al.upstream_cluster)} + {accessLogField('upstream failure reason', al.upstream_failure_reason)} + {accessLogField('upstream local', al.upstream_local)} + {accessLogField('upstream service', al.upstream_service)} + {accessLogField('upstream service time', al.upstream_service_time)} + {accessLogField('uri param', al.uri_param)} + {accessLogField('uri path', al.uri_path)} + {accessLogField('user agent', al.user_agent)} +
    + ); + }; + + return ( + +
    +
    {props.accessLogMessage}
    + + + {accessLogContent(props.accessLog)} + + + {description} + + +
    +
    + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/FilterList/FilterHelper.ts b/workspaces/kiali/plugins/kiali/src/components/FilterList/FilterHelper.ts new file mode 100644 index 0000000000..f4448a7247 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/FilterList/FilterHelper.ts @@ -0,0 +1,189 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { camelCase } from 'lodash'; + +import { history, HistoryManager, URLParam } from '../../app/History'; +import { config } from '../../config'; +import { + ActiveFilter, + ActiveFiltersInfo, + DEFAULT_LABEL_OPERATION, + FilterType, + ID_LABEL_OPERATION, + LabelOperation, + RunnableFilter, +} from '../../types/Filters'; +import { SortField } from '../../types/SortFilters'; + +export const perPageOptions: number[] = [5, 10, 15]; +const defaultDuration = 600; +const defaultRefreshInterval = config.toolbar.defaultRefreshInterval; + +export const getFiltersFromURL = ( + filterTypes: FilterType[], +): ActiveFiltersInfo => { + const urlParams = new URLSearchParams(history.location.search); + const activeFilters: ActiveFilter[] = []; + filterTypes.forEach(filter => { + urlParams.getAll(camelCase(filter.category)).forEach(value => { + activeFilters.push({ + category: filter.category, + value: value, + }); + }); + }); + + return { + filters: activeFilters, + op: + (urlParams.get(ID_LABEL_OPERATION) as LabelOperation) || + DEFAULT_LABEL_OPERATION, + }; +}; + +export const setFiltersToURL = ( + filterTypes: FilterType[], + filters: ActiveFiltersInfo, +): ActiveFiltersInfo => { + const urlParams = new URLSearchParams(history.location.search); + filterTypes.forEach(type => { + urlParams.delete(camelCase(type.category)); + }); + // Remove manually the special Filter opLabel + urlParams.delete('opLabel'); + const cleanFilters: ActiveFilter[] = []; + + filters.filters.forEach(activeFilter => { + const filterType = filterTypes.find( + filter => filter.category === activeFilter.category, + ); + if (!filterType) { + return; + } + cleanFilters.push(activeFilter); + urlParams.append(camelCase(filterType.category), activeFilter.value); + }); + urlParams.append(ID_LABEL_OPERATION, filters.op); + // Resetting pagination when filters change + history.push(`${history.location.pathname}?${urlParams.toString()}`); + return { filters: cleanFilters, op: filters.op || DEFAULT_LABEL_OPERATION }; +}; + +export const filtersMatchURL = ( + filterTypes: FilterType[], + filters: ActiveFiltersInfo, +): boolean => { + // This can probably be improved and/or simplified? + const fromFilters: Map = new Map(); + filters.filters.forEach(activeFilter => { + const existingValue = fromFilters.get(activeFilter.category) || []; + fromFilters.set( + activeFilter.category, + existingValue.concat(activeFilter.value), + ); + }); + + const fromURL: Map = new Map(); + const urlParams = new URLSearchParams(history.location.search); + filterTypes.forEach(filter => { + const values = urlParams.getAll(camelCase(filter.category)); + if (values.length > 0) { + const existing = fromURL.get(camelCase(filter.category)) || []; + fromURL.set(filter.category, existing.concat(values)); + } + }); + + if (fromFilters.size !== fromURL.size) { + return false; + } + let equalFilters = true; + fromFilters.forEach((filterValues, filterName) => { + const aux = fromURL.get(filterName) || []; + equalFilters = + equalFilters && + filterValues.every(value => aux.includes(value)) && + filterValues.length === aux.length; + }); + + return equalFilters; +}; + +export const isCurrentSortAscending = (): boolean => { + return (HistoryManager.getParam(URLParam.DIRECTION) || 'asc') === 'asc'; +}; + +export const currentDuration = (): number => { + return HistoryManager.getDuration() || defaultDuration; +}; + +export const currentRefreshInterval = (): number => { + const refreshInterval = HistoryManager.getNumericParam( + URLParam.REFRESH_INTERVAL, + ); + if (refreshInterval === undefined) { + return defaultRefreshInterval; + } + return refreshInterval; +}; + +export const currentSortField = ( + sortFields: SortField[], +): SortField => { + const queriedSortedField = + HistoryManager.getParam(URLParam.SORT) || sortFields[0].param; + return ( + sortFields.find(sortField => { + return sortField.param === queriedSortedField; + }) || sortFields[0] + ); +}; + +export const compareNullable = ( + a: T | undefined, + b: T | undefined, + safeComp: (a2: T, b2: T) => number, +): number => { + if (!a) { + return !b ? 0 : 1; + } + if (!b) { + return -1; + } + return safeComp(a, b); +}; + +const runOneFilter = ( + items: T[], + filter: RunnableFilter, + active: ActiveFiltersInfo, +) => { + const relatedActive = { + filters: active.filters.filter(af => af.category === filter.category), + op: active.op, + }; + if (relatedActive.filters.length) { + return items.filter(item => filter.run(item, relatedActive)); + } + return items; +}; + +export const runFilters = ( + items: T[], + filters: RunnableFilter[], + active: ActiveFiltersInfo, +) => { + return filters.reduce((i, f) => runOneFilter(i, f, active), items); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/Filters/CommonFilters.ts b/workspaces/kiali/plugins/kiali/src/components/Filters/CommonFilters.ts new file mode 100644 index 0000000000..6b760315cd --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Filters/CommonFilters.ts @@ -0,0 +1,111 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { + ActiveFiltersInfo, + AllFilterTypes, + FILTER_ACTION_APPEND, + FILTER_ACTION_UPDATE, + FilterType, + FilterValue, +} from '../../types/Filters'; +import { DEGRADED, FAILURE, HEALTHY, NA, NOT_READY } from '../../types/Health'; +import { removeDuplicatesArray } from '../../utils/Common'; + +export const presenceValues: FilterValue[] = [ + { + id: 'present', + title: 'Present', + }, + { + id: 'notpresent', + title: 'Not Present', + }, +]; + +export const istioSidecarFilter: FilterType = { + category: 'Istio Sidecar', + placeholder: 'Filter by Istio Sidecar Validation', + filterType: AllFilterTypes.select, + action: FILTER_ACTION_UPDATE, + filterValues: presenceValues, +}; + +export const healthFilter: FilterType = { + category: 'Health', + placeholder: 'Filter by Health', + filterType: AllFilterTypes.select, + action: FILTER_ACTION_APPEND, + filterValues: [ + { + id: HEALTHY.name, + title: HEALTHY.name, + }, + { + id: DEGRADED.name, + title: DEGRADED.name, + }, + { + id: FAILURE.name, + title: FAILURE.name, + }, + { + id: NOT_READY.name, + title: NOT_READY.name, + }, + { + id: 'na', + title: NA.name, + }, + ], +}; + +export const labelFilter: FilterType = { + category: 'Label', + placeholder: 'Filter by Label', + filterType: AllFilterTypes.label, + action: FILTER_ACTION_APPEND, + filterValues: [], +}; + +export const getFilterSelectedValues = ( + filter: FilterType, + activeFilters: ActiveFiltersInfo, +): string[] => { + const selected: string[] = activeFilters.filters + .filter(activeFilter => activeFilter.category === filter.category) + .map(activeFilter => activeFilter.value); + return removeDuplicatesArray(selected); +}; + +export const getPresenceFilterValue = ( + filter: FilterType, + activeFilters: ActiveFiltersInfo, +): boolean | undefined => { + const presenceFilters = activeFilters.filters.filter( + activeFilter => activeFilter.category === filter.category, + ); + + if (presenceFilters.length > 0) { + return presenceFilters[0].value === 'Present'; + } + return undefined; +}; + +export const filterByHealth = (items: any[], filterValues: string[]): any[] => { + return items.filter(itemWithHealth => + filterValues.includes(itemWithHealth.health.getGlobalStatus().name), + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/Filters/LabelFilter.tsx b/workspaces/kiali/plugins/kiali/src/components/Filters/LabelFilter.tsx new file mode 100644 index 0000000000..ac8c795b0f --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Filters/LabelFilter.tsx @@ -0,0 +1,92 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { + Button, + ButtonVariant, + Popover, + PopoverPosition, + TextInput, +} from '@patternfly/react-core'; + +import { KialiIcon } from '../../config/KialiIcon'; +import { kialiStyle } from '../../styles/StyleUtils'; + +interface LabelFiltersProps { + filterAdd: (value: string) => void; + isActive: (value: string) => boolean; + onChange: (value: any) => void; + value: string; +} + +const infoIconStyle = kialiStyle({ + marginLeft: '0.5rem', + alignSelf: 'center', +}); + +export const LabelFilters: React.FC = ( + props: LabelFiltersProps, +) => { + const onkeyPress = (e: any) => { + if (e.key === 'Enter') { + if (props.value?.length > 0) { + props.value + .split(' ') + .forEach(val => !props.isActive(val) && props.filterAdd(val)); + } + } + }; + + return ( + <> + props.onChange(value)} + onKeyPress={e => onkeyPress(e)} + style={{ width: 'auto' }} + /> + Label Filter Help} + position={PopoverPosition.right} + bodyContent={ + <> + To set a label filter you must enter values like. +
    +
      +
    • Filter by label presence: label
    • +
    • Filter by label and value: label=value
    • +
    • + Filter by more than one label and one or more values: +
      + label=value label2=value2,value2-2 +
      + (separate with ' ') +
    • +
    + + } + > + +
    + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/Filters/StatefulFilters.tsx b/workspaces/kiali/plugins/kiali/src/components/Filters/StatefulFilters.tsx new file mode 100644 index 0000000000..1759a48d12 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Filters/StatefulFilters.tsx @@ -0,0 +1,115 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { history, HistoryManager } from '../../app/History'; +import { + ActiveFilter, + ActiveFiltersInfo, + ActiveTogglesInfo, + FilterType, + LabelOperation, + ToggleType, +} from '../../types/Filters'; +import * as FilterHelper from '../FilterList/FilterHelper'; + +export class FilterSelected { + static selectedFilters: ActiveFilter[] | undefined = undefined; + static opSelected: LabelOperation; + + static init = (filterTypes: FilterType[]) => { + let active = FilterSelected.getSelected(); + if (!FilterSelected.isInitialized()) { + active = FilterHelper.getFiltersFromURL(filterTypes); + FilterSelected.setSelected(active); + } else if (!FilterHelper.filtersMatchURL(filterTypes, active)) { + active = FilterHelper.setFiltersToURL(filterTypes, active); + FilterSelected.setSelected(active); + } + return active; + }; + + static resetFilters = () => { + FilterSelected.selectedFilters = undefined; + }; + + static setSelected = (activeFilters: ActiveFiltersInfo) => { + FilterSelected.selectedFilters = activeFilters.filters; + FilterSelected.opSelected = activeFilters.op; + }; + + static getSelected = (): ActiveFiltersInfo => { + return { + filters: FilterSelected.selectedFilters || [], + op: FilterSelected.opSelected || 'or', + }; + }; + + static isInitialized = () => { + return FilterSelected.selectedFilters !== undefined; + }; +} + +// Column toggles +export class Toggles { + static checked: ActiveTogglesInfo = new Map(); + static numChecked = 0; + + static init = (toggles: ToggleType[]): number => { + Toggles.checked.clear(); + Toggles.numChecked = 0; + + // Prefer URL settings + const urlParams = new URLSearchParams(history.location.search); + toggles.forEach(t => { + const urlIsChecked = HistoryManager.getBooleanParam( + `${t.name}Toggle`, + urlParams, + ); + const isChecked = urlIsChecked === undefined ? t.isChecked : urlIsChecked; + Toggles.checked.set(t.name, isChecked); + if (isChecked) { + Toggles.numChecked++; + } + }); + return Toggles.numChecked; + }; + + static setToggle = (name: string, value: boolean): number => { + HistoryManager.setParam(`${name}Toggle`, `${value}`); + Toggles.checked.set(name, value); + Toggles.numChecked = value ? Toggles.numChecked++ : Toggles.numChecked--; + return Toggles.numChecked; + }; + + static getToggles = (): ActiveTogglesInfo => { + return new Map(Toggles.checked); + }; +} + +export interface StatefulFiltersProps { + childrenFirst?: boolean; + initialFilters: FilterType[]; + initialToggles?: ToggleType[]; + onFilterChange: (active: ActiveFiltersInfo) => void; + onToggleChange?: (active: ActiveTogglesInfo) => void; + ref?: React.RefObject; +} + +export interface StatefulFilters { + filterAdded(labelFilt: FilterType, label: string): unknown; + removeFilter(category: string, label: string): unknown; +} diff --git a/workspaces/kiali/plugins/kiali/src/components/Health/HealthDetails.tsx b/workspaces/kiali/plugins/kiali/src/components/Health/HealthDetails.tsx new file mode 100644 index 0000000000..c1f0e3663d --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Health/HealthDetails.tsx @@ -0,0 +1,198 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { Typography } from '@material-ui/core'; + +import { KialiIcon } from '../../config'; +import * as H from '../../types/Health'; +import { PFColors } from '../Pf/PfColors'; +import { createIcon } from './Helper'; + +interface HealthDetailsProps { + health: H.Health; +} + +// @ts-ignore +export const HealthDetails: React.FC = ( + props: HealthDetailsProps, +) => { + const renderErrorRate = ( + item: H.HealthItem, + idx: number, + ): React.ReactNode => { + const config = props.health.getStatusConfig(); + + const isValueInConfig = + config && props.health.health.statusConfig + ? props.health.health.statusConfig.value > 0 + : false; + + const showTraffic = item.children + ? item.children.filter(sub => { + const showItem = sub.value && sub.value > 0; + + return showItem; + }).length > 0 + : false; + + return showTraffic ? ( +
    + <> + {`${item.title}${item.text && item.text.length > 0 ? ': ' : ''} `} + + {config && } + + + {item.text} + + {item.children && ( +
      + {item.children.map((sub, subIdx) => { + const showItem = sub.value && sub.value > 0; + + return showItem ? ( +
    • + + {createIcon(sub.status)} + + {sub.text} +
    • + ) : ( + + ); + })} + + {config && isValueInConfig && ( +
    • + + {createIcon(H.DEGRADED)} + + : {config.degraded === 0 ? '>' : '>='} + {config.degraded}% {createIcon(H.FAILURE)}:{' '} + {config.degraded === 0 ? '>' : '>='} + {config.failure}% +
    • + )} +
    + )} +
    + ) : ( + + ); + }; + + const renderChildren = (item: H.HealthItem, idx: number): React.ReactNode => { + return item.title.startsWith(H.TRAFFICSTATUS) ? ( + renderErrorRate(item, idx) + ) : ( +
    + <>{`${item.title}${item.text && item.text.length > 0 ? ': ' : ''}`} + + {item.text} + + {item.children && ( +
      + {item.children.map((sub, subIdx) => { + return ( +
    • + + {createIcon(sub.status)} + + + {sub.text} +
    • + ); + })} +
    + )} +
    + ); + }; + + const health = props.health; + + return ( + <> + {health.health.items.map((item, idx) => { + return renderChildren(item, idx); + })} + + ); + // @ts-ignore +}; + +export const renderTrafficStatus = (health: H.Health): React.ReactNode => { + const config = health.getStatusConfig(); + const isValueInConfig = + config && health.health.statusConfig + ? health.health.statusConfig.value > 0 + : false; + const item = health.getTrafficStatus(); + + if (item) { + const showTraffic = item.children + ? item.children.filter(sub => { + const showItem = sub.value && sub.value > 0; + + return sub.status !== H.HEALTHY && showItem; + }).length > 0 + : false; + + if (showTraffic) { + return ( +
    + Traffic + + {item.text} + + {item.children && ( +
      + {item.children.map((sub, _) => { + const showItem = sub.value && sub.value > 0; + + return sub.status !== H.HEALTHY && showItem ? ( +
    • + + {createIcon(sub.status)} + + {sub.text} +
    • + ) : ( + + ); + })} + + {config && isValueInConfig && ( +
    • + + {createIcon(H.DEGRADED)} + + : {config.degraded === 0 ? '>' : '>='} + {config.degraded}% {createIcon(H.FAILURE)}:{' '} + {config.degraded === 0 ? '>' : '>='} + {config.failure}% +
    • + )} +
    + )} +
    + ); + } + } + + return undefined; +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/Health/HealthIndicator.tsx b/workspaces/kiali/plugins/kiali/src/components/Health/HealthIndicator.tsx new file mode 100644 index 0000000000..db9d618bb4 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Health/HealthIndicator.tsx @@ -0,0 +1,58 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { PopoverPosition, Tooltip } from '@patternfly/react-core'; + +import { createTooltipIcon } from '../../config/KialiIcon'; +import * as H from '../../types/Health'; +import { HealthDetails } from './HealthDetails'; +import { healthIndicatorStyle } from './HealthStyle'; +import { createIcon } from './Helper'; + +interface HealthIndicatorProps { + health?: H.Health; + id: string; + tooltipPlacement?: PopoverPosition; +} + +export const HealthIndicator: React.FC = ( + props: HealthIndicatorProps, +) => { + const globalStatus = props.health ? props.health.getGlobalStatus() : H.NA; + + if (props.health) { + const icon = createIcon(globalStatus); + + return ( + + {globalStatus.name} + + + } + position={PopoverPosition.auto} + className={healthIndicatorStyle} + > + {createTooltipIcon(icon, 'health')} + + ); + } + + return ; +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/Health/HealthStyle.ts b/workspaces/kiali/plugins/kiali/src/components/Health/HealthStyle.ts new file mode 100644 index 0000000000..ebd1c33da5 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Health/HealthStyle.ts @@ -0,0 +1,32 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { kialiStyle } from '../../styles/StyleUtils'; +import { PFColors } from '../Pf/PfColors'; + +export const healthIndicatorStyle = kialiStyle({ + $nest: { + '& .pf-v5-c-tooltip__content': { + borderWidth: '1px', + textAlign: 'left', + }, + + '& .pf-v5-c-content ul': { + marginBottom: 'var(--pf-v5-c-content--ul--MarginTop)', + marginTop: 0, + color: PFColors.Color100, + }, + }, +}); diff --git a/workspaces/kiali/plugins/kiali/src/components/Health/Helper.ts b/workspaces/kiali/plugins/kiali/src/components/Health/Helper.ts new file mode 100644 index 0000000000..81d42f50fb --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Health/Helper.ts @@ -0,0 +1,34 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { Icon } from '@patternfly/react-core'; + +import { kialiStyle } from '../../styles/StyleUtils'; +import { Status } from '../../types/Health'; + +type Size = 'sm' | 'md' | 'lg' | 'xl'; + +export const createIcon = (status: Status, size?: Size) => { + const classForColor = kialiStyle({ + color: status.color, + }); + return React.createElement( + Icon, + { size: size, className: `${status.class} ${classForColor}` }, + React.createElement(status.icon), + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/IstioConfigCard/IstioConfigCard.tsx b/workspaces/kiali/plugins/kiali/src/components/IstioConfigCard/IstioConfigCard.tsx new file mode 100644 index 0000000000..27d814fab5 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/IstioConfigCard/IstioConfigCard.tsx @@ -0,0 +1,119 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { EmptyState } from '@backstage/core-components'; + +import { + Card, + CardContent, + CardHeader, + TableCellProps, + Typography, +} from '@material-ui/core'; + +import { cardsHeight } from '../../styles/StyleUtils'; +import { IstioConfigItem } from '../../types/IstioConfigList'; +import { PFBadge } from '../Pf/PfBadges'; +import { SimpleTable, tRow } from '../SimpleTable'; +import { ValidationObjectSummary } from '../Validations/ValidationObjectSummary'; +import { IstioTypes } from '../VirtualList/Config'; + +type IstioConfigCardProps = { + items: IstioConfigItem[]; + name: string; +}; + +export const IstioConfigCard: React.FC = ( + props: IstioConfigCardProps, +) => { + const columns: TableCellProps[] = [ + { title: 'Name' }, + { title: 'Status', width: 10 }, + ]; + + const noIstioConfig: React.ReactNode = ( + No Istio Config found for {props.name}} + /> + ); + + const overviewLink = (item: IstioConfigItem): React.ReactNode => { + return <>{item.name}; + }; + + const rows: tRow = props.items + .sort((a: IstioConfigItem, b: IstioConfigItem) => { + if (a.type < b.type) { + return -1; + } else if (a.type > b.type) { + return 1; + } + return a.name < b.name ? -1 : 1; + }) + .map((item, itemIdx) => { + return { + cells: [ + + + {overviewLink(item)} + , + , + ], + }; + }); + + return ( + + {props.items.length > 0 && ( + <> + + Istio Config + + } + /> + + + + + + )} + {props.items.length === 0 && ( + + + + )} + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/IstioStatus/IstioComponentStatus.tsx b/workspaces/kiali/plugins/kiali/src/components/IstioStatus/IstioComponentStatus.tsx new file mode 100644 index 0000000000..26be422a3e --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/IstioStatus/IstioComponentStatus.tsx @@ -0,0 +1,107 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { ListItem, ListItemText } from '@material-ui/core'; +import { + CheckCircleIcon, + ExclamationCircleIcon, + ExclamationTriangleIcon, + MinusCircleIcon, +} from '@patternfly/react-icons'; +import { SVGIconProps } from '@patternfly/react-icons/dist/js/createIcon'; + +import { ComponentStatus, Status } from '../../types/IstioStatus'; +import { PFColors } from '../Pf/PfColors'; + +type Props = { + componentStatus: ComponentStatus; +}; + +export type ComponentIcon = { + color: string; + icon: React.ComponentClass; +}; + +const ErrorCoreComponent: ComponentIcon = { + color: PFColors.Danger, + icon: ExclamationCircleIcon, +}; + +const ErrorAddonComponent: ComponentIcon = { + color: PFColors.Warning, + icon: ExclamationTriangleIcon, +}; + +const NotReadyComponent: ComponentIcon = { + color: PFColors.Info, + icon: MinusCircleIcon, +}; + +const SuccessComponent: ComponentIcon = { + color: PFColors.Success, + icon: CheckCircleIcon, +}; + +// Mapping Valid-Core to Icon representation. +const validToIcon: { [valid: string]: ComponentIcon } = { + 'false-false': ErrorAddonComponent, + 'false-true': ErrorCoreComponent, + 'true-false': SuccessComponent, + 'true-true': SuccessComponent, +}; + +const statusMsg = { + [Status.NotFound]: 'Not found', + [Status.NotReady]: 'Not ready', + [Status.Unhealthy]: 'Not healthy', + [Status.Unreachable]: 'Unreachable', + [Status.Healthy]: 'Healthy', +}; + +export const IstioComponentStatus = (props: Props): JSX.Element => { + const renderIcon = (status: Status, isCore: boolean) => { + let compIcon = validToIcon[`${status === Status.Healthy}-${isCore}`]; + if (status === Status.NotReady) { + compIcon = NotReadyComponent; + } + const IconComponent = compIcon.icon; + return ; + }; + + const comp = props.componentStatus; + const state = statusMsg[comp.status]; + return ( + + + + {renderIcon( + props.componentStatus.status, + props.componentStatus.is_core, + )} + + + {comp.name} + + {state && <>{state}} + + } + /> + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/IstioStatus/IstioStatus.tsx b/workspaces/kiali/plugins/kiali/src/components/IstioStatus/IstioStatus.tsx new file mode 100644 index 0000000000..d992bd2ef9 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/IstioStatus/IstioStatus.tsx @@ -0,0 +1,126 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { Tooltip } from '@material-ui/core'; +import { ResourcesFullIcon } from '@patternfly/react-icons'; +import { SVGIconProps } from '@patternfly/react-icons/dist/esm/createIcon'; + +import { ComponentStatus, Status } from '../../types/IstioStatus'; +import { PFColors } from '../Pf/PfColors'; +import { IstioStatusList } from './IstioStatusList'; + +type StatusIcons = { + ErrorIcon?: React.ComponentClass; + WarningIcon?: React.ComponentClass; + InfoIcon?: React.ComponentClass; + HealthyIcon?: React.ComponentClass; +}; + +type Props = { + status: ComponentStatus[]; + icons?: StatusIcons; + cluster?: string; +}; + +const ValidToColor = { + 'true-true-true': PFColors.Danger, + 'true-true-false': PFColors.Danger, + 'true-false-true': PFColors.Danger, + 'true-false-false': PFColors.Danger, + 'false-true-true': PFColors.Warning, + 'false-true-false': PFColors.Warning, + 'false-false-true': PFColors.Info, + 'false-false-false': PFColors.Success, +}; + +const defaultIcons = { + ErrorIcon: ResourcesFullIcon, + WarningIcon: ResourcesFullIcon, + InfoIcon: ResourcesFullIcon, + HealthyIcon: ResourcesFullIcon, +}; + +export const IstioStatus = (props: Props): React.JSX.Element => { + const tooltipContent = () => { + return ; + }; + + const tooltipColor = () => { + let coreUnhealthy: boolean = false; + let addonUnhealthy: boolean = false; + let notReady: boolean = false; + + (props.status || []).forEach(compStatus => { + const { status, is_core } = compStatus; + const isNotReady: boolean = status === Status.NotReady; + const isUnhealthy: boolean = status !== Status.Healthy && !isNotReady; + + if (is_core) { + coreUnhealthy = coreUnhealthy || isUnhealthy; + } else { + addonUnhealthy = addonUnhealthy || isUnhealthy; + } + + notReady = notReady || isNotReady; + }); + + return ValidToColor[`${coreUnhealthy}-${addonUnhealthy}-${notReady}`]; + }; + + const healthyComponents = () => { + return props.status.reduce( + (healthy: boolean, compStatus: ComponentStatus) => { + return healthy && compStatus.status === Status.Healthy; + }, + true, + ); + }; + + if (healthyComponents()) { + return <>; + } + const icons = props.icons + ? { ...defaultIcons, ...props.icons } + : defaultIcons; + const iconColor = tooltipColor(); + let Icon: React.ComponentClass = ResourcesFullIcon; + let dataTestID: string = 'istio-status'; + + if (iconColor === PFColors.Danger) { + Icon = icons.ErrorIcon; + dataTestID += '-danger'; + } else if (iconColor === PFColors.Warning) { + Icon = icons.WarningIcon; + dataTestID += '-warning'; + } else if (iconColor === PFColors.Info) { + Icon = icons.InfoIcon; + dataTestID += '-info'; + } else if (iconColor === PFColors.Success) { + Icon = icons.HealthyIcon; + dataTestID += '-success'; + } + + return ( + + + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/IstioStatus/IstioStatusInline.tsx b/workspaces/kiali/plugins/kiali/src/components/IstioStatus/IstioStatusInline.tsx new file mode 100644 index 0000000000..c4c78a7a02 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/IstioStatus/IstioStatusInline.tsx @@ -0,0 +1,45 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { + CheckCircleIcon, + ExclamationCircleIcon, + ExclamationTriangleIcon, + MinusCircleIcon, +} from '@patternfly/react-icons'; + +import { ComponentStatus } from '../../types/IstioStatus'; +import { IstioStatus } from './IstioStatus'; + +type Props = { + status: ComponentStatus[]; + cluster?: string; +}; + +export const IstioStatusInline = (props: Props): React.JSX.Element => { + return ( + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/IstioStatus/IstioStatusList.tsx b/workspaces/kiali/plugins/kiali/src/components/IstioStatus/IstioStatusList.tsx new file mode 100644 index 0000000000..27dda15700 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/IstioStatus/IstioStatusList.tsx @@ -0,0 +1,67 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { List, Typography } from '@material-ui/core'; + +import { ComponentStatus, Status } from '../../types/IstioStatus'; +import { IstioComponentStatus } from './IstioComponentStatus'; + +type Props = { + status: ComponentStatus[]; +}; + +export const IstioStatusList = (props: Props) => { + const nonhealthyComponents = () => { + return props.status.filter( + (c: ComponentStatus) => c.status !== Status.Healthy, + ); + }; + + const coreComponentsStatus = () => { + return nonhealthyComponents().filter((s: ComponentStatus) => s.is_core); + }; + + const addonComponentsStatus = () => { + return nonhealthyComponents().filter((s: ComponentStatus) => !s.is_core); + }; + + const renderComponentList = () => { + const groups = { + core: coreComponentsStatus, + addon: addonComponentsStatus, + }; + + return ['core', 'addon'].map((group: string) => + // @ts-expect-error + groups[group]().map((status: ComponentStatus) => ( + + )), + ); + }; + + return ( +
    + Istio Components Status + + {renderComponentList()} + +
    + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/IstioWizards/WizardActions.ts b/workspaces/kiali/plugins/kiali/src/components/IstioWizards/WizardActions.ts new file mode 100644 index 0000000000..f17a077427 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/IstioWizards/WizardActions.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +export const KIALI_WIZARD_LABEL = 'kiali_wizard'; +export const KIALI_RELATED_LABEL = 'kiali_wizard_related'; diff --git a/workspaces/kiali/plugins/kiali/src/components/Label/Label.tsx b/workspaces/kiali/plugins/kiali/src/components/Label/Label.tsx new file mode 100644 index 0000000000..833143d441 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Label/Label.tsx @@ -0,0 +1,57 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { Label as PfLabel } from '@patternfly/react-core'; + +import { kialiStyle } from '../../styles/StyleUtils'; +import { canRender } from '../../utils/SafeRender'; + +interface Props { + name: string; + onClick?: () => void; + style?: React.CSSProperties; + value: string; +} + +const labelStyle = kialiStyle({ + display: 'block', + float: 'left', + fontSize: 'var(--kiali-global--font-size)', + margin: '0 0.25rem 0.25rem 0', + maxWidth: '100%', +}); + +export const Label = (props: Props) => { + const { name, value } = props; + let label = 'This label has an unexpected format'; + + if (canRender(name) && canRender(value)) { + label = value && value.length > 0 ? `${name}=${value}` : name; + } + + return ( + + {label} + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/Label/Labels.tsx b/workspaces/kiali/plugins/kiali/src/components/Label/Labels.tsx new file mode 100644 index 0000000000..87a917657b --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Label/Labels.tsx @@ -0,0 +1,110 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { Tooltip } from '@material-ui/core'; +import Button from '@material-ui/core/Button'; + +import { KialiIcon } from '../../config/KialiIcon'; +import { kialiStyle } from '../../styles/StyleUtils'; +import { Label } from './Label'; + +const SHOW_MORE_TRESHOLD = 2; + +interface LabelsProps { + expanded?: boolean; + type?: string; + labels?: { [key: string]: string }; + tooltipMessage?: string; +} + +const linkStyle = kialiStyle({ + padding: '0 0.25rem', + fontSize: '0.8rem', +}); + +const infoStyle = kialiStyle({ + marginLeft: '0.25rem', + marginBottom: '0.125rem', +}); + +const labelsContainerStyle = kialiStyle({ + display: 'flex', + alignItems: 'center', + flexWrap: 'wrap', + overflow: 'hidden', +}); + +export const Labels: React.FC = (props: LabelsProps) => { + const [expanded, setExpanded] = React.useState( + props.expanded ?? false, + ); + + const labelKeys = Object.keys(props.labels ?? {}); + + const hasLabels = labelKeys.length > 0; + + const hasManyLabels = labelKeys.length > SHOW_MORE_TRESHOLD; + + const showItem = (i: number): boolean => { + return expanded || !hasManyLabels || i < SHOW_MORE_TRESHOLD; + }; + + const renderMoreLabelsLink: React.ReactNode | null = + hasManyLabels && !expanded ? ( + + ) : null; + + const renderLabels = labelKeys.map((key, i) => { + return showItem(i) ? ( +
    +
    + ) : undefined; + }); + + const renderEmptyLabels = ( + No {props.type ? props.type : 'labels'} + ); + + const tooltip = props.tooltipMessage ? ( + {props.tooltipMessage}} + > +
    + +
    +
    + ) : undefined; + + return ( +
    + {hasLabels ? [renderLabels, renderMoreLabelsLink] : renderEmptyLabels} + {tooltip} +
    + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/Link/IstioConfigListLink.tsx b/workspaces/kiali/plugins/kiali/src/components/Link/IstioConfigListLink.tsx new file mode 100644 index 0000000000..606f5a0651 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Link/IstioConfigListLink.tsx @@ -0,0 +1,78 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; +import { Link } from 'react-router-dom'; + +import { Paths } from '../../config'; +import { FilterSelected } from '../Filters/StatefulFilters'; + +interface Props { + namespaces: string[]; + errors?: boolean; + warnings?: boolean; +} + +export class IstioConfigListLink extends React.Component< + React.PropsWithChildren +> { + namespacesToParams = () => { + let param: string = ''; + if (this.props.namespaces.length > 0) { + param = `namespaces=${this.props.namespaces.join(',')}`; + } + return param; + }; + + validationToParams = () => { + let params: string = ''; + + if (this.props.warnings) { + params += 'configvalidation=Warning'; + } + + let errorParams: string = ''; + if (this.props.errors) { + errorParams += 'configvalidation=Not+Valid'; + } + + if (params !== '' && errorParams !== '') { + params += '&'; + } + + params += errorParams; + + return params; + }; + + cleanFilters = () => { + FilterSelected.resetFilters(); + }; + + render() { + let params: string = this.namespacesToParams(); + const validationParams: string = this.validationToParams(); + if (params !== '' && validationParams !== '') { + params += '&'; + } + params += validationParams; + + return ( + + {this.props.children} + + ); + } +} diff --git a/workspaces/kiali/plugins/kiali/src/components/Link/IstioObjectLink.tsx b/workspaces/kiali/plugins/kiali/src/components/Link/IstioObjectLink.tsx new file mode 100644 index 0000000000..fca4f18268 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Link/IstioObjectLink.tsx @@ -0,0 +1,106 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React from 'react'; + +import { Tooltip } from '@material-ui/core'; + +import { KialiIcon } from '../../config'; +import { kialiStyle } from '../../styles/StyleUtils'; +import { BackstageObjectLink } from '../../utils/backstageLinks'; +import { PFBadge } from '../Pf/PfBadges'; +import { IstioTypes } from '../VirtualList/Config'; + +type ReferenceIstioObjectProps = { + cluster?: string; + name: string; + namespace: string; + query?: string; + subType?: string; + type: string; +}; + +type IstioObjectProps = ReferenceIstioObjectProps & { + children: React.ReactNode; +}; + +export const IstioObjectLink: React.FC = ( + props: IstioObjectProps, +) => { + const { name, namespace, type, cluster, query } = props; + const istioType = IstioTypes[type]; + return ( + + {props.children} + + ); +}; + +export const ReferenceIstioObjectLink = (props: ReferenceIstioObjectProps) => { + const { name, namespace, cluster, type, subType } = props; + const istioType = IstioTypes[type]; + + let showLink = true; + let showTooltip = false; + let tooltipMsg: string | undefined = undefined; + let reference = `${namespace}/${name}`; + + const infoStyle = kialiStyle({ + marginLeft: '0.5rem', + verticalAlign: '-0.06em !important', + }); + + if (name === 'mesh') { + reference = name; + showLink = false; + showTooltip = true; + tooltipMsg = + 'The reserved word, "mesh", implies all of the sidecars in the mesh'; + } + + return ( + <> + + + {showLink && ( + + {reference} + + )} + + {!showLink &&
    {reference}
    } + + {showTooltip && ( + {tooltipMsg}}> + + + )} + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/Link/ServiceLink.tsx b/workspaces/kiali/plugins/kiali/src/components/Link/ServiceLink.tsx new file mode 100644 index 0000000000..63e5a329b9 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Link/ServiceLink.tsx @@ -0,0 +1,43 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { PFBadge, PFBadges } from '../../components/Pf/PfBadges'; +import { BackstageObjectLink } from '../../utils/backstageLinks'; + +type ServiceLinkProps = { + cluster?: string; + name: string; + namespace: string; + query?: string; +}; + +export const ServiceLink = (props: ServiceLinkProps) => { + const { name, namespace, cluster, query } = props; + + return ( + <> + + + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/Link/ValidationSummaryLink.tsx b/workspaces/kiali/plugins/kiali/src/components/Link/ValidationSummaryLink.tsx new file mode 100644 index 0000000000..72737ba5ee --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Link/ValidationSummaryLink.tsx @@ -0,0 +1,54 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { IstioConfigListLink } from './IstioConfigListLink'; + +type Props = { + namespace: string; + errors: number; + warnings: number; + objectCount?: number; + children: React.ReactNode; +}; + +export class ValidationSummaryLink extends React.Component { + hasIstioObjects = () => { + return this.props.objectCount && this.props.objectCount > 0; + }; + + render() { + let link: any = ( +
    N/A
    + ); + + if (this.hasIstioObjects()) { + // Kiosk actions are used when the kiosk specifies a parent, + // otherwise the kiosk=true will keep the links inside Kiali + link = ( + 0} + errors={this.props.errors > 0} + > + {this.props.children} + + ); + } + + return link; + } +} diff --git a/workspaces/kiali/plugins/kiali/src/components/Link/WorkloadLink.tsx b/workspaces/kiali/plugins/kiali/src/components/Link/WorkloadLink.tsx new file mode 100644 index 0000000000..9dcdf1b77d --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Link/WorkloadLink.tsx @@ -0,0 +1,43 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { BackstageObjectLink } from '../../utils/backstageLinks'; +import { PFBadge, PFBadges } from '../Pf/PfBadges'; + +type WorkloadLinkProps = { + cluster?: string; + name: string; + namespace: string; + query?: string; +}; + +export const WorkloadLink = (props: WorkloadLinkProps) => { + const { name, namespace, cluster, query } = props; + + return ( + <> + + + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/Logos/Logos.tsx b/workspaces/kiali/plugins/kiali/src/components/Logos/Logos.tsx new file mode 100644 index 0000000000..f42abf1ba0 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Logos/Logos.tsx @@ -0,0 +1,86 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React from 'react'; + +import GraphqlIcon from '../../assets/img/api/graphql.svg'; +import GrpcIcon from '../../assets/img/api/grpc.svg'; +import RestIcon from '../../assets/img/api/rest.svg'; +import GoLogo from '../../assets/img/runtime/go.svg'; +import JVMLogo from '../../assets/img/runtime/java.svg'; +import MicroProfileLogo from '../../assets/img/runtime/microprofile.svg'; +import NodejsLogo from '../../assets/img/runtime/nodejs.svg'; +import QuarkusLogo from '../../assets/img/runtime/quarkus.svg'; +import SpringBootLogo from '../../assets/img/runtime/spring-boot.svg'; +import ThorntailLogo from '../../assets/img/runtime/thorntail.svg'; +import TomcatLogo from '../../assets/img/runtime/tomcat.svg'; +import VertxLogo from '../../assets/img/runtime/vertx.svg'; +import { kialiStyle } from '../../styles/StyleUtils'; + +const iconStyle = kialiStyle({ + height: '1.5rem', +}); + +const renderLogo = ( + name: string, + title: string | undefined, + idx: number, + logoSet: { [key: string]: any }, + className?: string, +): React.ReactElement => { + const logo = logoSet[name]; + + if (logo) { + return ( + {name} + ); + } + + return {name}; +}; + +// API types +const apiLogos = { + grpc: GrpcIcon, + rest: RestIcon, + graphql: GraphqlIcon, +}; + +const runtimesLogos = { + Go: GoLogo, + JVM: JVMLogo, + MicroProfile: MicroProfileLogo, + 'Node.js': NodejsLogo, + Quarkus: QuarkusLogo, + 'Spring Boot': SpringBootLogo, + Thorntail: ThorntailLogo, + Tomcat: TomcatLogo, + 'Vert.x': VertxLogo, +}; + +export const renderRuntimeLogo = (name: string, idx: number): React.ReactNode => + renderLogo(name, name, idx, runtimesLogos, iconStyle); + +export const renderAPILogo = ( + name: string, + title: string | undefined, + idx: number, +): React.ReactNode => renderLogo(name, title, idx, apiLogos, iconStyle); diff --git a/workspaces/kiali/plugins/kiali/src/components/MTls/MTLSIcon.tsx b/workspaces/kiali/plugins/kiali/src/components/MTls/MTLSIcon.tsx new file mode 100644 index 0000000000..ea63a98980 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/MTls/MTLSIcon.tsx @@ -0,0 +1,65 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { Tooltip, TooltipPosition } from '@patternfly/react-core'; + +import fullIconDark from '../../assets/img/mtls-status-full-dark.svg'; +import fullIcon from '../../assets/img/mtls-status-full.svg'; +import hollowIconDark from '../../assets/img/mtls-status-partial-dark.svg'; +import hollowIcon from '../../assets/img/mtls-status-partial.svg'; + +export { fullIcon, hollowIcon, fullIconDark, hollowIconDark }; + +type Props = { + icon: string; + iconClassName: string; + tooltipText: string; + tooltipPosition: TooltipPosition; +}; + +export enum MTLSIconTypes { + LOCK_FULL = 'LOCK_FULL', + LOCK_HOLLOW = 'LOCK_HOLLOW', + LOCK_FULL_DARK = 'LOCK_FULL_DARK', + LOCK_HOLLOW_DARK = 'LOCK_HOLLOW_DARK', +} + +const nameToSource = new Map([ + [MTLSIconTypes.LOCK_FULL, fullIcon], + [MTLSIconTypes.LOCK_FULL_DARK, fullIconDark], + [MTLSIconTypes.LOCK_HOLLOW, hollowIcon], + [MTLSIconTypes.LOCK_HOLLOW_DARK, hollowIconDark], +]); + +export class MTLSIcon extends React.Component { + render() { + return ( + + {this.props.tooltipPosition} + + ); + } +} diff --git a/workspaces/kiali/plugins/kiali/src/components/MTls/MTLSStatus.tsx b/workspaces/kiali/plugins/kiali/src/components/MTls/MTLSStatus.tsx new file mode 100644 index 0000000000..c599b72cab --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/MTls/MTLSStatus.tsx @@ -0,0 +1,82 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { TooltipPosition } from '@patternfly/react-core'; + +import { MTLSIcon } from './MTLSIcon'; + +type Props = { + status: string; + statusDescriptors: Map; + className?: string; + overlayPosition?: TooltipPosition; +}; + +export type StatusDescriptor = { + message: string; + icon: string; + showStatus: boolean; +}; + +export const emptyDescriptor = { + message: '', + icon: '', + showStatus: false, +}; + +export class MTLSStatus extends React.Component { + statusDescriptor() { + return ( + this.props.statusDescriptors.get(this.props.status) || emptyDescriptor + ); + } + + icon() { + return this.statusDescriptor().icon; + } + + message() { + return this.statusDescriptor().message; + } + + showStatus() { + return this.statusDescriptor().showStatus; + } + + overlayPosition() { + return this.props.overlayPosition || TooltipPosition.left; + } + + iconClassName() { + return this.props.className || ''; + } + + render() { + if (this.showStatus()) { + return ( + + ); + } + + return null; + } +} diff --git a/workspaces/kiali/plugins/kiali/src/components/MTls/NamespaceMTLSStatus.tsx b/workspaces/kiali/plugins/kiali/src/components/MTls/NamespaceMTLSStatus.tsx new file mode 100644 index 0000000000..eb0f72d465 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/MTls/NamespaceMTLSStatus.tsx @@ -0,0 +1,75 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { kialiStyle } from '../../styles/StyleUtils'; +import { MTLSStatuses } from '../../types/TLSStatus'; +import { MTLSIconTypes } from './MTLSIcon'; +import { emptyDescriptor, MTLSStatus, StatusDescriptor } from './MTLSStatus'; + +type Props = { + status: string; +}; + +const statusDescriptors = new Map([ + [ + MTLSStatuses.ENABLED, + { + message: 'mTLS is enabled for this namespace', + icon: MTLSIconTypes.LOCK_FULL_DARK, + showStatus: true, + }, + ], + [ + MTLSStatuses.ENABLED_EXTENDED, + { + message: + 'mTLS is enabled for this namespace, extended from Mesh-wide config', + icon: MTLSIconTypes.LOCK_FULL_DARK, + showStatus: true, + }, + ], + [ + MTLSStatuses.PARTIALLY, + { + message: 'mTLS is partially enabled for this namespace', + icon: MTLSIconTypes.LOCK_HOLLOW_DARK, + showStatus: true, + }, + ], + [MTLSStatuses.DISABLED, emptyDescriptor], + [MTLSStatuses.NOT_ENABLED, emptyDescriptor], +]); + +// Magic style to align Istio Config icons on top of status overview +const iconStyle = kialiStyle({ + marginTop: -3, + marginRight: 18, + marginLeft: 2, + width: 10, +}); + +export class NamespaceMTLSStatus extends React.Component { + render() { + return ( + + ); + } +} diff --git a/workspaces/kiali/plugins/kiali/src/components/MessageCenter/AlertDrawer.tsx b/workspaces/kiali/plugins/kiali/src/components/MessageCenter/AlertDrawer.tsx new file mode 100644 index 0000000000..520f61c882 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/MessageCenter/AlertDrawer.tsx @@ -0,0 +1,107 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { ItemCardHeader } from '@backstage/core-components'; + +import { + Accordion, + AccordionDetails, + AccordionSummary, + Card, + CardContent, + CardMedia, + Typography, +} from '@material-ui/core'; +import ExpandMoreRounded from '@material-ui/icons/ExpandMoreRounded'; +import { InfoIcon } from '@patternfly/react-icons'; + +import { KialiAppAction } from '../../actions/KialiAppAction'; +import { MessageCenterState } from '../../store'; +import { kialiStyle } from '../../styles/StyleUtils'; +import { + NotificationGroup, + NotificationMessage, +} from '../../types/MessageCenter'; +import { AlertDrawerGroup } from './AlertDrawerGroup'; + +type AlertDrawerProps = { + toggleDrawer: (isOpen: boolean) => void; + messages: MessageCenterState; + messageDispatch: React.Dispatch; +}; + +const hideGroup = (group: NotificationGroup): boolean => { + return group.hideIfEmpty && group.messages.length === 0; +}; + +const getUnreadCount = (messages: NotificationMessage[]) => { + return messages.reduce((count, message) => { + return message.seen ? count : count + 1; + }, 0); +}; + +const getUnreadMessageLabel = (messages: NotificationMessage[]) => { + const unreadCount = getUnreadCount(messages); + return unreadCount === 1 + ? '1 Unread Message' + : `${getUnreadCount(messages)} Unread Messages`; +}; + +const drawer = kialiStyle({ + display: 'flex', + width: '500px', + justifyContent: 'space-between', +}); + +const noNotificationsMessage = ( + <> + + No Messages Available + +); + +export const AlertDrawer = (props: AlertDrawerProps) => { + return ( + + + + + + {props.messages.groups.length === 0 + ? noNotificationsMessage + : props.messages.groups.map(group => + hideGroup(group) ? null : ( + + } + data-test="message-center-summary" + > + + {group.title} {getUnreadMessageLabel(group.messages)} + + + + + + + ), + )} + + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/MessageCenter/AlertDrawerGroup.tsx b/workspaces/kiali/plugins/kiali/src/components/MessageCenter/AlertDrawerGroup.tsx new file mode 100644 index 0000000000..ca8dd4b7aa --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/MessageCenter/AlertDrawerGroup.tsx @@ -0,0 +1,106 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { Button, Card, CardActions, CardContent } from '@material-ui/core'; +import { InfoIcon } from '@patternfly/react-icons'; + +import { MessageCenterActions } from '../../actions'; +import { KialiAppState, KialiContext } from '../../store'; +import { NotificationGroup } from '../../types/MessageCenter'; +import { AlertDrawerMessage } from './AlertDrawerMessage'; + +type AlertDrawerGroupProps = { + group: NotificationGroup; + reverseMessageOrder?: boolean; +}; + +const noNotificationsMessage = ( + <> + + No Messages Available + +); + +export const AlertDrawerGroup = (props: AlertDrawerGroupProps) => { + const kialiState = React.useContext(KialiContext) as KialiAppState; + + const markGroupAsRead = (groupId: string) => { + const foundGroup = kialiState.messageCenter.groups.find( + group => group.id === groupId, + ); + if (foundGroup) { + kialiState.dispatch.messageDispatch( + MessageCenterActions.markAsRead( + foundGroup.messages.map(message => message.id), + ), + ); + } + }; + + const clearGroup = (groupId: string) => { + const foundGroup = kialiState.messageCenter.groups.find( + group => group.id === groupId, + ); + if (foundGroup) { + kialiState.dispatch.messageDispatch( + MessageCenterActions.removeMessage( + foundGroup.messages.map(message => message.id), + ), + ); + } + }; + + const getMessages = () => { + return props.reverseMessageOrder + ? [...props.group.messages].reverse() + : props.group.messages; + }; + + const group: NotificationGroup = props.group; + + return ( + + + {group.messages.length === 0 && noNotificationsMessage} + {getMessages().map(message => ( + + ))} + + {group.showActions && group.messages.length > 0 && ( + + + + + )} + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/MessageCenter/AlertDrawerMessage.tsx b/workspaces/kiali/plugins/kiali/src/components/MessageCenter/AlertDrawerMessage.tsx new file mode 100644 index 0000000000..dd8cdab316 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/MessageCenter/AlertDrawerMessage.tsx @@ -0,0 +1,111 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { + Accordion, + AccordionDetails, + AccordionSummary, + Card, + CardContent, + Typography, +} from '@material-ui/core'; +import ExpandMoreRounded from '@material-ui/icons/ExpandMoreRounded'; +import moment from 'moment'; + +import { MessageCenterActions } from '../../actions/MessageCenterActions'; +import { KialiIcon } from '../../config/KialiIcon'; +import { KialiAppState, KialiContext } from '../../store'; +import { MessageType, NotificationMessage } from '../../types/MessageCenter'; + +const getIcon = (type: MessageType) => { + switch (type) { + case MessageType.ERROR: + return ; + case MessageType.INFO: + return ; + case MessageType.SUCCESS: + return ; + case MessageType.WARNING: + return ; + default: + throw Error('Unexpected type'); + } +}; + +type AlertDrawerMessageProps = { + message: NotificationMessage; +}; + +export const AlertDrawerMessage = (props: AlertDrawerMessageProps) => { + const kialiState = React.useContext(KialiContext) as KialiAppState; + + // const markAsRead = (message: NotificationMessage) => kialiState.dispatch.messageDispatch(MessageCenterActions.markAsRead(message.id)); + const toggleMessageDetail = (message: NotificationMessage) => + kialiState.dispatch.messageDispatch( + MessageCenterActions.toggleMessageDetail(message.id), + ); + + return ( + + + {getIcon(props.message.type)}{' '} + {props.message.seen ? ( + props.message.content + ) : ( + {props.message.content} + )} + {props.message.detail && ( + + toggleMessageDetail(props.message)} + expandIcon={} + > + + {props.message.showDetail ? 'Hide Detail' : 'Show Detail'} + + + +
    +                {props.message.detail}
    +              
    +
    +
    + )} + {props.message.count > 1 && ( +
    + {props.message.count} {moment().from(props.message.firstTriggered)} +
    + )} +
    + + {props.message.created.toLocaleDateString()} + + + {props.message.created.toLocaleTimeString()} + +
    +
    +
    + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/MessageCenter/MessageCenter.tsx b/workspaces/kiali/plugins/kiali/src/components/MessageCenter/MessageCenter.tsx new file mode 100644 index 0000000000..3b526e3ebf --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/MessageCenter/MessageCenter.tsx @@ -0,0 +1,133 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { Badge, Button, Drawer } from '@material-ui/core'; + +import { KialiIcon } from '../../config/KialiIcon'; +import { KialiAppState, KialiContext } from '../../store'; +import { kialiStyle } from '../../styles/StyleUtils'; +import { + MessageType, + NotificationGroup, + NotificationMessage, +} from '../../types/MessageCenter'; +import { AlertDrawer } from './AlertDrawer'; + +const bell = kialiStyle({ + position: 'relative', + right: '5px', + top: '5px', +}); + +const calculateMessageStatus = (state: KialiAppState) => { + type MessageCenterTriggerPropsToMap = { + newMessagesCount: number; + badgeDanger: boolean; + systemErrorsCount: number; + }; + + const dangerousMessageTypes = [MessageType.ERROR, MessageType.WARNING]; + let systemErrorsCount = 0; + + const systemErrorsGroup = state.messageCenter.groups.find( + item => item.id === 'systemErrors', + ); + if (systemErrorsGroup) { + systemErrorsCount = systemErrorsGroup.messages.length; + } + + return state.messageCenter.groups + .reduce( + (unreadMessages: NotificationMessage[], group: NotificationGroup) => { + return unreadMessages.concat( + group.messages.reduce( + ( + unreadMessagesInGroup: NotificationMessage[], + message: NotificationMessage, + ) => { + if (!message.seen) { + unreadMessagesInGroup.push(message); + } + return unreadMessagesInGroup; + }, + [], + ), + ); + }, + [], + ) + .reduce( + ( + propsToMap: MessageCenterTriggerPropsToMap, + message: NotificationMessage, + ) => { + propsToMap.newMessagesCount++; + propsToMap.badgeDanger = + propsToMap.badgeDanger || + dangerousMessageTypes.includes(message.type); + return propsToMap; + }, + { + newMessagesCount: 0, + systemErrorsCount: systemErrorsCount, + badgeDanger: false, + }, + ); +}; + +export const MessageCenter = (props: { color?: string }) => { + const kialiState = React.useContext(KialiContext) as KialiAppState; + const [isOpen, toggleDrawer] = React.useState(false); + const messageCenterStatus = calculateMessageStatus(kialiState); + /* + const onDismiss = (message: NotificationMessage, userDismissed: boolean) => { + if (userDismissed) { + kialiState.messageDispatch(MessageCenterActions.markAsRead(message.id)); + } else { + kialiState.messageDispatch(MessageCenterActions.hideNotification(message.id)); + } + } + */ + return ( + <> + + toggleDrawer(false)}> + + + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/Metrics/GrafanaLinks.tsx b/workspaces/kiali/plugins/kiali/src/components/Metrics/GrafanaLinks.tsx new file mode 100644 index 0000000000..4aa2ce4cc8 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Metrics/GrafanaLinks.tsx @@ -0,0 +1,110 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { ToolbarItem } from '@patternfly/react-core'; +import { ExternalLinkAltIcon } from '@patternfly/react-icons'; + +import { ExternalLink } from '../../types/Dashboards'; +import { MetricsObjectTypes } from '../../types/Metrics'; + +type Props = { + links: ExternalLink[]; + namespace: string; + object: string; + objectType: MetricsObjectTypes; + version?: string; +}; + +export class GrafanaLinks extends React.PureComponent { + static buildGrafanaLinks(props: Props): [string, string][] { + const links: [string, string][] = []; + props.links.forEach(d => { + const first = d.url.includes('?') ? '&' : '?'; + const nsvar = d.variables.namespace + ? `&${d.variables.namespace}=${props.namespace}` + : ''; + const vervar = + d.variables.version && props.version + ? `&${d.variables.version}=${props.version}` + : ''; + switch (props.objectType) { + case MetricsObjectTypes.SERVICE: + // eslint-disable-next-line no-case-declarations + const fullServiceName = `${props.object}.${props.namespace}.svc.cluster.local`; + if (d.variables.service) { + const url = `${d.url}${first}${d.variables.service}=${fullServiceName}${nsvar}${vervar}`; + links.push([d.name, url]); + } + break; + case MetricsObjectTypes.WORKLOAD: + if (d.variables.workload) { + const url = `${d.url}${first}${d.variables.workload}=${props.object}${nsvar}${vervar}`; + links.push([d.name, url]); + } + break; + case MetricsObjectTypes.APP: + if (d.variables.app) { + const url = `${d.url}${first}${d.variables.app}=${props.object}${nsvar}${vervar}`; + links.push([d.name, url]); + } + break; + default: + break; + } + }); + return links; + } + + render() { + const links = GrafanaLinks.buildGrafanaLinks(this.props); + return ( + <> + {links.length === 1 && ( + + + View in Grafana + + + )} + {links.length > 1 && ( + + View in Grafana:  + {links + .map((link, idx) => ( + + {link[0]} + + )) + .reduce((prev, curr) => [prev, ', ', curr] as any)} + + )} + + ); + } +} diff --git a/workspaces/kiali/plugins/kiali/src/components/Metrics/Helper.ts b/workspaces/kiali/plugins/kiali/src/components/Metrics/Helper.ts new file mode 100644 index 0000000000..d22143d978 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Metrics/Helper.ts @@ -0,0 +1,285 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { history, URLParam } from '../../app/History'; +import { computePrometheusRateParams } from '../../services/Prometheus'; +import { + boundsToDuration, + DurationInSeconds, + guardTimeRange, + TimeRange, +} from '../../types/Common'; +import { AggregationModel, DashboardModel } from '../../types/Dashboards'; +import { + AllPromLabelsValues, + Metric, + PromLabel, + SingleLabelValues, +} from '../../types/Metrics'; +import { MetricsQuery } from '../../types/MetricsOptions'; +import { responseFlags } from '../../utils/ResponseFlags'; +import { + LabelSettings, + LabelsSettings, + MetricsSettings, + Quantiles, +} from '../MetricsOptions/MetricsSettings'; + +// Default to 10 minutes. Showing timeseries to only 1 minute doesn't make so much sense. +export const defaultMetricsDuration: DurationInSeconds = 600; + +export const combineLabelsSettings = ( + newSettings: LabelsSettings, + stateSettings: LabelsSettings, +): LabelsSettings => { + // Labels: keep existing on/off flag + // This is allowed because the labels filters state is managed only from this component, + // so we can override them in props from state + // LabelsSettings received from props contains the names of the filters with only a default on/off flag. + const result: LabelsSettings = new Map(); + newSettings.forEach( + ( + lblObj: { + values: { [s: string]: unknown } | ArrayLike; + checked: any; + }, + promLabel: string, + ) => { + const resultValues: SingleLabelValues = {}; + const stateObj = stateSettings.get(promLabel); + Object.entries(lblObj.values).forEach(e => { + resultValues[e[0]] = + stateObj && stateObj.defaultValue === false + ? false + : (e[1] as boolean); + }); + if (stateObj) { + lblObj.checked = stateObj.checked; + Object.entries(stateObj.values).forEach(e => { + resultValues[e[0]] = e[1]; + }); + } + result.set(promLabel, { + defaultValue: false, + displayName: '', + singleSelection: false, + ...lblObj, + values: resultValues, + }); + }, + ); + return result; +}; + +export const extractLabelsSettingsOnSeries = ( + metrics: Metric[], + aggregations: AggregationModel[], + extracted: LabelsSettings, +): void => { + metrics.forEach(m => { + Object.keys(m.labels).forEach(k => { + const agg = aggregations.find(a => a.label === k); + if (agg) { + const value = m.labels[k]; + let lblObj = extracted.get(agg.label); + if (!lblObj) { + lblObj = { + checked: true, + displayName: agg.displayName, + values: {}, + defaultValue: true, + singleSelection: agg.singleSelection, + }; + extracted.set(agg.label, lblObj); + } else { + lblObj.checked = true; + } + if (!lblObj.values.hasOwnProperty(value)) { + if (agg.singleSelection && Object.keys(lblObj.values).length > 0) { + // In single-selection mode, do not activate more than one label value at a time + lblObj.values[value] = false; + } else { + lblObj.values[value] = true; + } + } + } + }); + }); +}; + +export const extractLabelsSettings = ( + dashboard: DashboardModel, + stateSettings: Map, +): LabelsSettings => { + // Find all labels on all series + const newSettings: LabelsSettings = new Map(); + dashboard.aggregations.forEach(agg => + newSettings.set(agg.label, { + checked: false, + displayName: agg.displayName, + values: {}, + defaultValue: true, + singleSelection: agg.singleSelection, + }), + ); + dashboard.charts.forEach(chart => + extractLabelsSettingsOnSeries( + chart.metrics, + dashboard.aggregations, + newSettings, + ), + ); + return combineLabelsSettings(newSettings, stateSettings); +}; + +export const mergeLabelFilter = ( + lblSettings: LabelsSettings, + label: PromLabel, + value: string, + checked: boolean, + singleSelection: boolean, +): LabelsSettings => { + // Note: we don't really care that the new map references same objects as the old one (at least at the moment) so shallow copy is fine + const newSettings = new Map(lblSettings); + const objLbl = newSettings.get(label); + if (objLbl) { + if (singleSelection) { + // @ts-ignore + for (const v of Object.keys(objLbl.values)) { + // @ts-ignore + objLbl.values[v] = false; + } + } + // @ts-ignore + objLbl.values[value] = checked; + } + return newSettings; +}; + +export const convertAsPromLabels = ( + lblSettings: LabelsSettings, +): AllPromLabelsValues => { + const promLabels = new Map(); + lblSettings.forEach((objLbl: { values: SingleLabelValues }, k: string) => { + promLabels.set(k, objLbl.values); + }); + return promLabels; +}; + +export const settingsToOptions = ( + settings: MetricsSettings, + opts: MetricsQuery, + defaultLabels: string[], +) => { + opts.avg = settings.showAverage; + opts.quantiles = settings.showQuantiles; + let byLabels = defaultLabels; + if (settings.labelsSettings.size > 0) { + // Labels have been fetched, so use what comes from labelsSettings + byLabels = []; + settings.labelsSettings.forEach((objLbl: { checked: any }, k: string) => { + if (objLbl.checked) { + byLabels.push(k); + } + }); + } + opts.byLabels = byLabels; +}; + +export const timeRangeToOptions = (range: TimeRange, opts: MetricsQuery) => { + delete opts.queryTime; + opts.duration = guardTimeRange( + range, + d => d, + ft => { + opts.queryTime = ft.to && Math.floor(ft.to / 1000); + return boundsToDuration(ft); + }, + ); + const intervalOpts = computePrometheusRateParams(opts.duration); + opts.step = intervalOpts.step; + opts.rateInterval = intervalOpts.rateInterval; +}; + +export const retrieveMetricsSettings = (): MetricsSettings => { + const urlParams = new URLSearchParams(history.location.search); + const settings: MetricsSettings = { + showSpans: false, + showTrendlines: false, + showAverage: true, + showQuantiles: [], + labelsSettings: new Map(), + }; + const avg = urlParams.get(URLParam.SHOW_AVERAGE); + if (avg !== null) { + settings.showAverage = avg === 'true'; + } + const spans = urlParams.get(URLParam.SHOW_SPANS); + if (spans !== null) { + settings.showSpans = spans === 'true'; + } + const trendlines = urlParams.get(URLParam.SHOW_TRENDLINES); + if (trendlines !== null) { + settings.showTrendlines = trendlines === 'true'; + } + const quantiles = urlParams.get(URLParam.QUANTILES); + if (quantiles !== null) { + if (quantiles.trim().length !== 0) { + settings.showQuantiles = quantiles + .split(' ') + .map(val => val.trim() as Quantiles); + } else { + settings.showQuantiles = []; + } + } + const byLabels = urlParams.getAll(URLParam.BY_LABELS); + // E.g.: bylbl=version=v1,v2,v4 + if (byLabels.length !== 0) { + byLabels.forEach(val => { + const kvpair = val.split('=', 2); + const lblObj: LabelSettings = { + displayName: '', + checked: true, + values: {}, + defaultValue: true, + singleSelection: false, + }; + if (kvpair[1]) { + kvpair[1].split(',').forEach(v => { + lblObj.values[v] = true; + }); + // When values filters are provided by URL, other filters should be false by default + lblObj.defaultValue = false; + } + settings.labelsSettings.set(kvpair[0], lblObj); + }); + } + return settings; +}; + +export const prettyLabelValues = (promName: PromLabel, val: string): string => { + if (promName === 'response_flags') { + if (val === '-') { + return 'None'; + } + // @ts-ignore + const flagObj = responseFlags[val]; + if (flagObj) { + const text = flagObj.short ? flagObj.short : flagObj.help; + return `${text} (${val})`; + } + } + return val; +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/Metrics/IstioMetrics.tsx b/workspaces/kiali/plugins/kiali/src/components/Metrics/IstioMetrics.tsx new file mode 100644 index 0000000000..6981d342d3 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Metrics/IstioMetrics.tsx @@ -0,0 +1,441 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; +import { useAsyncFn, useDebounce } from 'react-use'; + +import { useApi } from '@backstage/core-plugin-api'; + +import { Checkbox, FormControlLabel, Toolbar } from '@material-ui/core'; + +import { history, URLParam } from '../../app/History'; +import { Dashboard } from '../../components/Charts/Dashboard'; +import { kialiApiRef } from '../../services/Api'; +import { KialiAppState, KialiContext } from '../../store'; +import { kialiStyle } from '../../styles/StyleUtils'; +import { + evalTimeRange, + TimeInMilliseconds, + TimeRange, +} from '../../types/Common'; +import { + ChartModel, + DashboardModel, + ExternalLink, +} from '../../types/Dashboards'; +import { GrafanaInfo } from '../../types/GrafanaInfo'; +import { MetricsObjectTypes } from '../../types/Metrics'; +import { + Direction, + IstioMetricsOptions, + Reporter, +} from '../../types/MetricsOptions'; +import { Overlay } from '../../types/Overlay'; +import { KialiCrippledFeatures } from '../../types/ServerConfig'; +import { RawOrBucket } from '../../types/VictoryChartInfo'; +import { MetricsReporter } from '../MetricsOptions/MetricsReporter'; +import { + LabelsSettings, + MetricsSettings, +} from '../MetricsOptions/MetricsSettings'; +import { MetricsSettingsDropdown } from '../MetricsOptions/MetricsSettingsDropdown'; +import { GrafanaLinks } from './GrafanaLinks'; +import * as MetricsHelper from './Helper'; +import { JaegerLineInfo, SpanOverlay } from './SpanOverlay'; + +type ObjectId = { + cluster?: string; + namespace: string; + object: string; +}; + +type IstioMetricsProps = ObjectId & { + direction: Direction; + objectType: MetricsObjectTypes; +} & { + lastRefreshAt: TimeInMilliseconds; +}; + +type Props = IstioMetricsProps; + +const fullHeightStyle = kialiStyle({ + height: '100%', +}); + +export const IstioMetrics = (props: Props) => { + const initTimeRange = () => { + const now = new Date(); + const lastdate = now.getTime() - props.lastRefreshAt * 60 * 1000; + const tr: TimeRange = { + from: lastdate, + to: now.getTime(), + }; + return tr; + }; + const toolbarRef = React.createRef(); + let grafanaInfoPromise: Promise | undefined; + const settings = MetricsHelper.retrieveMetricsSettings(); + const kialiClient = useApi(kialiApiRef); + const kialiState = React.useContext(KialiContext) as KialiAppState; + const [crippledFeatures, setCrippledFeatures] = + React.useState(); + const [dashboard, setDashboard] = React.useState(); + const [grafanaLinks, setGrafanaLinks] = React.useState([]); + const [labelsSettings, setLabelsSettings] = React.useState( + settings.labelsSettings, + ); + const [showSpans, setShowSpans] = React.useState(settings.showSpans); + const [showTrendlines, setShowTrendLines] = React.useState( + settings.showTrendlines, + ); + const [spanOverlayState, setSpanOverlayState] = + React.useState>(); + const [tabHeight, _setter] = React.useState(500); + const spanOverlay = new SpanOverlay(changed => setSpanOverlayState(changed)); + const tracingIntegration = kialiState.tracingState?.info + ? kialiState.tracingState.info.integration + : true; + const [timeRange, setTimeRange] = React.useState(initTimeRange()); + const prevDirection = React.useRef(props.direction); + const prevLastRefreshAt = React.useRef(props.lastRefreshAt); + + const initOptions = (settingsI: MetricsSettings): IstioMetricsOptions => { + const options: IstioMetricsOptions = { + reporter: MetricsReporter.initialReporter(props.direction), + direction: props.direction, + }; + + const defaultLabels = [ + props.direction === 'inbound' + ? 'source_canonical_service' + : 'destination_canonical_service', + props.direction === 'inbound' + ? 'source_workload_namespace' + : 'destination_workload_namespace', + ]; + + MetricsHelper.settingsToOptions(settingsI, options, defaultLabels); + + return options; + }; + + const options = initOptions(settings); + + const fetchMetrics = async (): Promise => { + // Time range needs to be reevaluated everytime fetching + MetricsHelper.timeRangeToOptions(timeRange, options); + const opts = { ...options }; + + if (opts.reporter === 'both') { + opts.byLabels = (opts.byLabels ?? []).concat('reporter'); + } + + let promise: Promise; + + switch (props.objectType) { + case MetricsObjectTypes.WORKLOAD: + promise = kialiClient.getWorkloadDashboard( + props.namespace, + props.object, + opts, + props.cluster, + ); + break; + case MetricsObjectTypes.APP: + promise = kialiClient.getAppDashboard( + props.namespace, + props.object, + opts, + props.cluster, + ); + break; + case MetricsObjectTypes.SERVICE: + default: + promise = kialiClient.getServiceDashboard( + props.namespace, + props.object, + opts, + props.cluster, + ); + break; + } + + return promise + .then(response => { + const labelsSettingsUpdated = MetricsHelper.extractLabelsSettings( + response, + labelsSettings, + ); + setDashboard(response); + setLabelsSettings(labelsSettingsUpdated); + }) + .catch(error => { + kialiState.alertUtils!.add(`Could not fetch metrics, ${error}`); + throw error; + }); + }; + + const fetchGrafanaInfo = (): void => { + if ( + typeof grafanaInfoPromise === 'undefined' || + grafanaInfoPromise === null + ) { + grafanaInfoPromise = kialiClient.getGrafanaInfo().then(response => { + return response; + }); + } + + grafanaInfoPromise + .then(grafanaInfo => { + if (grafanaInfo) { + setGrafanaLinks(grafanaInfo.externalLinks); + } else { + setGrafanaLinks([]); + } + }) + .catch(err => { + kialiState.alertUtils!.add( + `Could not fetch Grafana info. Turning off links to Grafana., ${err}`, + ); + }); + }; + + const refresh = (): void => { + fetchMetrics(); + if (tracingIntegration) { + spanOverlay.fetch({ + namespace: props.namespace, + cluster: props.cluster, + target: props.object, + targetKind: props.objectType, + range: timeRange, + }); + } + }; + + const fetchCripledFeatures = () => { + kialiClient.getCrippledFeatures().then(response => { + setCrippledFeatures(response); + }); + + fetchGrafanaInfo(); + refresh(); + }; + + React.useEffect(() => { + if (props.direction !== prevDirection.current) { + refresh(); + prevDirection.current = props.direction; + } + if (props.lastRefreshAt !== prevLastRefreshAt.current) { + setTimeRange(initTimeRange()); + prevLastRefreshAt.current = props.lastRefreshAt; + } + /* eslint-disable-next-line */ + }, [props.direction, props.lastRefreshAt]); + + const [_, refreshy] = useAsyncFn( + async () => { + // Check if the config is loaded + await fetchCripledFeatures(); + }, + [], + { loading: true }, + ); + useDebounce(refreshy, 10); + + const onMetricsSettingsChanged = (settingsM: MetricsSettings): void => { + const defaultLabels = [ + props.direction === 'inbound' + ? 'source_canonical_service' + : 'destination_canonical_service', + ]; + + MetricsHelper.settingsToOptions(settingsM, options, defaultLabels); + fetchMetrics(); + }; + + const onLabelsFiltersChanged = (labelsFilters: LabelsSettings): void => { + setLabelsSettings(labelsFilters); + }; + + const onReporterChanged = (reporter: Reporter): void => { + options.reporter = reporter; + fetchMetrics(); + }; + + const onDomainChange = (dates: [Date, Date]): void => { + if (dates && dates[0] && dates[1]) { + const range: TimeRange = { + from: dates[0].getTime(), + to: dates[1].getTime(), + }; + + setTimeRange(range); + } + }; + + const onClickDataPoint = ( + _chart: ChartModel, + datum: RawOrBucket, + ): void => { + if ('start' in datum && 'end' in datum) { + // Zoom-in bucket + onDomainChange([datum.start as Date, datum.end as Date]); + } else if ('traceId' in datum) { + const traceId = datum.traceId; + const spanId = datum.spanId; + + const domain = + // eslint-disable-next-line no-nested-ternary + props.objectType === MetricsObjectTypes.APP + ? 'applications' + : props.objectType === MetricsObjectTypes.SERVICE + ? 'services' + : 'workloads'; + + history.push( + `/namespaces/${props.namespace}/${domain}/${props.object}?tab=traces&${URLParam.TRACING_TRACE_ID}=${traceId}&${URLParam.TRACING_SPAN_ID}=${spanId}`, + ); + } + }; + + const onSpans = (checked: boolean): void => { + const urlParams = new URLSearchParams(history.location.search); + urlParams.set(URLParam.SHOW_SPANS, String(checked)); + history.replace(`${history.location.pathname}?${urlParams.toString()}`); + setShowSpans(!showSpans); + }; + + const onTrendlines = (checked: boolean): void => { + const urlParams = new URLSearchParams(history.location.search); + urlParams.set(URLParam.SHOW_TRENDLINES, String(checked)); + history.replace(`${history.location.pathname}?${urlParams.toString()}`); + setShowTrendLines(!showTrendlines); + }; + + const renderOptionsBar = (): React.ReactNode => { + const hasHistogramsAverage = + !crippledFeatures?.requestSizeAverage || + !crippledFeatures?.responseSizeAverage || + !crippledFeatures?.responseTimeAverage; + + const hasHistogramsPercentiles = + !crippledFeatures?.requestSizePercentiles || + !crippledFeatures?.responseSizePercentiles || + !crippledFeatures?.responseTimePercentiles; + + return ( +
    + + + + + + onSpans(checked)} + /> + } + label="Spans" + /> + + onTrendlines(checked)} + /> + } + label="Trendlines" + /> + + + +
    + ); + }; + + const expandHandler = (expandedChart?: string): void => { + const urlParams = new URLSearchParams(history.location.search); + urlParams.delete('expand'); + + if (expandedChart) { + urlParams.set('expand', expandedChart); + } + + history.push(`${history.location.pathname}?${urlParams.toString()}`); + }; + + const urlParams = new URLSearchParams(history.location.search); + const expandedChart = urlParams.get('expand') ?? undefined; + + // 20px (card margin) + 24px (card padding) + 51px (toolbar) + 15px (toolbar padding) + 24px (card padding) + 20px (card margin) + const toolbarHeight = toolbarRef?.current + ? toolbarRef.current.clientHeight + : 15; + const toolbarSpace = 20 + 24 + toolbarHeight + 15 + 24 + 20; + const dashboardHeight = tabHeight - toolbarSpace; + + return ( + <> +
    + {renderOptionsBar()} + {dashboard && ( + + onDomainChange(propsD.currentDomain.x), + }} + /> + )} +
    + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/Metrics/SpanOverlay.ts b/workspaces/kiali/plugins/kiali/src/components/Metrics/SpanOverlay.ts new file mode 100644 index 0000000000..63a17612ec --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Metrics/SpanOverlay.ts @@ -0,0 +1,143 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { useApi } from '@backstage/core-plugin-api'; + +import { PFColors } from '../../components/Pf/PfColors'; +import { kialiApiRef } from '../../services/Api'; +import { KialiAppState, KialiContext } from '../../store'; +import { + durationToBounds, + guardTimeRange, + TimeRange, +} from '../../types/Common'; +import { MetricsObjectTypes } from '../../types/Metrics'; +import { Overlay, OverlayInfo } from '../../types/Overlay'; +import { Span, TracingQuery } from '../../types/Tracing'; +import { LineInfo } from '../../types/VictoryChartInfo'; +import { toOverlay } from '../../utils/VictoryChartsUtils'; +import { defaultMetricsDuration } from './Helper'; + +export type JaegerLineInfo = LineInfo & { traceId?: string; spanId?: string }; + +type FetchOptions = { + namespace: string; + cluster?: string; + target: string; + targetKind: MetricsObjectTypes; + range: TimeRange; +}; + +export class SpanOverlay { + private spans: Span[] = []; + private lastFetchError = false; + private kialiClient = useApi(kialiApiRef); + private kialiState = React.useContext(KialiContext) as KialiAppState; + + constructor(public onChange: (overlay?: Overlay) => void) {} + + reset() { + this.spans = []; + } + + setSpans(spans: Span[]) { + this.spans = spans; + } + + fetch(opts: FetchOptions) { + const boundsMillis = guardTimeRange(opts.range, durationToBounds, b => b); + const defaultFrom = new Date().getTime() - defaultMetricsDuration * 1000; + const q: TracingQuery = { + startMicros: boundsMillis.from + ? boundsMillis.from * 1000 + : defaultFrom * 1000, + endMicros: boundsMillis.to ? boundsMillis.to * 1000 : undefined, + }; + // Remove any out-of-bound spans + this.spans = this.spans.filter( + s => + s.startTime >= q.startMicros && + (q.endMicros === undefined || s.startTime <= q.endMicros), + ); + // Start fetching from last fetched data when available + if (this.spans.length > 0) { + q.startMicros = 1 + Math.max(...this.spans.map(s => s.startTime)); + } + const apiCall = + // eslint-disable-next-line no-nested-ternary + opts.targetKind === MetricsObjectTypes.APP + ? this.kialiClient.getAppSpans + : opts.targetKind === MetricsObjectTypes.SERVICE + ? this.kialiClient.getServiceSpans + : this.kialiClient.getWorkloadSpans; + apiCall(opts.namespace, opts.target, q, opts.cluster) + .then(res => { + this.lastFetchError = false; + // Incremental refresh: we keep existing spans + this.spans = this.spans.concat(res); + this.onChange(this.buildOverlay()); + }) + .catch(err => { + if (!this.lastFetchError) { + this.kialiState.alertUtils!.add(`Could not fetch spans., ${err}`); + this.lastFetchError = true; + } + }); + } + + private buildOverlay(): Overlay | undefined { + if (this.spans.length > 0) { + const info: OverlayInfo = { + lineInfo: { + name: 'Span duration', + unit: 'seconds', + color: PFColors.Cyan300, + symbol: 'circle', + size: 10, + }, + dataStyle: { + // @ts-ignore + fill: ({ datum }) => { + return datum.error ? PFColors.Danger : PFColors.Cyan300; + }, + fillOpacity: 0.6, + cursor: 'pointer', + }, + buckets: this.spans.length > 1000 ? 15 : 0, + }; + const dps = this.spans.map(span => { + const hasError = span.tags.some( + tag => tag.key === 'error' && tag.value, + ); + const methodTags = span.tags.filter(tag => tag.key === 'http.method'); + const method = methodTags.length > 0 ? methodTags[0].value : undefined; + return { + name: `${method && `[${method}] `}${span.operationName}`, + x: new Date(span.startTime / 1000), + y: Number(span.duration / 1000000), + error: hasError, + color: hasError ? PFColors.Danger : PFColors.Cyan300, + size: 4, + traceId: span.traceID, + spanId: span.spanID, + }; + }); + return toOverlay(info, dps); + } + return undefined; + } +} diff --git a/workspaces/kiali/plugins/kiali/src/components/MetricsOptions/MetricsReporter.tsx b/workspaces/kiali/plugins/kiali/src/components/MetricsOptions/MetricsReporter.tsx new file mode 100644 index 0000000000..c93926096d --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/MetricsOptions/MetricsReporter.tsx @@ -0,0 +1,111 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { Tooltip } from '@material-ui/core'; + +import { HistoryManager, URLParam } from '../../app/History'; +import { KialiIcon } from '../../config/KialiIcon'; +import { kialiStyle } from '../../styles/StyleUtils'; +import { Direction, Reporter } from '../../types/MetricsOptions'; +import { ToolbarDropdown } from '../ToolbarDropdown/ToolbarDropdown'; + +interface Props { + onChanged: (reproter: Reporter) => void; + direction: Direction; + reporter: Reporter; +} + +const infoStyle = kialiStyle({ + margin: '0px 5px 2px 5px', +}); + +export class MetricsReporter extends React.Component { + static ReporterOptions: { [key: string]: string } = { + destination: 'Destination', + source: 'Source', + both: 'Both', + }; + + static initialReporter = (direction: Direction): Reporter => { + const reporterParam = HistoryManager.getParam(URLParam.REPORTER); + if (reporterParam !== undefined) { + return reporterParam as Reporter; + } + return direction === 'inbound' ? 'destination' : 'source'; + }; + + reportTooltip = ( +
    +
      +
    • +
      + Select the reporter for the metrics displayed. Each Istio metric can + be reported by the Source (workload which emitted the request) and + by the Destination (workload which received the request). In + general, the timeseries will look exactly the same because Source + and Destination report the same data. +
      +
    • +
    • +
      + There are some exceptions: +
      +
    • +
    • +
        +
      • + An opened circuit breaker would cause networking failures only + reported by the Source +
      • +
      • Fault-injected failures only reported by the Source
      • +
      • + Traffic coming from unknown sources (anything that is not under + the Istio mesh) would only be reported by the Destination +
      • +
      +
    • +
    +
    + ); + + onReporterChanged = (reporter: string) => { + HistoryManager.setParam(URLParam.REPORTER, reporter); + const newReporter = reporter as Reporter; + this.props.onChanged(newReporter); + }; + + render() { + return ( + + + {this.reportTooltip}} + > + + + + ); + } +} diff --git a/workspaces/kiali/plugins/kiali/src/components/MetricsOptions/MetricsSettings.ts b/workspaces/kiali/plugins/kiali/src/components/MetricsOptions/MetricsSettings.ts new file mode 100644 index 0000000000..0b87e8d9de --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/MetricsOptions/MetricsSettings.ts @@ -0,0 +1,40 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { + LabelDisplayName, + PromLabel, + SingleLabelValues, +} from '../../types/Metrics'; + +export type Quantiles = '0.5' | '0.95' | '0.99' | '0.999'; +export const allQuantiles: Quantiles[] = ['0.5', '0.95', '0.99', '0.999']; + +export type LabelSettings = { + checked: boolean; + displayName: LabelDisplayName; + values: SingleLabelValues; + defaultValue: boolean; + singleSelection: boolean; +}; +export type LabelsSettings = Map; + +export interface MetricsSettings { + labelsSettings: LabelsSettings; + showAverage: boolean; + showSpans: boolean; + showTrendlines: boolean; + showQuantiles: Quantiles[]; +} diff --git a/workspaces/kiali/plugins/kiali/src/components/MetricsOptions/MetricsSettingsDropdown.tsx b/workspaces/kiali/plugins/kiali/src/components/MetricsOptions/MetricsSettingsDropdown.tsx new file mode 100644 index 0000000000..f07cca26be --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/MetricsOptions/MetricsSettingsDropdown.tsx @@ -0,0 +1,482 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { + Divider, + FormControlLabel, + FormLabel, + Radio, + Tooltip, +} from '@material-ui/core'; +import Checkbox from '@material-ui/core/Checkbox'; +import { + Dropdown, + DropdownList, + MenuToggle, + MenuToggleElement, +} from '@patternfly/react-core'; +import isEqual from 'lodash/isEqual'; +import { classes } from 'typestyle'; + +import { history, URLParam } from '../../app/History'; +import { KialiIcon } from '../../config/KialiIcon'; +import { titleStyle } from '../../styles/DropdownStyles'; +import { kialiStyle } from '../../styles/StyleUtils'; +import { PromLabel } from '../../types/Metrics'; +import { + combineLabelsSettings, + mergeLabelFilter, + retrieveMetricsSettings, +} from '../Metrics/Helper'; +import { + allQuantiles, + LabelsSettings, + MetricsSettings, + Quantiles, +} from './MetricsSettings'; + +interface Props { + direction: string; + hasHistograms: boolean; + hasHistogramsAverage: boolean; + hasHistogramsPercentiles: boolean; + labelsSettings: LabelsSettings; + onChanged: (state: MetricsSettings) => void; + onLabelsFiltersChanged: (labelsFilters: LabelsSettings) => void; +} + +type State = MetricsSettings & { + allSelected: boolean; + isOpen: boolean; +}; + +const checkboxSelectAllStyle = kialiStyle({ marginLeft: '0.5rem' }); +const secondLevelStyle = kialiStyle({ marginLeft: '1rem' }); +const spacerStyle = kialiStyle({ height: '0.5rem' }); +const titleLabelStyle = kialiStyle({ + marginBottom: '0.5rem', + fontSize: 'small', +}); +const labelStyle = kialiStyle({ display: 'inline-block' }); +const checkboxStyle = kialiStyle({ marginLeft: '1rem' }); + +export class MetricsSettingsDropdown extends React.Component { + constructor(props: Props) { + super(props); + const settings = retrieveMetricsSettings(); + settings.labelsSettings = combineLabelsSettings( + props.labelsSettings, + settings.labelsSettings, + ); + this.state = { ...settings, isOpen: false, allSelected: false }; + } + + componentDidUpdate(prevProps: Props) { + // TODO Move the sync of URL and state to a global place + const changeDirection = prevProps.direction !== this.props.direction; + const settings = retrieveMetricsSettings(); + const initLabelSettings = changeDirection + ? settings.labelsSettings + : new Map(); + const stateLabelsSettings = changeDirection + ? initLabelSettings + : this.state.labelsSettings; + const labelsSettings = combineLabelsSettings( + this.props.labelsSettings, + stateLabelsSettings, + ); + + if (!isEqual(stateLabelsSettings, labelsSettings) || changeDirection) { + this.setState(prevState => { + return { + labelsSettings: labelsSettings, + showQuantiles: changeDirection + ? settings.showQuantiles + : prevState.showQuantiles, + showAverage: changeDirection + ? settings.showAverage + : prevState.showAverage, + showSpans: changeDirection ? settings.showSpans : prevState.showSpans, + }; + }, this.checkSelected); + } + } + + private onToggle = (isOpen: boolean) => { + this.setState({ isOpen: isOpen }); + }; + + onGroupingChanged = (label: PromLabel, checked: boolean) => { + const objLbl = this.state.labelsSettings.get(label); + + if (objLbl) { + objLbl.checked = checked; + } + + this.updateLabelsSettingsURL(this.state.labelsSettings); + + this.setState( + prevState => ({ + labelsSettings: new Map(prevState.labelsSettings), + }), + () => { + this.props.onChanged(this.state); + this.checkSelected(); + }, + ); + }; + + onLabelsFiltersChanged = ( + label: PromLabel, + value: string, + checked: boolean, + singleSelection: boolean, + ) => { + const newValues = mergeLabelFilter( + this.state.labelsSettings, + label, + value, + checked, + singleSelection, + ); + this.updateLabelsSettingsURL(newValues); + this.setState( + prevState => ({ + labelsSettings: mergeLabelFilter( + prevState.labelsSettings, + label, + value, + checked, + singleSelection, + ), + }), + () => { + this.props.onLabelsFiltersChanged(newValues); + this.checkSelected(); + }, + ); + }; + + onHistogramAverageChanged = (checked: boolean) => { + const urlParams = new URLSearchParams(history.location.search); + urlParams.set(URLParam.SHOW_AVERAGE, String(checked)); + history.replace(`${history.location.pathname}?${urlParams.toString()}`); + + this.setState({ showAverage: checked }, () => + this.props.onChanged(this.state), + ); + }; + + onHistogramOptionsChanged = (quantile: Quantiles, checked: boolean) => { + const newQuantiles = checked + ? [quantile].concat(this.state.showQuantiles) + : this.state.showQuantiles.filter(q => quantile !== q); + + const urlParams = new URLSearchParams(history.location.search); + urlParams.set(URLParam.QUANTILES, newQuantiles.join(' ')); + history.replace(`${history.location.pathname}?${urlParams.toString()}`); + + this.setState( + prevState => ({ + showQuantiles: checked + ? [quantile].concat(prevState.showQuantiles) + : prevState.showQuantiles.filter(q => quantile !== q), + }), + () => this.props.onChanged(this.state), + ); + }; + + onBulkAll = () => { + this.bulkUpdate(true); + this.setState({ allSelected: true }); + }; + + onBulkNone = () => { + this.bulkUpdate(false); + this.setState({ allSelected: false }); + }; + + bulkUpdate = (selected: boolean): void => { + this.state.labelsSettings.forEach(lblSetting => { + lblSetting.checked = selected; + + Object.keys(lblSetting.values).forEach(value => { + lblSetting.values[value] = selected; + }); + }); + + this.updateLabelsSettingsURL(this.state.labelsSettings); + + this.setState( + prevState => ({ + labelsSettings: new Map(prevState.labelsSettings), + }), + () => { + this.props.onChanged(this.state); + }, + ); + }; + + updateLabelsSettingsURL = (labelsSettings: LabelsSettings) => { + // E.g.: bylbl=version=v1,v2,v4 + const urlParams = new URLSearchParams(history.location.search); + urlParams.delete(URLParam.BY_LABELS); + + labelsSettings.forEach((lbl, name) => { + if (lbl.checked) { + const filters = Object.keys(lbl.values) + .filter(k => lbl.values[k]) + .join(','); + if (filters) { + urlParams.append(URLParam.BY_LABELS, `${name}=${filters}`); + } else { + urlParams.append(URLParam.BY_LABELS, name); + } + } + }); + + history.replace(`${history.location.pathname}?${urlParams.toString()}`); + }; + + checkSelected = () => { + let allSelected = true; + this.state.labelsSettings.forEach(lblSetting => { + if (lblSetting.checked === false) { + allSelected = false; + } else { + Object.keys(lblSetting.values).forEach(value => { + if (lblSetting.values[value] === false) { + allSelected = false; + } + }); + } + }); + + this.setState({ allSelected: allSelected }); + }; + + renderBulkSelector(): JSX.Element { + return ( +
    +
    + { + if (this.state.allSelected) { + this.onBulkNone(); + } else { + this.onBulkAll(); + } + }} + /> + + Select all metric/label filters + +
    + +
    + ); + } + + renderLabelOptions(): React.ReactElement { + const displayGroupingLabels: any[] = []; + + this.state.labelsSettings.forEach((lblObj, promName) => { + const labelsHTML = + lblObj.checked && lblObj.values + ? Object.keys(lblObj.values).map(val => ( +
    + {lblObj.singleSelection ? ( + { + this.onLabelsFiltersChanged(promName, val, true, true); + }} + name={val} + value={val} + /> + ) : ( + { + this.onLabelsFiltersChanged( + promName, + val, + checked, + false, + ); + }} + /> + } + label={val} + /> + )} +
    + )) + : null; + + displayGroupingLabels.push( +
    + + this.onGroupingChanged(promName, checked) + } + /> + } + label={promName} + /> + {labelsHTML} +
    , + ); + }); + + return ( + <> + + Show metrics by: + + {displayGroupingLabels} +
    + + ); + } + + renderHistogramOptions(): JSX.Element { + const displayHistogramOptions = [ +
    + + this.onHistogramAverageChanged(checked) + } + name="Average" + /> + } + label="Average" + /> +
    , + ].concat( + allQuantiles.map((o, idx) => { + const checked = this.state.showQuantiles.includes(o); + return ( +
    + + this.onHistogramOptionsChanged(o, checkedE) + } + name={`Quantile ${o}`} + /> + } + label={`Quantile ${o}`} + /> +
    + ); + }), + ); + + return ( + <> + + +
    + "No data available" is displayed for a histogram that does not + have telemetry supporting the selected option. If no + histograms support the necessary telemetry, the option will be + disabled. +
    +
    + } + > +
    + Histograms: + +
    + + + {displayHistogramOptions} +
    + + ); + } + + render() { + const hasHistograms = this.props.hasHistograms; + const hasLabels = this.state.labelsSettings.size > 0; + + if (!hasHistograms && !hasLabels) { + return null; + } + + return ( + ) => ( + this.onToggle(!this.state.isOpen)} + isExpanded={this.state.isOpen} + > + Metrics Settings + + )} + isOpen={this.state.isOpen} + onOpenChange={(isOpen: boolean) => this.onToggle(isOpen)} + > + + {hasLabels && this.renderBulkSelector()} + {hasLabels && this.renderLabelOptions()} + {hasHistograms && this.renderHistogramOptions()} + + + ); + } +} diff --git a/workspaces/kiali/plugins/kiali/src/components/MissingAuthPolicy/MissingAuthPolicy.tsx b/workspaces/kiali/plugins/kiali/src/components/MissingAuthPolicy/MissingAuthPolicy.tsx new file mode 100644 index 0000000000..1884d58844 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/MissingAuthPolicy/MissingAuthPolicy.tsx @@ -0,0 +1,83 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { Tooltip, TooltipPosition } from '@patternfly/react-core'; +import { SVGIconProps } from '@patternfly/react-icons/dist/js/createIcon'; + +import { icons } from '../../config/Icons'; +import { KialiIcon } from '../../config/KialiIcon'; +import { isIstioNamespace } from '../../config/ServerConfig'; +import { kialiStyle } from '../../styles/StyleUtils'; + +type MissingAuthPolicyProps = { + text?: string; + textTooltip?: string; + tooltip?: boolean; + icon?: React.ComponentClass; + color?: string; + namespace: string; + className?: string; +}; + +const infoStyle = kialiStyle({ + marginLeft: '0.5rem', +}); + +export const MissingAuthPolicy: React.FC = ({ + text = 'Missing Authorization Policy', + textTooltip = 'This workload is not covered by any authorization policy.', + tooltip = false, + icon = icons.istio.missingAuthPolicy.icon, + color = icons.istio.missingAuthPolicy.color, + namespace, + className, +}) => { + const iconComponent = ( + + {React.createElement(icon, { style: { color: color } })} + + {!tooltip && ( + + {text} + + {textTooltip}
    } + > + + +
    + )} + + ); + + if (isIstioNamespace(namespace)) { + return <>; + } + + return tooltip ? ( + {textTooltip}} + position={TooltipPosition.right} + > + {iconComponent} + + ) : ( + iconComponent + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/MissingLabel/MissingLabel.tsx b/workspaces/kiali/plugins/kiali/src/components/MissingLabel/MissingLabel.tsx new file mode 100644 index 0000000000..1ced97a5c8 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/MissingLabel/MissingLabel.tsx @@ -0,0 +1,109 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { Tooltip } from '@material-ui/core'; + +import { icons } from '../../config/Icons'; +import { KialiIcon } from '../../config/KialiIcon'; +import { serverConfig } from '../../config/ServerConfig'; +import { kialiStyle } from '../../styles/StyleUtils'; +import { PFBadge } from '../Pf/PfBadges'; + +type MissingLabelProps = { + className?: string; + missingApp: boolean; + missingVersion: boolean; + tooltip: boolean; +}; + +const infoStyle = kialiStyle({ + marginLeft: '0.5rem', +}); + +export const MissingLabel: React.FC = ( + props: MissingLabelProps, +) => { + const appLabel = serverConfig.istioLabels.appLabelName; + const versionLabel = serverConfig.istioLabels.versionLabelName; + const icon = icons.istio.missingLabel.icon; + const color = icons.istio.missingLabel.color; + + const tooltipContent = ( +
    + {props.missingApp && ( + <> +
    + {' '} + label is missing.
    +
    +
    This workload won't be linked with an application.
    + + )} + + {props.missingVersion && ( + <> +
    + {' '} + label is missing.
    +
    +
    The label is recommended as it affects telemetry.
    + + )} + +
    + Missing labels may impact telemetry reported by the Istio proxy. +
    +
    + ); + + const missingLabel = + // eslint-disable-next-line no-nested-ternary + props.missingApp ? 'App' : props.missingVersion ? 'Version' : 'Label'; + + const iconComponent = ( + + {React.createElement(icon, { style: { color: color } })} + + {!props.tooltip && ( + + Missing {missingLabel} + +
    + +
    +
    +
    + )} +
    + ); + + return props.tooltip ? ( + +
    {iconComponent}
    +
    + ) : ( + iconComponent + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/MissingSidecar/MissingSidecar.tsx b/workspaces/kiali/plugins/kiali/src/components/MissingSidecar/MissingSidecar.tsx new file mode 100644 index 0000000000..1f12038e57 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/MissingSidecar/MissingSidecar.tsx @@ -0,0 +1,118 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { Tooltip, TooltipPosition } from '@patternfly/react-core'; +import { SVGIconProps } from '@patternfly/react-icons/dist/js/createIcon'; + +import { icons } from '../../config/Icons'; +import { KialiIcon } from '../../config/KialiIcon'; +import { isIstioNamespace, serverConfig } from '../../config/ServerConfig'; +import { kialiStyle } from '../../styles/StyleUtils'; + +type MissingSidecarProps = { + 'data-test'?: string; + text: string; + textmesh?: string; + texttooltip: string; + tooltip: boolean; + meshtooltip: string; + icon: React.ComponentClass; + color: string; + namespace: string; + style?: React.CSSProperties; + isGateway?: boolean; +}; + +const infoStyle = kialiStyle({ + margin: '0px 5px 2px 4px', + verticalAlign: '-5px !important', +}); + +export class MissingSidecar extends React.Component { + static defaultProps = { + textmesh: 'Out of mesh', + text: 'Missing Sidecar', + meshtooltip: + 'Out of mesh. Istio sidecar container or Ambient labels not found in Pod(s). Check if the istio-injection label/annotation is correctly set on the namespace/workload.', + texttooltip: + 'Istio sidecar container not found in Pod(s). Check if the istio-injection label/annotation is correctly set on the namespace/workload.', + tooltip: false, + icon: icons.istio.missingSidecar.icon, + color: icons.istio.missingSidecar.color, + }; + + render() { + const { + text, + texttooltip, + icon, + namespace, + color, + tooltip, + style, + ...otherProps + } = this.props; + const iconComponent = ( + + {React.createElement(icon, { + style: { color: color, verticalAlign: '-2px' }, + })} + {!tooltip && ( + + {serverConfig.ambientEnabled + ? this.props.textmesh + : this.props.text} + + {serverConfig.ambientEnabled + ? this.props.meshtooltip + : this.props.texttooltip} + + } + > + + + + )} + + ); + + if (isIstioNamespace(namespace) || this.props.isGateway) { + return <>; + } + + return tooltip ? ( + + {serverConfig.ambientEnabled + ? this.props.meshtooltip + : this.props.texttooltip} + + } + position={TooltipPosition.right} + > + {iconComponent} + + ) : ( + iconComponent + ); + } +} diff --git a/workspaces/kiali/plugins/kiali/src/components/Nav/Page/RenderComponentScroll.tsx b/workspaces/kiali/plugins/kiali/src/components/Nav/Page/RenderComponentScroll.tsx new file mode 100644 index 0000000000..423aa3f660 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Nav/Page/RenderComponentScroll.tsx @@ -0,0 +1,97 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React from 'react'; + +import { classes } from 'typestyle'; + +import { kialiStyle } from '../../../styles/StyleUtils'; + +// TOP_PADDING constant is used to adjust the height of the main div to allow scrolling in the inner container layer. +const TOP_PADDING = 76 + 440; + +/** + * By default, Kiali hides the global scrollbar and fixes the height for some pages to force the scrollbar to appear + * Hiding global scrollbar is not possible when Kiali is embedded in other application (like Openshift Console) + * In these cases height is not fixed to avoid multiple scrollbars (https://github.com/kiali/kiali/issues/6601) + * GLOBAL_SCROLLBAR environment variable is not defined in standalone Kiali application (value is always false) + */ +const globalScrollbar = process.env.GLOBAL_SCROLLBAR ?? 'false'; + +const componentStyle = kialiStyle({ + padding: '20px', +}); + +interface Props { + className?: any; + onResize?: (height: number) => void; + children: React.ReactElement; +} + +interface State { + height: number; +} + +export class RenderComponentScroll extends React.Component { + constructor(props: Props) { + super(props); + this.state = { height: 0 }; + } + + componentDidMount() { + this.updateWindowDimensions(); + // @ts-ignore + window.addEventListener('resize', this.updateWindowDimensions); + } + + componentWillUnmount() { + // @ts-ignore + window.removeEventListener('resize', this.updateWindowDimensions); + } + + updateWindowDimensions = () => { + const topPadding = TOP_PADDING; + + this.setState( + { + // @ts-ignore + height: window.innerHeight - topPadding, + }, + () => { + if (this.props.onResize) { + this.props.onResize(this.state.height); + } + }, + ); + }; + + render() { + let scrollStyle = {}; + + // If there is no global scrollbar, height is fixed to force the scrollbar to appear in the component + if (globalScrollbar === 'false') { + scrollStyle = { height: this.state.height, overflowY: 'auto' }; + } + + return ( +
    + {this.props.children} +
    + ); + } +} diff --git a/workspaces/kiali/plugins/kiali/src/components/NoData.tsx b/workspaces/kiali/plugins/kiali/src/components/NoData.tsx new file mode 100644 index 0000000000..6c8f017fd0 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/NoData.tsx @@ -0,0 +1,32 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React from 'react'; + +import { EmptyState } from '@backstage/core-components'; + +const containerStyle = { width: '100%', height: '100%' }; + +export const NoData = (props: { title: string; description: string }) => { + return ( +
    + +
    + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/Overview/TLSInfo.tsx b/workspaces/kiali/plugins/kiali/src/components/Overview/TLSInfo.tsx new file mode 100644 index 0000000000..ae690a6e12 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Overview/TLSInfo.tsx @@ -0,0 +1,128 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { Chip, Tooltip } from '@material-ui/core'; +import { useTheme } from '@material-ui/core/styles'; + +import { KialiIcon } from '../../config/KialiIcon'; +import { infoStyle } from '../../pages/Overview/OverviewCard/OverviewCardControlPlaneNamespace'; +import { getChipStyle, kialiStyle } from '../../styles/StyleUtils'; +import { CertsInfo } from '../../types/CertsInfo'; + +type Props = { + certificatesInformationIndicators: boolean; + version?: string; + certsInfo: CertsInfo[]; +}; + +const lockIconStyle = kialiStyle({ marginLeft: '5px' }); + +function showCerts(certs: CertsInfo[]) { + if (certs) { + const rows = certs.map(item => ( +
    +
    + From {item.issuer} +
    +
    +
    Issuer:
    +
    {item.secretName}
    +
    +
    +
    Valid From:
    +
    {item.notAfter}
    +
    +
    +
    Valid To:
    +
    {item.notBefore}
    +
    +
    + )); + return
    {rows}
    ; + } + return 'No cert info'; +} + +function LockIcon(props: Props) { + return props.certificatesInformationIndicators === true ? ( + + + + + + ) : ( + + ); +} + +export const TLSInfo = (props: Props) => { + const theme = useTheme(); + const chipStyle = getChipStyle(theme); + + return ( +
    +
    +
    + Min TLS version +
    + + + {props.version}{' '} + + + The meshConfig.meshMTLS.minProtocolVersion field specifies + the minimum TLS version for the TLS connections among Istio + workloads. N/A if it was not set. +
    + } + > + + + + +
    + } + /> + + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/Pf/PfBadges.tsx b/workspaces/kiali/plugins/kiali/src/components/Pf/PfBadges.tsx new file mode 100644 index 0000000000..9fe5bbf3de --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Pf/PfBadges.tsx @@ -0,0 +1,216 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React, { CSSProperties } from 'react'; + +import { Badge, Tooltip, TooltipPosition } from '@patternfly/react-core'; + +import { kialiStyle } from '../../styles/StyleUtils'; +import { PFColors } from './PfColors'; + +export type PFBadgeType = { + badge: string; + tt?: React.ReactFragment; + style?: React.CSSProperties; +}; + +// PF Badges used by Kiali, keep alphabetized +// avoid duplicate badge letters, especially if they may appear on the same page +export const PFBadges: { [key: string]: PFBadgeType } = Object.freeze({ + App: { + badge: 'A', + tt: 'Application', + style: { backgroundColor: PFColors.Green500 }, + } as PFBadgeType, + Adapter: { badge: 'A', tt: 'Adapter' } as PFBadgeType, + AttributeManifest: { badge: 'AM', tt: 'Attribute Manifest' } as PFBadgeType, + AuthorizationPolicy: { + badge: 'AP', + tt: 'Authorization Policy', + } as PFBadgeType, + Cluster: { + badge: 'C', + tt: 'Cluster', + style: { backgroundColor: PFColors.Blue300 }, + } as PFBadgeType, + ClusterRBACConfig: { + badge: 'CRC', + tt: 'Cluster RBAC Configuration', + } as PFBadgeType, + Container: { + badge: 'C', + tt: 'Container', + style: { backgroundColor: PFColors.Blue300 }, + } as PFBadgeType, + DestinationRule: { badge: 'DR', tt: 'Destination Rule' } as PFBadgeType, + EnvoyFilter: { badge: 'EF', tt: 'Envoy Filter' } as PFBadgeType, + ExternalService: { badge: 'ES', tt: 'External Service' } as PFBadgeType, + FaultInjectionAbort: { + badge: 'FI', + tt: 'Fault Injection: Abort', + style: { backgroundColor: PFColors.Purple500 }, + } as PFBadgeType, + FaultInjectionDelay: { + badge: 'FI', + tt: 'Fault Injection: Delay', + style: { backgroundColor: PFColors.Purple500 }, + } as PFBadgeType, + FederatedService: { badge: 'FS', tt: 'Federated Service' } as PFBadgeType, + Gateway: { badge: 'G', tt: 'Gateway' } as PFBadgeType, + HTTPRoute: { badge: 'HTTP', tt: 'HTTPRoute' } as PFBadgeType, + K8sGateway: { badge: 'G', tt: 'Gateway (K8s)' } as PFBadgeType, + K8sHTTPRoute: { badge: 'HTTP', tt: 'HTTPRoute (K8s)' } as PFBadgeType, + Handler: { badge: 'H', tt: 'Handler' }, + Host: { badge: 'H', tt: 'Host' }, + Instance: { badge: 'I', tt: 'Instance' }, + MeshPolicy: { badge: 'MP', tt: 'Mesh Policy' } as PFBadgeType, + MirroredWorkload: { + badge: 'MI', + tt: 'Mirrored Workload', + style: { backgroundColor: PFColors.Purple500 }, + } as PFBadgeType, + Namespace: { + badge: 'NS', + tt: 'Namespace', + style: { backgroundColor: PFColors.Green600 }, + } as PFBadgeType, + Operation: { badge: 'O', tt: 'Operation' } as PFBadgeType, + PeerAuthentication: { badge: 'PA', tt: 'Peer Authentication' } as PFBadgeType, + Pod: { + badge: 'P', + tt: 'Pod', + style: { backgroundColor: PFColors.Cyan300 }, + } as PFBadgeType, + Policy: { badge: 'P', tt: 'Policy' } as PFBadgeType, + RBACConfig: { badge: 'RC', tt: 'RBAC Configuration' } as PFBadgeType, + RequestAuthentication: { + badge: 'RA', + tt: 'Request Authentication', + } as PFBadgeType, + RequestRetry: { + badge: 'RR', + tt: 'Request Retry', + style: { backgroundColor: PFColors.Purple500 }, + } as PFBadgeType, + RequestTimeout: { + badge: 'RT', + tt: 'Request Timeout', + style: { backgroundColor: PFColors.Purple500 }, + } as PFBadgeType, + Rule: { badge: 'R', tt: 'Rule' } as PFBadgeType, + Service: { + badge: 'S', + tt: 'Service', + style: { backgroundColor: PFColors.LightGreen500 }, + } as PFBadgeType, + ServiceEntry: { badge: 'SE', tt: 'Service Entry' } as PFBadgeType, + ServiceRole: { badge: 'SR', tt: 'Service Role' } as PFBadgeType, + ServiceRoleBinding: { + badge: 'SRB', + tt: 'Service Role Binding', + } as PFBadgeType, + Sidecar: { badge: 'SC', tt: 'Istio Sidecar Proxy' } as PFBadgeType, + WasmPlugin: { badge: 'WP', tt: 'Istio Wasm Plugin' } as PFBadgeType, + Telemetry: { badge: 'TM', tt: 'Istio Telemetry' } as PFBadgeType, + Template: { badge: 'T', tt: 'Template' } as PFBadgeType, + Unknown: { badge: 'U', tt: 'Unknown' } as PFBadgeType, + VirtualService: { badge: 'VS', tt: 'Virtual Service' } as PFBadgeType, + Waypoint: { badge: 'W', tt: 'Waypoint proxy' } as PFBadgeType, + Workload: { + badge: 'W', + tt: 'Workload', + style: { backgroundColor: PFColors.Blue500 }, + } as PFBadgeType, + WorkloadEntry: { badge: 'WE', tt: 'Workload Entry' } as PFBadgeType, + WorkloadGroup: { badge: 'WG', tt: 'Workload Group' } as PFBadgeType, +}); + +// This is styled for consistency with OpenShift Console. See console: public/components/_resource.scss +export const kialiBadge = kialiStyle({ + backgroundColor: PFColors.Badge, + color: PFColors.White, + borderRadius: '20px', + flexShrink: 0, + fontFamily: 'var(--pf-v5-global--FontFamily--text)', + fontSize: 'var(--kiali-global--font-size)', + lineHeight: '16px', + marginRight: '4px', + minWidth: '1.5em', + padding: '1px 4px', + textAlign: 'center', + whiteSpace: 'nowrap', +}); + +export const kialiBadgeSmall = kialiStyle({ + backgroundColor: PFColors.Badge, + color: PFColors.White, + borderRadius: '20px', + flexShrink: 0, + fontFamily: 'var(--pf-v5-global--FontFamily--text)', + fontSize: '12px', + lineHeight: '13px', + marginRight: '5px', + minWidth: '1.3em', + padding: '1px 3px', + textAlign: 'center', + whiteSpace: 'nowrap', +}); + +type PFBadgeProps = { + badge: PFBadgeType; + isRead?: boolean; + keyValue?: string; + position?: string; // default=auto + size?: 'global' | 'sm'; + style?: CSSProperties; + tooltip?: React.ReactFragment; +}; + +export class PFBadge extends React.PureComponent { + render() { + const key = this.props.keyValue || `pfbadge-${this.props.badge.badge}`; + const ttKey = `tt-${key}`; + const style = { ...this.props.badge.style, ...this.props.style }; + const tooltip = this.props.tooltip || this.props.badge.tt; + const className = this.props.size === 'sm' ? kialiBadgeSmall : kialiBadge; + + const badge = ( + + {this.props.badge.badge} + + ); + + return !tooltip ? ( + badge + ) : ( + {tooltip}} + id={ttKey} + key={ttKey} + position={ + (this.props.position as TooltipPosition) || TooltipPosition.auto + } + > + {badge} + + ); + } +} diff --git a/workspaces/kiali/plugins/kiali/src/components/Pf/PfColors.tsx b/workspaces/kiali/plugins/kiali/src/components/Pf/PfColors.tsx new file mode 100644 index 0000000000..f85c7403ae --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Pf/PfColors.tsx @@ -0,0 +1,252 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ + +// PF colors, and moreover, use the defined color variables such that any changes made by PF are +// picked up when the PF version is updated. The preferred, standard way, is in CSS styling. In +// those cases we can directly let CSS resolve the PF var. So, whenever possible use the PFColors +// enum below. In certain cases (like in cytoscape), we need the explicit hex value. In that case +// we must actually get the computed value. We do this as soon as we get an initial document (in +// StartupInitializer.tsx). In those cases use PFColorVals. Note that those values are not +// available until they can be computed, so don't use them in constants or before they are +// available. + +// Colors used by Kiali for CSS styling +export enum PFColors { + Black100 = 'var(--pf-v5-global--palette--black-100)', + Black150 = 'var(--pf-v5-global--palette--black-150)', + Black200 = 'var(--pf-v5-global--palette--black-200)', + Black300 = 'var(--pf-v5-global--palette--black-300)', + Black400 = 'var(--pf-v5-global--palette--black-400)', + Black500 = 'var(--pf-v5-global--palette--black-500)', + Black600 = 'var(--pf-v5-global--palette--black-600)', + Black700 = 'var(--pf-v5-global--palette--black-700)', + Black800 = 'var(--pf-v5-global--palette--black-800)', + Black900 = 'var(--pf-v5-global--palette--black-900)', + Black1000 = 'var(--pf-v5-global--palette--black-1000)', + Blue50 = 'var(--pf-v5-global--palette--blue-50)', + Blue200 = 'var(--pf-v5-global--palette--blue-200)', + Blue300 = 'var(--pf-v5-global--palette--blue-300)', + Blue400 = 'var(--pf-v5-global--palette--blue-400)', + Blue500 = 'var(--pf-v5-global--palette--blue-500)', + Blue600 = 'var(--pf-v5-global--palette--blue-600)', + Cyan300 = 'var(--pf-v5-global--palette--cyan-300)', + Gold400 = 'var(--pf-v5-global--palette--gold-400)', + Green300 = 'var(--pf-v5-global--palette--green-300)', + Green400 = 'var(--pf-v5-global--palette--green-400)', + Green500 = 'var(--pf-v5-global--palette--green-500)', + Green600 = 'var(--pf-v5-global--palette--green-600)', + LightBlue400 = 'var(--pf-v5-global--palette--light-blue-400)', + LightGreen400 = 'var(--pf-v5-global--palette--light-green-400)', + LightGreen500 = 'var(--pf-v5-global--palette--light-green-500)', + Orange50 = 'var(--pf-v5-global--palette--orange-50)', + Orange400 = 'var(--pf-v5-global--palette--orange-400)', + Purple100 = 'var(--pf-v5-global--palette--purple-100)', + Purple200 = 'var(--pf-v5-global--palette--purple-200)', + Purple500 = 'var(--pf-v5-global--palette--purple-500)', + Red50 = 'var(--pf-v5-global--palette--red-50)', + Red100 = 'var(--pf-v5-global--palette--red-100)', + Red200 = 'var(--pf-v5-global--palette--red-200)', + Red500 = 'var(--pf-v5-global--palette--red-500)', + White = 'var(--pf-v5-global--palette--white)', + + // semantic kiali colors + Active = 'var(--pf-v5-global--active-color--400)', + ActiveText = 'var(--pf-v5-global--primary-color--200)', + Badge = 'var(--pf-v5-global--palette--blue-300)', + Replay = 'var(--pf-v5-global--active-color--300)', + Link = 'var(--pf-v5-global--link--Color)', + + // Health/Alert colors https://www.patternfly.org/v4/design-guidelines/styles/colors + Danger = 'var(--pf-v5-global--danger-color--100)', + Info = 'var(--pf-v5-global--info-color--100)', + InfoBackground = 'var(--pf-v5-global--info-color--200)', + Success = 'var(--pf-v5-global--success-color--100)', + SuccessBackground = 'var(--pf-v5-global--success-color--200)', + Warning = 'var(--pf-v5-global--warning-color--100)', + + // chart-specific color values, for rates charts where 4xx is really Danger not Warning + ChartDanger = 'var(--pf-v5-global--danger-color--300)', + ChartOther = 'var(--pf-v5-global--palette-black-1000)', + ChartWarning = 'var(--pf-v5-global--danger-color--100)', + + // PF background colors (compatible with dark mode) + BackgroundColor100 = 'var(--pf-v5-global--BackgroundColor--100)', + BackgroundColor150 = 'var(--pf-v5-global--BackgroundColor--150)', + BackgroundColor200 = 'var(--pf-v5-global--BackgroundColor--200)', + + // PF standard colors (compatible with dark mode) + Color100 = 'var(--pf-v5-global--Color--100)', + Color200 = 'var(--pf-v5-global--Color--200)', + ColorLight100 = 'var(--pf-v5-global--Color--light-100)', + ColorLight200 = 'var(--pf-v5-global--Color--light-200)', + ColorLight300 = 'var(--pf-v5-global--Color--light-300)', + + // PF border colors (compatible with dark mode) + BorderColor100 = 'var(--pf-v5-global--BorderColor--100)', + BorderColor200 = 'var(--pf-v5-global--BorderColor--200)', + BorderColor300 = 'var(--pf-v5-global--BorderColor--300)', + BorderColorLight100 = 'var(--pf-v5-global--BorderColor--light-100)', +} + +// The hex string value of the PF CSS variable +export type PFColorVal = string; + +// Color values used by Kiali outside of CSS (i.e. when we must have the actual hex value) +export type PFColorValues = { + Black100: PFColorVal; + Black150: PFColorVal; + Black200: PFColorVal; + Black300: PFColorVal; + Black400: PFColorVal; + Black500: PFColorVal; + Black600: PFColorVal; + Black700: PFColorVal; + Black1000: PFColorVal; + Blue50: PFColorVal; + Blue300: PFColorVal; + Blue600: PFColorVal; + Red50: PFColorVal; + Orange50: PFColorVal; + Gold400: PFColorVal; + Green400: PFColorVal; + Purple200: PFColorVal; + White: PFColorVal; + + // Health/Alert colors https://www.patternfly.org/v4/design-guidelines/styles/colors + Danger: PFColorVal; + Success: PFColorVal; + Warning: PFColorVal; + + // PF colors (compatible with dark mode) + BackgroundColor100: PFColorVal; + BackgroundColor200: PFColorVal; + + Color100: PFColorVal; + Color200: PFColorVal; + + BorderColor100: PFColorVal; + BorderColor200: PFColorVal; + BorderColor300: PFColorVal; +}; + +export let PFColorVals: PFColorValues; + +/* + Extract color from var + Input : var(--pf-v5-global--palette--black-100) + Output: --pf-v5-global--palette--black-100 + + - In case there is not var then return the same input +*/ +const getColor = (val: string) => { + return val.indexOf('var(') === 0 ? val.split('(').pop()!.split(')')[0] : val; +}; + +export const setPFColorVals = (element: Element) => { + PFColorVals = { + // color values used by kiali + Black100: window + .getComputedStyle(element) + .getPropertyValue(getColor(PFColors.Black100)), + Black150: window + .getComputedStyle(element) + .getPropertyValue(getColor(PFColors.Black150)), + Black200: window + .getComputedStyle(element) + .getPropertyValue(getColor(PFColors.Black200)), + Black300: window + .getComputedStyle(element) + .getPropertyValue(getColor(PFColors.Black300)), + Black400: window + .getComputedStyle(element) + .getPropertyValue(getColor(PFColors.Black400)), + Black500: window + .getComputedStyle(element) + .getPropertyValue(getColor(PFColors.Black500)), + Black600: window + .getComputedStyle(element) + .getPropertyValue(getColor(PFColors.Black600)), + Black700: window + .getComputedStyle(element) + .getPropertyValue(getColor(PFColors.Black700)), + Black1000: window + .getComputedStyle(element) + .getPropertyValue(getColor(PFColors.Black1000)), + Blue50: window + .getComputedStyle(element) + .getPropertyValue(getColor(PFColors.Blue50)), + Blue300: window + .getComputedStyle(element) + .getPropertyValue(getColor(PFColors.Blue300)), + Blue600: window + .getComputedStyle(element) + .getPropertyValue(getColor(PFColors.Blue600)), + Red50: window + .getComputedStyle(element) + .getPropertyValue(getColor(PFColors.Red50)), + Orange50: window + .getComputedStyle(element) + .getPropertyValue(getColor(PFColors.Orange50)), + Gold400: window + .getComputedStyle(element) + .getPropertyValue(getColor(PFColors.Gold400)), + Green400: window + .getComputedStyle(element) + .getPropertyValue(getColor(PFColors.Green400)), + Purple200: window + .getComputedStyle(element) + .getPropertyValue(getColor(PFColors.Purple200)), + White: window + .getComputedStyle(element) + .getPropertyValue(getColor(PFColors.White)), + + // status color values used by kiali + Danger: window + .getComputedStyle(element) + .getPropertyValue(getColor(PFColors.Danger)), + Success: window + .getComputedStyle(element) + .getPropertyValue(getColor(PFColors.Success)), + Warning: window + .getComputedStyle(element) + .getPropertyValue(getColor(PFColors.Warning)), + + // PF colors (compatible with dark mode) + BackgroundColor100: window + .getComputedStyle(element) + .getPropertyValue(getColor(PFColors.BackgroundColor100)), + BackgroundColor200: window + .getComputedStyle(element) + .getPropertyValue(getColor(PFColors.BackgroundColor200)), + + Color100: window + .getComputedStyle(element) + .getPropertyValue(getColor(PFColors.Color100)), + Color200: window + .getComputedStyle(element) + .getPropertyValue(getColor(PFColors.Color200)), + + BorderColor100: window + .getComputedStyle(element) + .getPropertyValue(getColor(PFColors.BorderColor100)), + BorderColor200: window + .getComputedStyle(element) + .getPropertyValue(getColor(PFColors.BorderColor200)), + BorderColor300: window + .getComputedStyle(element) + .getPropertyValue(getColor(PFColors.BorderColor300)), + }; +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/Pf/PfTitle.tsx b/workspaces/kiali/plugins/kiali/src/components/Pf/PfTitle.tsx new file mode 100644 index 0000000000..0405ae1869 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Pf/PfTitle.tsx @@ -0,0 +1,88 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ + +import * as React from 'react'; + +import { + ApplicationsIcon, + BundleIcon, + ServiceIcon, +} from '@patternfly/react-icons'; + +import { kialiStyle } from '../../styles/StyleUtils'; +import { MissingSidecar } from '../MissingSidecar/MissingSidecar'; + +const PfTitleStyle = kialiStyle({ + fontSize: '19px', + fontWeight: 400, + margin: '20px 0', + padding: '0', +}); + +interface PfTitleProps { + location?: { + pathname: string; + search: string; + }; + istio?: boolean; +} + +const namespaceRegex = + /namespaces\/([a-z0-9-]+)\/([a-z0-9-]+)\/([a-z0-9-]+)(\/([a-z0-9-]+))?(\/([a-z0-9-]+))?/; + +export const PfTitle = (props: PfTitleProps) => { + const [namespace, setNamespace] = React.useState(''); + const [name, setName] = React.useState(''); + const [icon, setIcon] = React.useState(<>); + + const doRefresh = () => { + let typeP = ''; + if (props.location) { + const match = props.location.pathname.match(namespaceRegex) || []; + setNamespace(match[1]); + typeP = match[2]; + setName(match[3]); + } + switch (typeP) { + case 'services': + setIcon(); + break; + case 'workloads': + setIcon(); + break; + case 'applications': + setIcon(); + break; + default: + } + }; + + React.useEffect(() => { + doRefresh(); + // eslint-disable-next-line + }, []); + + return ( +

    + {icon} {name} + {name && props.istio !== undefined && !props.istio && ( + + + + )} +

    + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/Router.tsx b/workspaces/kiali/plugins/kiali/src/components/Router.tsx new file mode 100644 index 0000000000..2583890673 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Router.tsx @@ -0,0 +1,198 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React from 'react'; +import { Route, Routes } from 'react-router-dom'; + +import { Entity } from '@backstage/catalog-model'; +import { Content, Page } from '@backstage/core-components'; +import { useEntity } from '@backstage/plugin-catalog-react'; + +import { AppDetailsPage } from '../pages/AppDetails/AppDetailsPage'; +import { AppListPage } from '../pages/AppList/AppListPage'; +import { IstioConfigDetailsPage } from '../pages/IstioConfigDetails/IstioConfigDetailsPage'; +import { IstioConfigListPage } from '../pages/IstioConfigList/IstioConfigListPage'; +import { KialiNoPath } from '../pages/Kiali'; +import { KialiHeader } from '../pages/Kiali/Header/KialiHeader'; +import { KialiHeaderEntity } from '../pages/Kiali/Header/KialiHeaderEntity'; +import { KialiTabs } from '../pages/Kiali/Header/KialiTabs'; +import { KialiEntity } from '../pages/Kiali/KialiEntity'; +import { KialiNoAnnotation } from '../pages/Kiali/KialiNoAnnotation'; +import { OverviewPage } from '../pages/Overview/OverviewPage'; +import { ServiceDetailsPage } from '../pages/ServiceDetails/ServiceDetailsPage'; +import { ServiceListPage } from '../pages/ServiceList/ServiceListPage'; +import TrafficGraphPage from '../pages/TrafficGraph/TrafficGraphPage'; +import { WorkloadDetailsPage } from '../pages/WorkloadDetails/WorkloadDetailsPage'; +import { WorkloadListPage } from '../pages/WorkloadList/WorkloadListPage'; +import { pluginName } from '../plugin'; +import { + appDetailRouteRef, + appsRouteRef, + istioConfigDetailRouteRef, + istioConfigRouteRef, + overviewRouteRef, + servicesDetailRouteRef, + servicesRouteRef, + trafficGraphRouteRef, + workloadsDetailRouteRef, + workloadsRouteRef, +} from '../routes'; +import { KialiProvider } from '../store/KialiProvider'; +import { TechPreviewWarning } from './Banners/TechPreviewWarning'; + +export const KIALI_ANNOTATION = 'kiali.io/id'; +export const KIALI_NAMESPACE = 'kiali.io/namespace'; +export const KIALI_LABEL_SELECTOR_QUERY_ANNOTATION = 'kiali.io/label-selector'; + +export const ANNOTATION_SUPPORTED = [KIALI_NAMESPACE]; + +const validateAnnotation = (entity: Entity) => { + let validated = false; + ANNOTATION_SUPPORTED.forEach(key => { + if (entity.metadata.annotations?.[key]) { + validated = true; + } + }); + return validated; +}; + +/* + Router for entity +*/ + +export const getEntityRoutes = () => { + return ( + + } /> + } + /> + } + /> + } + /> + } + /> + } + /> + } /> + + ); +}; +export const EmbeddedRouter = () => { + const { entity } = useEntity(); + + return !validateAnnotation(entity) ? ( + + ) : ( + + + + {getEntityRoutes()} + + ); +}; + +export const getRoutes = (dev?: boolean) => { + return ( + + } /> + } + /> + } + /> + } + /> + } + /> + } + /> + } + /> + } + /> + } + /> + } + /> + } + /> + {dev && ( + } /> + )} + } /> + + ); +}; + +export const Router = () => { + return ( + + + + + + + {getRoutes()} + + + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/SimpleTable.tsx b/workspaces/kiali/plugins/kiali/src/components/SimpleTable.tsx new file mode 100644 index 0000000000..3167b0fb09 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/SimpleTable.tsx @@ -0,0 +1,109 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { + SortDirection, + Table, + TableBody, + TableCell, + TableCellProps, + TableHead, + TableRow, +} from '@material-ui/core'; + +import { kialiStyle } from '../styles/StyleUtils'; + +export interface SortableTh extends TableCellProps { + sortable: boolean; +} + +export type tRow = { + cells: React.JSX.Element[]; + key?: string; + className?: string; +}[]; + +interface SimpleTableProps { + className?: string; + columns: SortableTh[] | TableCellProps[]; + emptyState?: React.ReactNode; + label: string; + rows: tRow; + sort?: (columnIndex: number) => TableCellProps['sortDirection']; + sortBy?: SortDirection; + variant?: string; + verticalAlign?: string; +} + +export const SimpleTable: React.FC = ( + props: SimpleTableProps, +) => { + const tdStyle = kialiStyle({ + verticalAlign: props.verticalAlign ?? 'baseline', + }); + + return ( + + {!props.emptyState && ( + + + {props.columns.map( + (column: SortableTh | TableCellProps, index: number) => ( + + {column.title} + + ), + )} + + + )} + + {props.rows.length > 0 ? ( + props.rows.map((row, rowIndex) => ( + + {row.cells?.map((cell: React.ReactNode, colIndex: number) => ( + + {cell} + + ))} + + )) + ) : ( + <> + {props.emptyState && ( + + + {props.emptyState} + + + )} + + )} + +
    + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/Tab/TabPanel.tsx b/workspaces/kiali/plugins/kiali/src/components/Tab/TabPanel.tsx new file mode 100644 index 0000000000..2a40c56e5c --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Tab/TabPanel.tsx @@ -0,0 +1,69 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { Box, makeStyles, Typography } from '@material-ui/core'; +import PropTypes from 'prop-types'; + +export const useStyles = makeStyles(theme => ({ + root: { + flexGrow: 1, + backgroundColor: theme.palette.background.paper, + }, +})); + +export function a11yProps(index: number) { + return { + id: `simple-tab-${index}`, + 'aria-controls': `simple-tabpanel-${index}`, + }; +} + +export const TabPanel = (props: { + [x: string]: any; + children: any; + value: any; + index: any; +}) => { + const { children, value, index, ...other } = props; + + return ( + + ); +}; + +TabPanel.propTypes = { + children: PropTypes.node, + index: PropTypes.any.isRequired, + value: PropTypes.any.isRequired, +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/TextOrLink.tsx b/workspaces/kiali/plugins/kiali/src/components/TextOrLink.tsx new file mode 100644 index 0000000000..d30b06cde9 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/TextOrLink.tsx @@ -0,0 +1,44 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +type TextOrLinkProps = { + text: string; + urlTruncate?: number; +}; + +export const TextOrLink: React.FC = ( + props: TextOrLinkProps, +) => { + if (props.text.startsWith('http://') || props.text.startsWith('https://')) { + let truncated = props.text; + + if (props.urlTruncate && props.text.length > props.urlTruncate) { + truncated = `${props.text.substring( + 0, + props.urlTruncate / 2, + )}...${props.text.substring(props.text.length - props.urlTruncate / 2)}`; + } + + return ( + + {truncated} + + ); + } + + return <>{props.text}; +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/Time/LocalTime.tsx b/workspaces/kiali/plugins/kiali/src/components/Time/LocalTime.tsx new file mode 100644 index 0000000000..eb56380727 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Time/LocalTime.tsx @@ -0,0 +1,36 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { toString } from './Utils'; + +interface TimeProps { + time: string; +} + +export class LocalTime extends React.Component { + render() { + let renderedTime: string; + + if (this.props.time) { + renderedTime = toString(new Date(this.props.time).valueOf()); + } else { + renderedTime = '-'; + } + + return <>{renderedTime}; + } +} diff --git a/workspaces/kiali/plugins/kiali/src/components/Time/TimeDurationComponent.tsx b/workspaces/kiali/plugins/kiali/src/components/Time/TimeDurationComponent.tsx new file mode 100644 index 0000000000..1aae9288bf --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Time/TimeDurationComponent.tsx @@ -0,0 +1,48 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { Select } from '@backstage/core-components'; + +import { HistoryManager, URLParam } from '../../app/History'; +import { getDurationType } from '../../pages/Overview/OverviewToolbar'; + +type TimeControlsProps = { + disabled: boolean; + id: string; + duration: string; + label: string; + setDuration: React.Dispatch>; + supportsReplay?: boolean; +}; + +export const TimeDurationComponent: React.FC = ( + props: TimeControlsProps, +) => { + const updateDurationType = (duration: number) => { + HistoryManager.setParam(URLParam.DURATION, duration.toString()); + props.setDuration(duration); + }; + + return ( + + {Object.keys(props.options).map(key => { + return ( + + { + // @ts-ignore + props.options[key] + } + + ); + })} + + ); + return ( + <> + {props.nameDropdown && ( + {props.nameDropdown} + )} + {props.tooltip ? ( + {props.tooltip}}> + {dropdownButton} + + ) : ( + dropdownButton + )} + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/Validations/Validation.tsx b/workspaces/kiali/plugins/kiali/src/components/Validations/Validation.tsx new file mode 100644 index 0000000000..fab0882d1a --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Validations/Validation.tsx @@ -0,0 +1,131 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React, { CSSProperties } from 'react'; + +import { Typography } from '@material-ui/core'; +import { + CheckCircleIcon, + ExclamationCircleIcon, + ExclamationTriangleIcon, + InfoCircleIcon, +} from '@patternfly/react-icons'; +import { SVGIconProps } from '@patternfly/react-icons/dist/js/createIcon'; + +import { kialiStyle } from '../../styles/StyleUtils'; +import { ValidationTypes } from '../../types/IstioObjects'; +import { PFColors } from '../Pf/PfColors'; + +const validationStyle = kialiStyle({ + textAlign: 'left', + $nest: { + '&:last-child p': { + margin: 0, + }, + }, +}); + +type Props = ValidationDescription & { + messageColor?: boolean; + size?: string; + textStyle?: React.CSSProperties; + iconStyle?: React.CSSProperties; +}; + +export type ValidationDescription = { + severity: ValidationTypes; + message?: string; +}; + +export type ValidationType = { + name: string; + color: string; + icon: React.ComponentClass; +}; + +const ErrorValidation: ValidationType = { + name: 'Not Valid', + color: PFColors.Danger, + icon: ExclamationCircleIcon, +}; + +const WarningValidation: ValidationType = { + name: 'Warning', + color: PFColors.Warning, + icon: ExclamationTriangleIcon, +}; + +const InfoValidation: ValidationType = { + name: 'Info', + color: PFColors.Info, + icon: InfoCircleIcon, +}; + +const CorrectValidation: ValidationType = { + name: 'Valid', + color: PFColors.Success, + icon: CheckCircleIcon, +}; + +export const severityToValidation: { [severity: string]: ValidationType } = { + error: ErrorValidation, + warning: WarningValidation, + correct: CorrectValidation, + info: InfoValidation, +}; + +export const Validation = (props: Props) => { + const validation = () => { + return severityToValidation[props.severity]; + }; + + const severityColor = () => { + return { color: validation().color }; + }; + + const textStyle = () => { + const colorMessage = props.messageColor || false; + const textStyleT = props.textStyle || {}; + if (colorMessage) { + Object.assign(textStyleT, severityColor()); + } + return textStyleT; + }; + + const iconStyle = () => { + const iconStyleP = props.iconStyle ? { ...props.iconStyle } : {}; + const defaultStyle: CSSProperties = { + verticalAlign: '-0.125em', + marginRight: '0.5rem', + }; + Object.assign(iconStyleP, severityColor()); + Object.assign(iconStyleP, defaultStyle); + return iconStyleP; + }; + + const IconComponent = validation().icon; + const hasMessage = !!props.message; + if (hasMessage) { + return ( +
    + + {' '} + {props.message} + +
    + ); + } + return ; +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/Validations/ValidationList.tsx b/workspaces/kiali/plugins/kiali/src/components/Validations/ValidationList.tsx new file mode 100644 index 0000000000..02313ffadf --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Validations/ValidationList.tsx @@ -0,0 +1,54 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React from 'react'; + +import { Tooltip } from '@material-ui/core'; + +import { ObjectCheck, ValidationTypes } from '../../types/IstioObjects'; +import { highestSeverity } from '../../types/ServiceInfo'; +import { Validation } from './Validation'; + +type ValidationListProps = { + checks?: ObjectCheck[]; + tooltipPosition?: string; +}; + +export const ValidationList: React.FC = ( + props: ValidationListProps, +) => { + const content = (props.checks ?? []).map((check, index) => { + return ( + + ); + }); + + const severity = highestSeverity(props.checks ?? []); + const isValid = severity === ValidationTypes.Correct; + + const tooltip = ( + + + + + + ); + + return tooltip; +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/Validations/ValidationObjectSummary.tsx b/workspaces/kiali/plugins/kiali/src/components/Validations/ValidationObjectSummary.tsx new file mode 100644 index 0000000000..f68c748545 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Validations/ValidationObjectSummary.tsx @@ -0,0 +1,54 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { + ObjectValidation, + StatusCondition, + ValidationTypes, +} from '../../types/IstioObjects'; +import { ValidationSummary } from './ValidationSummary'; + +interface Props { + id: string; + reconciledCondition?: StatusCondition; + validations: ObjectValidation[]; +} + +export const ValidationObjectSummary: React.FC = (props: Props) => { + const numberOfChecks = (type: ValidationTypes): number => { + let numCheck = 0; + + props.validations.forEach(validation => { + if (validation.checks) { + numCheck += validation.checks.filter(i => i.severity === type).length; + } + }); + + return numCheck; + }; + + return ( + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/Validations/ValidationServiceSummary.tsx b/workspaces/kiali/plugins/kiali/src/components/Validations/ValidationServiceSummary.tsx new file mode 100644 index 0000000000..ebb841c0b3 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Validations/ValidationServiceSummary.tsx @@ -0,0 +1,47 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { ObjectValidation, ValidationTypes } from '../../types/IstioObjects'; +import { ValidationSummary } from './ValidationSummary'; + +interface Props { + id: string; + validations: ObjectValidation[]; +} + +export const ValidationServiceSummary: React.FC = (props: Props) => { + const numberOfChecks = (type: ValidationTypes): number => { + let numCheck = 0; + + props.validations.forEach(validation => { + if (validation.checks) { + numCheck += validation.checks.filter(i => i.severity === type).length; + } + }); + + return numCheck; + }; + + return ( + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/Validations/ValidationStack.tsx b/workspaces/kiali/plugins/kiali/src/components/Validations/ValidationStack.tsx new file mode 100644 index 0000000000..fa72b77636 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Validations/ValidationStack.tsx @@ -0,0 +1,60 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React from 'react'; + +import { kialiStyle } from '../../styles/StyleUtils'; +import { ObjectCheck, ValidationTypes } from '../../types/IstioObjects'; +import { highestSeverity } from '../../types/ServiceInfo'; +import { PFColors } from '../Pf/PfColors'; +import { Validation } from './Validation'; + +type ValidationStackProps = { + checks?: ObjectCheck[]; +}; + +const colorStyle = kialiStyle({ color: PFColors.White }); +const titleStyle = kialiStyle({ color: PFColors.White, fontWeight: 'bold' }); + +export const ValidationStack: React.FC = ( + props: ValidationStackProps, +) => { + const validationList = (): React.ReactNode[] => { + return (props.checks ?? []).map((check, index) => { + return ( +
    + +
    + ); + }); + }; + + const severity = highestSeverity(props.checks ?? []); + const isValid = severity === ValidationTypes.Correct; + + if (!isValid) { + return ( +
    + Istio validations + {validationList()} +
    + ); + } + return null; +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/Validations/ValidationSummary.tsx b/workspaces/kiali/plugins/kiali/src/components/Validations/ValidationSummary.tsx new file mode 100644 index 0000000000..eb067a2114 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/Validations/ValidationSummary.tsx @@ -0,0 +1,153 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; +import { CSSProperties } from 'react'; + +import { Tooltip, Typography } from '@material-ui/core'; + +import { kialiStyle } from '../../styles/StyleUtils'; +import { StatusCondition, ValidationTypes } from '../../types/IstioObjects'; +import { Validation } from './Validation'; + +interface Props { + id: string; + reconciledCondition?: StatusCondition; + errors: number; + warnings: number; + objectCount?: number; + style?: CSSProperties; + type?: string; +} + +const tooltipListStyle = kialiStyle({ + textAlign: 'left', + border: 0, + padding: '0 0 0 0', + margin: '0 0 0 0', +}); + +const tooltipSentenceStyle = kialiStyle({ + textAlign: 'center', + border: 0, + padding: '0 0 0 0', + margin: '0 0 0 0', +}); + +export const ValidationSummary = (props: Props) => { + const getTypeMessage = (count: number, type: ValidationTypes): string => { + return count > 1 ? `${count} ${type}s found` : `${count} ${type} found`; + }; + + const severitySummary = () => { + const issuesMessages: string[] = []; + + if (props.errors > 0) { + issuesMessages.push(getTypeMessage(props.errors, ValidationTypes.Error)); + } + + if (props.warnings > 0) { + issuesMessages.push( + getTypeMessage(props.warnings, ValidationTypes.Warning), + ); + } + + if (issuesMessages.length === 0) { + issuesMessages.push('No issues found'); + } + + return issuesMessages; + }; + + const severity = () => { + if (props.errors > 0) { + return ValidationTypes.Error; + } else if (props.warnings > 0) { + return ValidationTypes.Warning; + } + return ValidationTypes.Correct; + }; + + const tooltipNA = () => { + return ( + + No Istio config objects found + + ); + }; + + const tooltipNoValidationAvailable = () => { + return ( + + No Istio config validation available + + ); + }; + + const tooltipSummary = () => { + return ( + <> + + Istio config objects analyzed: {props.objectCount} + +
    + {severitySummary().map(cat => ( +
    {cat}
    + ))} +
    + {props.reconciledCondition?.status && ( + + The object is reconciled + + )} + + ); + }; + + const tooltipContent = () => { + if (props.objectCount !== undefined) { + if (props.objectCount === 0) { + return tooltipNA(); + } + return tooltipSummary(); + } + return tooltipNoValidationAvailable(); + }; + + const tooltipBase = () => { + return props.objectCount === undefined || props.objectCount > 0 ? ( + + ) : ( +
    N/A
    + ); + }; + + return ( + + {tooltipBase()} + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/VirtualList/Config.tsx b/workspaces/kiali/plugins/kiali/src/components/VirtualList/Config.tsx new file mode 100644 index 0000000000..df941e15ee --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/VirtualList/Config.tsx @@ -0,0 +1,431 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { StatefulFilters } from '../../components/Filters/StatefulFilters'; +import { serverConfig } from '../../config'; +import { isGateway, isWaypoint } from '../../helpers/LabelFilterHelper'; +import { AppListItem } from '../../types/AppList'; +import { Health } from '../../types/Health'; +import { IstioConfigItem } from '../../types/IstioConfigList'; +import { NamespaceInfo } from '../../types/NamespaceInfo'; +import { ServiceListItem } from '../../types/ServiceList'; +import { WorkloadListItem } from '../../types/Workload'; +import { PFBadges, PFBadgeType } from '../Pf/PfBadges'; +import * as Renderers from './Renderers'; + +export type SortResource = WorkloadListItem | ServiceListItem | AppListItem; +export type TResource = SortResource | IstioConfigItem; +export type RenderResource = TResource | NamespaceInfo; +export type Renderer = ( + item: R, + config: Resource, + badge: PFBadgeType, + health?: Health, + statefulFilter?: React.RefObject, + view?: string, + linkColor?: string, +) => JSX.Element | undefined; + +export type ResourceType = { + name: string; + param?: string; + renderer?: Renderer; + sortable: boolean; + textCenter?: boolean; + title: string; + width?: 10 | 15 | 20 | 25 | 30 | 35 | 40 | 45 | 50 | 60 | 70 | 80 | 90 | 100; +}; + +export type Resource = { + badge?: PFBadgeType; + caption?: string; + columns: ResourceType[]; + name: string; +}; + +type IstioConfigType = { + badge: PFBadgeType; + name: string; + url: string; +}; + +export const IstioTypes: { [type: string]: IstioConfigType } = { + adapter: { name: 'Adapter', url: 'adapters', badge: PFBadges.Adapter }, + attributemanifest: { + name: 'AttributeManifest', + url: 'attributemanifests', + badge: PFBadges.AttributeManifest, + }, + authorizationpolicy: { + name: 'AuthorizationPolicy', + url: 'authorizationpolicies', + badge: PFBadges.AuthorizationPolicy, + }, + clusterrbacconfig: { + name: 'ClusterRbacConfig', + url: 'clusterrbacconfigs', + badge: PFBadges.ClusterRBACConfig, + }, + destinationrule: { + name: 'DestinationRule', + url: 'destinationrules', + badge: PFBadges.DestinationRule, + }, + envoyfilter: { + name: 'EnvoyFilter', + url: 'envoyfilters', + badge: PFBadges.EnvoyFilter, + }, + gateway: { name: 'Gateway', url: 'gateways', badge: PFBadges.Gateway }, + grpcroute: { + name: 'GRPCRoute', + url: 'k8sgrpcroutes', + badge: PFBadges.GRPCRoute, + }, + handler: { name: 'Handler', url: 'handlers', badge: PFBadges.Handler }, + httproute: { + name: 'HTTPRoute', + url: 'k8shttproutes', + badge: PFBadges.HTTPRoute, + }, + instance: { name: 'Instance', url: 'instances', badge: PFBadges.Instance }, + k8sgateway: { + name: 'Gateway (K8s)', + url: 'k8sgateways', + badge: PFBadges.K8sGateway, + }, + k8sgrpcroute: { + name: 'GRPCRoute (K8s)', + url: 'k8sgrpcroutes', + badge: PFBadges.K8sGRPCRoute, + }, + k8shttproute: { + name: 'HTTPRoute (K8s)', + url: 'k8shttproutes', + badge: PFBadges.K8sHTTPRoute, + }, + k8sreferencegrant: { + name: 'ReferenceGrant (K8s)', + url: 'k8sreferencegrants', + badge: PFBadges.K8sReferenceGrant, + }, + k8stcproute: { + name: 'TCPRoute (K8s)', + url: 'k8stcproutes', + badge: PFBadges.K8sTCPRoute, + }, + k8stlsroute: { + name: 'TLSRoute (K8s)', + url: 'k8stlsroutes', + badge: PFBadges.K8sTLSRoute, + }, + meshpolicy: { + name: 'MeshPolicy', + url: 'meshpolicies', + badge: PFBadges.MeshPolicy, + }, + peerauthentication: { + name: 'PeerAuthentication', + url: 'peerauthentications', + badge: PFBadges.PeerAuthentication, + }, + policy: { name: 'Policy', url: 'policies', badge: PFBadges.Policy }, + rbacconfig: { + name: 'RbacConfig', + url: 'rbacconfigs', + badge: PFBadges.RBACConfig, + }, + requestauthentication: { + name: 'RequestAuthentication', + url: 'requestauthentications', + badge: PFBadges.RequestAuthentication, + }, + // TODO should be merged with k8sreferencegrant + referencegrant: { + name: 'ReferenceGrant (K8s)', + url: 'k8sreferencegrants', + badge: PFBadges.K8sReferenceGrant, + }, + tcproute: { + name: 'TCPRoute (K8s)', + url: 'k8stcproutes', + badge: PFBadges.K8sTCPRoute, + }, + tlsroute: { + name: 'TLSRoute (K8s)', + url: 'k8stlsroutes', + badge: PFBadges.K8sTLSRoute, + }, + rule: { name: 'Rule', url: 'rules', badge: PFBadges.Rule }, + serviceentry: { + name: 'ServiceEntry', + url: 'serviceentries', + badge: PFBadges.ServiceEntry, + }, + servicerole: { + name: 'ServiceRole', + url: 'serviceroles', + badge: PFBadges.ServiceRole, + }, + servicerolebinding: { + name: 'ServiceRoleBinding', + url: 'servicerolebindings', + badge: PFBadges.ServiceRoleBinding, + }, + sidecar: { name: 'Sidecar', url: 'sidecars', badge: PFBadges.Sidecar }, + telemetry: { + name: 'Telemetry', + url: 'telemetries', + badge: PFBadges.Telemetry, + }, + template: { name: 'Template', url: 'templates', badge: PFBadges.Template }, + virtualservice: { + name: 'VirtualService', + url: 'virtualservices', + badge: PFBadges.VirtualService, + }, + wasmplugin: { + name: 'WasmPlugin', + url: 'wasmplugins', + badge: PFBadges.WasmPlugin, + }, + workloadentry: { + name: 'WorkloadEntry', + url: 'workloadentries', + badge: PFBadges.WorkloadEntry, + }, + workloadgroup: { + name: 'WorkloadGroup', + url: 'workloadgroups', + badge: PFBadges.WorkloadGroup, + }, +}; + +// General +const item: ResourceType = { + name: 'Item', + param: 'wn', + title: 'Name', + sortable: true, + width: 30, + renderer: Renderers.item, +}; + +const serviceItem: ResourceType = { + name: 'Item', + param: 'sn', + title: 'Name', + sortable: true, + width: 30, + renderer: Renderers.item, +}; + +const istioItem: ResourceType = { + name: 'Item', + param: 'in', + title: 'Name', + sortable: true, + renderer: Renderers.item, +}; + +const cluster: ResourceType = { + name: 'Cluster', + param: 'cl', + title: 'Cluster', + sortable: true, + width: 15, + renderer: Renderers.cluster, +}; + +const namespace: ResourceType = { + name: 'Namespace', + param: 'ns', + title: 'Namespace', + sortable: true, + width: 20, + renderer: Renderers.namespace, +}; + +const labels: ResourceType = { + name: 'Labels', + param: 'lb', + title: 'Labels', + sortable: false, + width: 20, + renderer: Renderers.labels, +}; + +const health: ResourceType = { + name: 'Health', + param: 'he', + title: 'Health', + sortable: true, + width: 15, + renderer: Renderers.health, +}; + +const details: ResourceType = { + name: 'Details', + param: 'is', + title: 'Details', + sortable: true, + width: 15, + renderer: Renderers.details, +}; + +const serviceConfiguration: ResourceType = { + name: 'Configuration', + param: 'cv', + title: 'Configuration', + sortable: true, + width: 20, + renderer: Renderers.serviceConfiguration, +}; + +const istioObjectConfiguration: ResourceType = { + name: 'Configuration', + param: 'cv', + title: 'Configuration', + sortable: true, + width: 20, + renderer: Renderers.istioConfiguration, +}; + +const workloadType: ResourceType = { + name: 'WorkloadType', + param: 'wt', + title: 'Type', + sortable: true, + renderer: Renderers.workloadType, +}; + +const istioType: ResourceType = { + name: 'IstioType', + param: 'it', + title: 'Type', + sortable: true, + renderer: Renderers.istioType, +}; + +// NamespaceInfo +const tlsStatus: ResourceType = { + name: 'TLS', + param: 'tls', + title: 'TLS', + sortable: true, + width: 10, + renderer: Renderers.tls, +}; + +const nsItem: ResourceType = { + name: 'Namespace', + param: 'ns', + title: 'Namespace', + sortable: true, + renderer: Renderers.nsItem, +}; + +const istioConfiguration: ResourceType = { + name: 'IstioConfiguration', + param: 'ic', + title: 'Config', + sortable: true, + width: 10, + renderer: Renderers.istioConfig, +}; + +const status: ResourceType = { + name: 'Status', + param: 'h', + title: 'Status', + sortable: true, + width: 50, + textCenter: true, + renderer: Renderers.status, +}; + +const namespaces: Resource = { + name: 'namespaces', + columns: [tlsStatus, nsItem, cluster, istioConfiguration, labels, status], + badge: PFBadges.Namespace, +}; + +const workloads: Resource = { + name: 'workloads', + columns: [health, item, namespace, cluster, workloadType, labels, details], + badge: PFBadges.Workload, +}; + +const applications: Resource = { + name: 'applications', + columns: [health, item, namespace, cluster, labels, details], + badge: PFBadges.App, +}; + +const services: Resource = { + name: 'services', + columns: [ + health, + serviceItem, + namespace, + cluster, + labels, + serviceConfiguration, + details, + ], + badge: PFBadges.Service, +}; + +const istio: Resource = { + name: 'istio', + columns: [istioItem, namespace, cluster, istioType, istioObjectConfiguration], + badge: PFBadges.App, +}; + +type Config = { + applications: Resource; + istio: Resource; + overview: Resource; + services: Resource; + workloads: Resource; +}; + +const conf: Config = { + applications: applications, + istio: istio, + overview: namespaces, + services: services, + workloads: workloads, +}; + +export const isIstioNamespace = (ns: string): boolean => { + if (ns === serverConfig.istioNamespace) { + return true; + } + return false; +}; + +export const hasMissingSidecar = (r: SortResource): boolean => { + return ( + !isIstioNamespace(r.namespace) && + !r.istioSidecar && + !isGateway(r.labels) && + !isWaypoint(r.labels) + ); +}; + +export const config: Config = conf; diff --git a/workspaces/kiali/plugins/kiali/src/components/VirtualList/Renderers.tsx b/workspaces/kiali/plugins/kiali/src/components/VirtualList/Renderers.tsx new file mode 100644 index 0000000000..6b1279e872 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/VirtualList/Renderers.tsx @@ -0,0 +1,527 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { Link } from '@backstage/core-components'; + +import { + Button, + Chip, + Drawer, + IconButton, + TableCell, + Tooltip, +} from '@material-ui/core'; +// eslint-disable-next-line no-restricted-imports +import { Close } from '@material-ui/icons'; + +import { KialiIcon, serverConfig } from '../../config'; +import { isWaypoint } from '../../helpers/LabelFilterHelper'; +import { infoStyle } from '../../pages/Overview/OverviewCard/CanaryUpgradeProgress'; +import { ControlPlaneBadge } from '../../pages/Overview/OverviewCard/ControlPlaneBadge'; +import { OverviewCardSparklineCharts } from '../../pages/Overview/OverviewCard/OverviewCardSparklineCharts'; +import { Health } from '../../types/Health'; +import { IstioConfigItem } from '../../types/IstioConfigList'; +import { ValidationStatus } from '../../types/IstioObjects'; +import { ComponentStatus } from '../../types/IstioStatus'; +import { NamespaceInfo } from '../../types/NamespaceInfo'; +import { ServiceListItem } from '../../types/ServiceList'; +import { DRAWER, ENTITY } from '../../types/types'; +import { WorkloadListItem } from '../../types/Workload'; +import { BackstageObjectLink } from '../../utils/backstageLinks'; +import { getReconciliationCondition } from '../../utils/IstioConfigUtils'; +import { AppDetailsDrawer } from '../Drawers/AppDetailsDrawer'; +import { ServiceDetailsDrawer } from '../Drawers/ServiceDetailsDrawer'; +import { WorkloadDetailsDrawer } from '../Drawers/WorkloadDetailsDrawer'; +import { StatefulFilters } from '../Filters/StatefulFilters'; +import { HealthIndicator } from '../Health/HealthIndicator'; +import { NamespaceMTLSStatus } from '../MTls/NamespaceMTLSStatus'; +import { PFBadge, PFBadges, PFBadgeType } from '../Pf/PfBadges'; +import { ValidationObjectSummary } from '../Validations/ValidationObjectSummary'; +import { ValidationServiceSummary } from '../Validations/ValidationServiceSummary'; +import { ValidationSummary } from '../Validations/ValidationSummary'; +import { + IstioTypes, + Renderer, + Resource, + SortResource, + TResource, +} from './Config'; + +const topPosition = 'top'; + +// Cells +export const actionRenderer = ( + key: string, + action: React.ReactNode, +): React.ReactNode => { + return ( + + {action} + + ); +}; + +const DrawerDiv = ({ + name, + namespace, + config, +}: { + name: string; + namespace: string; + config: string; +}) => { + const [isOpen, toggleDrawer] = React.useState(false); + + const DrawerContent = ({ + toggleDrawer2, + }: { + toggleDrawer2: (isOpen: boolean) => void; + }) => { + return ( +
    +
    + toggleDrawer2(false)} + color="inherit" + style={{ right: '0', position: 'absolute', top: '5px' }} + > + + +
    +
    +
    + {config === 'workloads' && ( + + )} + {config === 'services' && ( + + )} + {config === 'applications' && ( + + )} +
    +
    + ); + }; + + return ( + <> + + toggleDrawer(false)}> + + + + ); +}; + +export const item: Renderer = ( + resource: TResource, + config: Resource, + badge: PFBadgeType, + _?: Health, + __?: React.RefObject, + view?: string, + linkColor?: string, +): React.ReactElement => { + const key = `link_definition_${config.name}_${resource.namespace}_${resource.name}`; + let serviceBadge = badge; + + if ('serviceRegistry' in resource && resource.serviceRegistry) { + switch (resource.serviceRegistry) { + case 'External': + serviceBadge = PFBadges.ExternalService; + break; + case 'Federation': + serviceBadge = PFBadges.FederatedService; + break; + default: // TODO + serviceBadge = PFBadges.ExternalService; + break; + } + } + + if (view === DRAWER) { + return ( + + + + ); + } + return ( + + {view !== ENTITY && view !== DRAWER && ( + + )} + + {resource.name} + + + ); +}; + +export const cluster: Renderer = (resource: TResource) => { + return ( + + + {resource.cluster} + + ); +}; + +export const namespace: Renderer = ( + resource: TResource, + _: Resource, + __: PFBadgeType, + ___?: Health, + ____?: React.RefObject, + view?: string, +) => { + return ( + + {view !== ENTITY && view !== DRAWER && ( + + )} + {resource.namespace} + + ); +}; + +export const labels: Renderer = ( + resource: SortResource | NamespaceInfo, + _: Resource, + __: PFBadgeType, + ___?: Health, + ____?: React.RefObject, + view?: string, +) => { + // @ts-ignore + let path = window.location.pathname; + path = path.substring(path.lastIndexOf('/console') + '/console'.length + 1); + + const labelsView = resource.labels ? ( + Object.entries(resource.labels).map(([key, value], _i) => { + return ; + }) + ) : ( + <> + ); + + const labelsWrap =
    {labelsView}
    ; + + return ( + + {(view === ENTITY || view === DRAWER) && resource.labels && ( + + + + )} + {view !== ENTITY && view !== DRAWER && labelsView} + + ); +}; + +export const health: Renderer = ( + resource: TResource, + __: Resource, + _: PFBadgeType, + healthI?: Health, +) => { + return ( + + {healthI && } + + ); +}; + +export const details: Renderer = ( + resource: WorkloadListItem | ServiceListItem, +) => { + const isAmbientWaypoint = isWaypoint(resource.labels); + + return ( + +
      + {resource.istioReferences?.length > 0 && + resource.istioReferences.map(ir => ( +
    • + + {ir.name} +
    • + ))} + {isAmbientWaypoint && ( +
    • + + Waypoint Proxy + + + +
    • + )} +
    +
    + ); +}; + +export const tls: Renderer = (ns: NamespaceInfo) => { + return ( + + {ns.tlsStatus ? ( + + ) : undefined} + + ); +}; + +export const serviceConfiguration: Renderer = ( + resource: ServiceListItem, + _: Resource, +) => { + const validation = resource.validation; + + return ( + + {validation ? ( + + ) : ( + <>N/A + )} + + ); +}; + +export const istioConfiguration: Renderer = ( + resource: IstioConfigItem, + _: Resource, +) => { + const validation = resource.validation; + const reconciledCondition = getReconciliationCondition(resource); + + return ( + + {validation ? ( + + + + ) : ( + <>N/A + )} + + ); +}; + +export const workloadType: Renderer = ( + resource: WorkloadListItem, +) => { + return ( + + {resource.type} + + ); +}; + +export const istioType: Renderer = ( + resource: IstioConfigItem, +) => { + const type = resource.type; + const object = IstioTypes[type]; + + return ( + + {object.name} + + ); +}; + +export const nsItem: Renderer = ( + ns: NamespaceInfo, + _config: Resource, + badge: PFBadgeType, +) => { + // TODO: Status + const istioStatus: ComponentStatus[] = []; + + return ( + + + {ns.name} + {ns.name === serverConfig.istioNamespace && ( + + )} + + ); +}; + +export const istioConfig: Renderer = (ns: NamespaceInfo) => { + let validations: ValidationStatus = { + objectCount: 0, + errors: 0, + warnings: 0, + }; + + if (!!ns.validations) { + validations = ns.validations; + } + + const status = ( + + + + ); + + return status; +}; + +export const status: Renderer = (ns: NamespaceInfo) => { + if (ns.status) { + return ( + + + + ); + } + + return ; +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/VirtualList/VirtualItem.tsx b/workspaces/kiali/plugins/kiali/src/components/VirtualList/VirtualItem.tsx new file mode 100644 index 0000000000..bd5a8e042b --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/VirtualList/VirtualItem.tsx @@ -0,0 +1,103 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; +import { CSSProperties } from 'react'; + +import { TableRow } from '@material-ui/core'; + +import { useLinkStyle } from '../../styles/StyleUtils'; +import { hasHealth, Health } from '../../types/Health'; +import { StatefulFiltersProps } from '../Filters/StatefulFilters'; +import { PFBadgeType } from '../Pf/PfBadges'; +import { IstioTypes, RenderResource, Resource } from './Config'; +import { actionRenderer } from './Renderers'; + +type VirtualItemProps = { + action?: JSX.Element; + className?: string; + columns: any[]; + config: Resource; + index: number; + item: RenderResource & { type?: string }; // Add 'type' property to 'RenderResource' type + key: string; + statefulFilterProps?: StatefulFiltersProps; + style?: CSSProperties; + view?: string; +}; + +export const VirtualItem = (props: VirtualItemProps) => { + const [itemState, setItemState] = React.useState(); + + React.useEffect(() => { + if (hasHealth(props.item)) { + if ('health' in props.item) { + setItemState(props.item.health); + } + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [itemState]); + + const getBadge = (): React.ReactNode | PFBadgeType => { + if (props.config.name !== 'istio') { + return props.config.badge; + } else if (props.item.type) { + return IstioTypes[props.item.type].badge; + } + return <>; + }; + + const linkColor = useLinkStyle(); + + const renderDetails = ( + item: RenderResource & { type?: string }, // Add 'type' property to 'RenderResource' type + health?: Health, + ): React.ReactNode => { + return props.columns + .filter(object => !!object.renderer) + .map(object => + object.renderer( + item, + props.config, + getBadge(), + health, + props.statefulFilterProps, + props.view, + linkColor, + ), + ); + }; + + const { style, className, item } = props; + const cluster = item.cluster ? `_Cluster${item.cluster}` : ''; + const namespace = 'namespace' in item ? `_Ns${item.namespace}` : ''; + const type = 'type' in item ? `_${item.type}` : ''; + // End result looks like: VirtualItem_Clusterwest_Nsbookinfo_gateway_bookinfo-gateway + + const key = `VirtualItem${cluster}${namespace}${type}_${item.name}`; + + return ( + + {renderDetails(item, itemState)} + {props.action && actionRenderer(key, props.action)} + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/components/VirtualList/VirtualList.tsx b/workspaces/kiali/plugins/kiali/src/components/VirtualList/VirtualList.tsx new file mode 100644 index 0000000000..f0cb6890f0 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/components/VirtualList/VirtualList.tsx @@ -0,0 +1,270 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { + Box, + CircularProgress, + Paper, + SortDirection, + Table, + TableBody, + TableCell, + TableContainer, + TableHead, + TableRow, + TableSortLabel, +} from '@material-ui/core'; + +import { kialiStyle } from '../../styles/StyleUtils'; +import { Namespace } from '../../types/Namespace'; +import { NamespaceInfo } from '../../types/NamespaceInfo'; +import { SortField } from '../../types/SortFilters'; +import { DRAWER, ENTITY } from '../../types/types'; +import { StatefulFiltersProps } from '../Filters/StatefulFilters'; +import { config, RenderResource, Resource, ResourceType } from './Config'; +import { VirtualItem } from './VirtualItem'; + +const emptyStyle = kialiStyle({ + borderBottom: 0, +}); + +// ****************************** +// VirtualList and its associated classes are intended to be used for main list pages: Applications, +// Workloads, Services and Istio Config. They share common style and filter integration. They have +// have limitations in scenarios where different personalization is needed (columns style, or layout). +// For a secondary list, rendered inside a detail page, it is recommended the imple be based on a +// Table component, such as in WorkloadServices, WorkloadPods, ServiceInfoWorkload, IstioConfigSubList, +// or TrafficListComponent. +// ****************************** + +type VirtualListProps = { + actions?: JSX.Element[]; + activeNamespaces: Namespace[]; + children?: React.ReactNode; + hiddenColumns?: string[]; + rows: R[]; + sort?: (sortField: SortField, isAscending: boolean) => void; + statefulProps?: StatefulFiltersProps; + tableToolbar?: React.ReactNode; + type: string; + view?: string; + loading: boolean; +}; + +export const VirtualList = ( + listProps: VirtualListProps, +) => { + const [order, setOrder] = React.useState('asc'); + const [orderBy, setOrderBy] = React.useState(''); + // @ts-ignore + const [conf] = React.useState(config[listProps.type] as Resource); + + const getColumns = (): ResourceType[] => { + let columns = [] as ResourceType[]; + if (conf.columns) { + columns = conf.columns.filter( + info => + !listProps.hiddenColumns || + !listProps.hiddenColumns.includes( + info.title.toLocaleLowerCase('en-US'), + ), + ); + } + return columns; + }; + const columns = getColumns(); + + const { rows } = listProps; + const typeDisplay = + listProps.type === 'istio' ? 'Istio config' : listProps.type; + + const tableEntityHeaderStyle: any = { + minWidth: '100px', + fontWeight: '700', + color: 'grey', + borderTop: '1px solid #d5d5d5', + borderBottom: '1px solid #d5d5d5', + whiteSpace: 'nowrap', + padding: '15px', + }; + + const tableHeaderStyle: any = { + minWidth: '120px', + fontWeight: '700', + color: 'grey', + borderTop: '1px solid #d5d5d5', + borderBottom: '1px solid #d5d5d5', + whiteSpace: 'nowrap', + }; + + function descendingComparator(a: string, b: string): number { + if (b < a) { + return -1; + } + if (b > a) { + return 1; + } + return 0; + } + + function getComparator(): any { + return order === 'desc' + ? (a: string, b: string) => descendingComparator(a, b) + : (a: string, b: string) => -descendingComparator(a, b); + } + + function stableSort( + array: RenderResource[], + comparator: any, + ): RenderResource[] { + const stabilizedThis: [RenderResource, number][] = array.map( + (el, index) => [el, index], + ); + stabilizedThis.sort( + (a: [RenderResource, number], b: [RenderResource, number]): number => { + // @ts-ignore + const aProp = a[0][orderBy]; + // @ts-ignore + const bProp = b[0][orderBy]; + if (aProp === undefined || bProp === undefined) { + return 0; + } + const sort = comparator(aProp, bProp); + if (sort !== 0) return sort; + return a[1] - b[1]; + }, + ); + return stabilizedThis.map(el => el[0]); + } + + const handleRequestSort = ( + _: React.MouseEvent, + property: string, + ) => { + const isAsc = orderBy === property && order === 'asc'; + setOrder(isAsc ? 'desc' : 'asc'); + setOrderBy(property.toLocaleLowerCase('en-US')); + }; + const heightStyle = + listProps.view === ENTITY || listProps.view === DRAWER + ? { maxHeight: '300px' } + : {}; + return ( +
    + + {listProps.tableToolbar} + + + + + {columns.map((column: ResourceType, index: number) => ( + + + handleRequestSort( + e, + column.title.toLocaleLowerCase('en-US'), + ) + } + > + {listProps.view === ENTITY || + (listProps.view === DRAWER && + column.title === 'Configuration') + ? 'CONFIG' + : column.title.toLocaleUpperCase('en-US')} + + + ))} + + + + {/* eslint-disable-next-line no-nested-ternary */} + {listProps.loading === true ? ( + + + + ) : listProps.rows.length > 0 ? ( + stableSort(rows, getComparator()).map( + (row: RenderResource, index: number) => ( + + ), + ) + ) : ( + + + {listProps.activeNamespaces.length > 0 + ? `No ${typeDisplay} in namespace + ${ + listProps.activeNamespaces.length === 1 + ? ` ${listProps.activeNamespaces[0].name}` + : `s: ${listProps.activeNamespaces + .map(ns => ns.name) + .join(', ')}` + }` + : `There is currently no namespace selected, please select one using the Namespace selector.`} + + + )} + +
    +
    +
    +
    + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/config/AuthenticationConfig.ts b/workspaces/kiali/plugins/kiali/src/config/AuthenticationConfig.ts new file mode 100644 index 0000000000..c837c82d12 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/config/AuthenticationConfig.ts @@ -0,0 +1,25 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { AuthConfig, AuthStrategy } from '../types/Auth'; + +export const authenticationConfig: AuthConfig = { + strategy: AuthStrategy.token, +}; + +// Returns true if authentication strategy is either 'openshift' or 'openid' +export const isAuthStrategyOAuth = () => + authenticationConfig.strategy === AuthStrategy.openshift || + authenticationConfig.strategy === AuthStrategy.openid; diff --git a/workspaces/kiali/plugins/kiali/src/config/Config.ts b/workspaces/kiali/plugins/kiali/src/config/Config.ts new file mode 100644 index 0000000000..cd99b56d82 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/config/Config.ts @@ -0,0 +1,256 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ + +import deepFreeze from 'deep-freeze'; + +import { MILLISECONDS, UNIT_TIME } from '../types/Common'; + +// We assume this is always defined in the .env file +const documentationUrl = process.env.REACT_APP_KIALI_DOC_URL!; + +const conf = { + /** Configuration related with session */ + session: { + /** TimeOut Session remain for warning user default 1 minute */ + timeOutforWarningUser: 1 * UNIT_TIME.MINUTE * MILLISECONDS, + }, + /** Toolbar Configuration */ + toolbar: { + /** Duration default is 1 minute */ + defaultDuration: 1 * UNIT_TIME.MINUTE, + /** By default refresh is 1 minute */ + defaultRefreshInterval: 60 * MILLISECONDS, + /** Time Range default is 10 minutes **/ + defaultTimeRange: { + rangeDuration: 10 * UNIT_TIME.MINUTE, + }, + /** Options in refresh */ + refreshInterval: { + 0: 'Pause', + 10000: 'Every 10s', + 15000: 'Every 15s', + 30000: 'Every 30s', + 60000: 'Every 1m', + 300000: 'Every 5m', + 900000: 'Every 15m', + }, + /** Graphs layouts types */ + graphLayouts: { + 'kiali-grid': 'Grid', + 'kiali-concentric': 'Concentric', + 'kiali-dagre': 'Dagre', + }, + }, + /** About Tracing Configuration*/ + tracing: { + configuration: { + limitResults: { + 20: 20, + 50: 50, + 100: 100, + 200: 200, + 300: 300, + 400: 400, + 500: 500, + }, + statusCode: { + none: 'none', + 200: '200', + 400: '400', + 401: '401', + 403: '403', + 404: '404', + 405: '405', + 408: '408', + 500: '500', + 502: '502', + 503: '503', + 504: '504', + }, + }, + }, + /** About dialog configuration */ + about: { + project: { + url: 'https://github.com/kiali', + icon: 'RepositoryIcon', + linkText: 'Find us on GitHub', + }, + website: { + url: 'https://www.kiali.io', // Without www, we get an SSL error + icon: 'HomeIcon', + linkText: 'Visit our web page', + }, + }, + /** */ + documentation: { + url: documentationUrl, + }, + /** Login configuration */ + login: { + headers: { + 'X-Auth-Type-Kiali-UI': '1', + }, + }, + /** API configuration */ + api: { + urls: { + aggregateGraphElements: ( + namespace: string, + aggregate: string, + aggregateValue: string, + ) => + `api/namespaces/${namespace}/aggregates/${aggregate}/${aggregateValue}/graph`, + aggregateByServiceGraphElements: ( + namespace: string, + aggregate: string, + aggregateValue: string, + service: string, + ) => + `api/namespaces/${namespace}/aggregates/${aggregate}/${aggregateValue}/${service}/graph`, + aggregateMetrics: ( + namespace: string, + aggregate: string, + aggregateValue: string, + ) => + `api/namespaces/${namespace}/aggregates/${aggregate}/${aggregateValue}/metrics`, + authenticate: 'api/authenticate', + authInfo: 'api/auth/info', + apps: (namespace: string) => `api/namespaces/${namespace}/apps`, + app: (namespace: string, app: string) => + `api/namespaces/${namespace}/apps/${app}`, + appGraphElements: (namespace: string, app: string, version?: string) => { + const baseUrl = `api/namespaces/${namespace}/applications/${app}`; + const hasVersion = version && version !== 'unknown'; + const versionSuffixed = hasVersion + ? `${baseUrl}/versions/${version}` + : baseUrl; + return `${versionSuffixed}/graph`; + }, + appHealth: (namespace: string, app: string) => + `api/namespaces/${namespace}/apps/${app}/health`, + appMetrics: (namespace: string, app: string) => + `api/namespaces/${namespace}/apps/${app}/metrics`, + appDashboard: (namespace: string, app: string) => + `api/namespaces/${namespace}/apps/${app}/dashboard`, + appSpans: (namespace: string, app: string) => + `api/namespaces/${namespace}/apps/${app}/spans`, + canaryUpgradeStatus: () => 'api/mesh/canaries/status', + clusters: 'api/clusters', + crippledFeatures: 'api/crippled', + serviceSpans: (namespace: string, service: string) => + `api/namespaces/${namespace}/services/${service}/spans`, + workloadSpans: (namespace: string, workload: string) => + `api/namespaces/${namespace}/workloads/${workload}/spans`, + customDashboard: (namespace: string, template: string) => + `api/namespaces/${namespace}/customdashboard/${template}`, + grafana: 'api/grafana', + istioConfig: (namespace: string) => `api/namespaces/${namespace}/istio`, + allIstioConfigs: () => `api/istio/config`, + istioConfigCreate: (namespace: string, objectType: string) => + `api/namespaces/${namespace}/istio/${objectType}`, + istioConfigDetail: ( + namespace: string, + objectType: string, + object: string, + ) => `api/namespaces/${namespace}/istio/${objectType}/${object}`, + istioConfigDelete: ( + namespace: string, + objectType: string, + object: string, + ) => `api/namespaces/${namespace}/istio/${objectType}/${object}`, + istioConfigUpdate: ( + namespace: string, + objectType: string, + object: string, + ) => `api/namespaces/${namespace}/istio/${objectType}/${object}`, + istioPermissions: 'api/istio/permissions', + jaeger: 'api/jaeger', + appTraces: (namespace: string, app: string) => + `api/namespaces/${namespace}/apps/${app}/traces`, + serviceTraces: (namespace: string, svc: string) => + `api/namespaces/${namespace}/services/${svc}/traces`, + workloadTraces: (namespace: string, wkd: string) => + `api/namespaces/${namespace}/workloads/${wkd}/traces`, + jaegerErrorTraces: (namespace: string, app: string) => + `api/namespaces/${namespace}/apps/${app}/errortraces`, + jaegerTrace: (idTrace: string) => `api/traces/${idTrace}`, + logout: 'api/logout', + metricsStats: 'api/stats/metrics', + namespaces: 'api/namespaces', + namespace: (namespace: string) => `api/namespaces/${namespace}`, + namespacesGraphElements: `api/namespaces/graph`, + namespaceHealth: (namespace: string) => + `api/namespaces/${namespace}/health`, + namespaceMetrics: (namespace: string) => + `api/namespaces/${namespace}/metrics`, + namespaceTls: (namespace: string) => `api/namespaces/${namespace}/tls`, + namespaceValidations: (namespace: string) => + `api/namespaces/${namespace}/validations`, + configValidations: () => `api/istio/validations`, + meshTls: () => 'api/mesh/tls', + outboundTrafficPolicyMode: () => 'api/mesh/outbound_traffic_policy/mode', + istioStatus: () => 'api/istio/status', + istioCertsInfo: () => 'api/istio/certs', + istiodResourceThresholds: () => 'api/mesh/resources/thresholds', + pod: (namespace: string, pod: string) => + `api/namespaces/${namespace}/pods/${pod}`, + podLogs: (namespace: string, pod: string) => + `api/namespaces/${namespace}/pods/${pod}/logs`, + podEnvoyProxy: (namespace: string, pod: string) => + `api/namespaces/${namespace}/pods/${pod}/config_dump`, + podEnvoyProxyLogging: (namespace: string, pod: string) => + `api/namespaces/${namespace}/pods/${pod}/logging`, + podEnvoyProxyResourceEntries: ( + namespace: string, + pod: string, + resource: string, + ) => `api/namespaces/${namespace}/pods/${pod}/config_dump/${resource}`, + serverConfig: `api/config`, + services: (namespace: string) => `api/namespaces/${namespace}/services`, + service: (namespace: string, service: string) => + `api/namespaces/${namespace}/services/${service}`, + serviceGraphElements: (namespace: string, service: string) => + `api/namespaces/${namespace}/services/${service}/graph`, + serviceHealth: (namespace: string, service: string) => + `api/namespaces/${namespace}/services/${service}/health`, + serviceMetrics: (namespace: string, service: string) => + `api/namespaces/${namespace}/services/${service}/metrics`, + serviceDashboard: (namespace: string, service: string) => + `api/namespaces/${namespace}/services/${service}/dashboard`, + status: 'api/status', + workloads: (namespace: string) => `api/namespaces/${namespace}/workloads`, + workload: (namespace: string, workload: string) => + `api/namespaces/${namespace}/workloads/${workload}`, + workloadGraphElements: (namespace: string, workload: string) => + `api/namespaces/${namespace}/workloads/${workload}/graph`, + workloadHealth: (namespace: string, workload: string) => + `api/namespaces/${namespace}/workloads/${workload}/health`, + workloadMetrics: (namespace: string, workload: string) => + `api/namespaces/${namespace}/workloads/${workload}/metrics`, + workloadDashboard: (namespace: string, workload: string) => + `api/namespaces/${namespace}/workloads/${workload}/dashboard`, + }, + }, + /** Graph configurations */ + graph: { + // maxHosts is the maximum number of hosts to show in the graph for + // nodes representing Gateways, VirtualServices and ServiceEntries. + maxHosts: 5, + }, +}; + +export const config = deepFreeze(conf) as typeof conf; diff --git a/workspaces/kiali/plugins/kiali/src/config/HealthConfig.ts b/workspaces/kiali/plugins/kiali/src/config/HealthConfig.ts new file mode 100644 index 0000000000..910ea2e335 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/config/HealthConfig.ts @@ -0,0 +1,75 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ + +import { HealthConfig, RegexConfig } from '../types/ServerConfig'; + +const allMatch = new RegExp('.*'); + +/* Replace x|X by the regular expression + Example: 4XX or 5XX to 4\d\d 5\d\d +*/ +const replaceXCode = (value: string): string => { + return value.replace(/x|X/g, '\\d'); +}; + +/* + Convert the string to regex, if isCode is true then call to replaceXCode to change the X|x in code expression to \d +*/ +export const getExpr = ( + value: RegexConfig | undefined, + isCode: boolean = false, +): RegExp => { + if (value) { + if (typeof value === 'string' && value !== '') { + const v = value.replace('\\\\', '\\'); + return new RegExp(isCode ? replaceXCode(v) : v); + } + if (typeof value === 'object' && value.toString() !== '/(?:)/') { + return value; + } + } + return allMatch; +}; + +/* + Parse configuration from backend format to regex expression +*/ +export const parseHealthConfig = (healthConfig: HealthConfig) => { + for (const [key, r] of Object.entries(healthConfig.rate)) { + healthConfig.rate[key as any].namespace = getExpr( + healthConfig.rate[key as any].namespace, + ); + healthConfig.rate[key as any].name = getExpr( + healthConfig.rate[key as any].name, + ); + healthConfig.rate[key as any].kind = getExpr( + healthConfig.rate[key as any].kind, + ); + for (const t of Object.values(r.tolerance)) { + t.code = getExpr(t.code, true); + t.direction = getExpr(t.direction); + t.protocol = getExpr(t.protocol); + } + } + return healthConfig; +}; + +/* + Export for tests +*/ +export const allMatchTEST = allMatch; +export const getExprTEST = getExpr; +export const replaceXCodeTEST = replaceXCode; diff --git a/workspaces/kiali/plugins/kiali/src/config/Icons.ts b/workspaces/kiali/plugins/kiali/src/config/Icons.ts new file mode 100644 index 0000000000..97945c7038 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/config/Icons.ts @@ -0,0 +1,169 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ + +import React from 'react'; + +import BlockIcon from '@material-ui/icons/Block'; +import BuildIcon from '@material-ui/icons/Build'; +import CodeIcon from '@material-ui/icons/Code'; +import CompareArrowsIcon from '@material-ui/icons/CompareArrows'; +import FilterNoneIcon from '@material-ui/icons/FilterNone'; +import ImportantDevicesIcon from '@material-ui/icons/ImportantDevices'; +import LanguageIcon from '@material-ui/icons/Language'; +import LockIcon from '@material-ui/icons/Lock'; +import OfflineBoltIcon from '@material-ui/icons/OfflineBolt'; +import PlayCircleOutlineIcon from '@material-ui/icons/PlayCircleOutline'; +import ScheduleIcon from '@material-ui/icons/Schedule'; +import SecurityIcon from '@material-ui/icons/Security'; +import ShareIcon from '@material-ui/icons/Share'; + +import hollowPinIcon from '../assets/img/hollow-pin.png'; +import solidPinIcon from '../assets/img/solid-pin.png'; + +export { solidPinIcon, hollowPinIcon }; + +export type IconType = { + ascii?: string; + className: string; + color?: string; + icon: React.ComponentClass; + name: string; + text: string; + type: string; +}; + +// The unicode values in the ascii fields come from: +// https://www.patternfly.org/v3/styles/icons/index.html +// or from the font awesome site: https://fontawesome.com/icons +const mutIcons = { + istio: { + circuitBreaker: { + ascii: '\uf0e7 ', + className: 'fa fa-bolt', + icon: OfflineBoltIcon as any, + name: 'bolt', + text: 'Circuit Breaker', + type: 'fa', + } as IconType, + missingLabel: { + ascii: '\uE932', + className: 'fa fa-wrench', + color: 'red', + icon: BuildIcon as any, + name: 'wrench', + text: 'Missing Label', + type: 'fa', + } as IconType, + faultInjection: { + ascii: '\uf05e ', + className: 'fa fa-ban', + icon: BlockIcon as any, + name: 'ban', + text: 'Fault Injection', + type: 'fa', + } as IconType, + gateway: { + className: 'pf-icon pf-icon-globe-route', + icon: LanguageIcon as any, + name: 'globe-route', + text: 'Gateway', + type: 'pf', + } as IconType, + mirroring: { + className: 'pf-icon pf-icon-migration', + icon: CompareArrowsIcon as any, + name: 'migration', + text: 'Mirroring', + type: 'pf', + } as IconType, + missingAuthPolicy: { + ascii: '\ue946 ', + className: 'pf-icon pf-icon-security', + color: 'red', + icon: SecurityIcon as any, + name: 'security', + text: 'Missing Auth Policy', + type: 'pf', + } as IconType, + missingSidecar: { + ascii: '\ue915 ', + className: 'pf-icon pf-icon-blueprint', + color: 'red', + icon: FilterNoneIcon as any, + name: 'blueprint', + text: 'Missing Sidecar', + type: 'pf', + } as IconType, + mtls: { + ascii: '\ue923 ', + className: 'pf-icon pf-icon-locked', + icon: LockIcon as any, + name: 'locked', + text: 'mTLS', + type: 'pf', + } as IconType, + requestRouting: { + ascii: '\uf126 ', + className: 'fa fa-code-branch', + icon: CodeIcon as any, + name: 'code-fork', + text: 'Request Routing', + type: 'fa', + } as IconType, + requestTimeout: { + ascii: '\uf017 ', + className: 'fa fa-clock', + icon: ScheduleIcon, + name: 'clock', + text: 'request Timeout', + type: 'fa', + }, + root: { + ascii: '\uf35a ', + className: 'fa fa-arrow-alt-circle-right', + icon: PlayCircleOutlineIcon as any, + name: 'arrow-alt-circle-right', + text: 'Traffic Source', + type: 'fa', + } as IconType, + trafficShifting: { + ascii: '\uf1e0 ', + className: 'fa fa-share-alt', + icon: ShareIcon as any, + name: 'share-alt', + text: 'Traffic Shifting', + type: 'fa', + } as IconType, + virtualService: { + ascii: '\uf126 ', + className: 'fa fa-code-branch', + icon: CodeIcon as any, + name: 'code-fork', + text: 'Virtual Service', + type: 'fa', + } as IconType, + workloadEntry: { + ascii: '\uf126 ', + className: 'pf-icon pf-icon-virtual-machine', + icon: ImportantDevicesIcon as any, + name: 'virtual-machine', + text: 'Workload Entry', + type: 'pf', + } as IconType, + }, +}; + +export const icons = mutIcons as typeof mutIcons; diff --git a/workspaces/kiali/plugins/kiali/src/config/KialiIcon.tsx b/workspaces/kiali/plugins/kiali/src/config/KialiIcon.tsx new file mode 100644 index 0000000000..b52f53053e --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/config/KialiIcon.tsx @@ -0,0 +1,244 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { Icon } from '@patternfly/react-core'; +import { + AngleDoubleDownIcon, + AngleDoubleLeftIcon, + AngleDoubleRightIcon, + AngleDoubleUpIcon, + AngleDownIcon, + AngleLeftIcon, + AngleRightIcon, + ApplicationsIcon, + ArrowLeftIcon, + AsteriskIcon, + BanIcon, + BellIcon, + BlueprintIcon, + BoltIcon, + BundleIcon, + CloseIcon, + CodeBranchIcon, + CompressIcon, + CopyIcon, + EllipsisHIcon, + ErrorCircleOIcon, + ExpandIcon, + FileDownloadIcon, + FilterIcon, + GlobeAmericasIcon, + GlobeRouteIcon, + HelpIcon, + HistoryIcon, + HomeIcon, + InfoAltIcon, + InProgressIcon, + LockIcon, + LockOpenIcon, + MigrationIcon, + MinusCircleIcon, + OkIcon, + OnRunningIcon, + OutlinedClockIcon, + PauseCircleIcon, + PauseIcon, + PficonTemplateIcon, + PlayCircleIcon, + PlayIcon, + PlusCircleIcon, + ProcessAutomationIcon, + RepositoryIcon, + SaveIcon, + ServiceIcon, + ShareAltIcon, + SortAmountDownAltIcon, + StopIcon, + TopologyIcon, + UnknownIcon, + UserClockIcon, + WarningTriangleIcon, +} from '@patternfly/react-icons'; +import { SVGIconProps } from '@patternfly/react-icons/dist/js/createIcon'; +import { classes } from 'typestyle'; + +import { PFColors } from '../components/Pf/PfColors'; +import { kialiStyle } from '../styles/StyleUtils'; + +export const defaultIconStyle = kialiStyle({ + // nothing special +}); + +const iconStyle = kialiStyle({ + width: '10px', +}); + +export interface IconProps { + className?: string; + color?: string; + dataTest?: string; + icon?: React.ComponentClass; + size?: 'sm' | 'md' | 'lg' | 'xl'; +} + +const conversorIconProps = ( + props: IconProps, + icon: JSX.Element, + colorIcon?: string, +) => { + const colorI = props.color || colorIcon; + const classNameIcon = colorI + ? kialiStyle({ + color: colorI, + }) + : undefined; + return {icon}; +}; + +// keep alphabetized +export const KialiIcon: { [name: string]: React.FunctionComponent } = + { + AddMore: (props: IconProps) => + conversorIconProps(props, ), + AngleDoubleDown: (props: IconProps) => + conversorIconProps(props, ), + AngleDoubleLeft: (props: IconProps) => + conversorIconProps(props, ), + AngleDoubleRight: (props: IconProps) => + conversorIconProps(props, ), + AngleDoubleUp: (props: IconProps) => + conversorIconProps(props, ), + AngleDown: (props: IconProps) => + conversorIconProps(props, ), + AngleLeft: (props: IconProps) => + conversorIconProps(props, ), + AngleRight: (props: IconProps) => + conversorIconProps(props, ), + Applications: (props: IconProps) => + conversorIconProps(props, ), + Back: (props: IconProps) => conversorIconProps(props, ), + Bell: (props: IconProps) => conversorIconProps(props, ), + CircuitBreaker: (props: IconProps) => + conversorIconProps(props, ), + Clock: (props: IconProps) => + conversorIconProps(props, ), + Close: (props: IconProps) => conversorIconProps(props, ), + Compress: (props: IconProps) => conversorIconProps(props, ), + Copy: (props: IconProps) => conversorIconProps(props, ), + Delete: (props: IconProps) => + conversorIconProps(props, ), + Download: (props: IconProps) => + conversorIconProps(props, ), + Error: (props: IconProps) => + conversorIconProps(props, , PFColors.Danger), + Expand: (props: IconProps) => conversorIconProps(props, ), + FaultInjection: (props: IconProps) => + conversorIconProps(props, ), + Filter: (props: IconProps) => conversorIconProps(props, ), + Gateway: (props: IconProps) => + conversorIconProps(props, ), + Help: (props: IconProps) => conversorIconProps(props, ), + History: (props: IconProps) => conversorIconProps(props, ), + Info: (props: IconProps) => + conversorIconProps(props, , PFColors.Info), + IstioConfig: (props: IconProps) => + conversorIconProps(props, ), + InProgressIcon: (props: IconProps) => + conversorIconProps(props, ), + LocalTime: (props: IconProps) => + conversorIconProps(props, ), + Mirroring: (props: IconProps) => + conversorIconProps(props, ), + MoreLegend: (props: IconProps) => + conversorIconProps(props, ), + MtlsLock: (props: IconProps) => conversorIconProps(props, ), + MtlsUnlock: (props: IconProps) => + conversorIconProps(props, ), + Ok: (props: IconProps) => + conversorIconProps(props, , PFColors.Success), + OnRunningIcon: (props: IconProps) => + conversorIconProps(props, ), + OutOfMesh: (props: IconProps) => + conversorIconProps(props, ), + Pause: (props: IconProps) => conversorIconProps(props, ), + PauseCircle: (props: IconProps) => + conversorIconProps(props, ), + Play: (props: IconProps) => conversorIconProps(props, ), + PlayCircle: (props: IconProps) => + conversorIconProps(props, ), + Rank: (props: IconProps) => + conversorIconProps(props, ), + Regex: (props: IconProps) => conversorIconProps(props, ), + Repository: (props: IconProps) => + conversorIconProps(props, ), + RequestRouting: (props: IconProps) => + conversorIconProps(props, ), + ResetSettings: (props: IconProps) => + conversorIconProps(props, ), + RequestTimeout: (props: IconProps) => + conversorIconProps(props, ), + Save: (props: IconProps) => conversorIconProps(props, ), + Services: (props: IconProps) => conversorIconProps(props, ), + Stop: (props: IconProps) => conversorIconProps(props, ), + Topology: (props: IconProps) => conversorIconProps(props, ), + TrafficShifting: (props: IconProps) => + conversorIconProps(props, ), + Unknown: (props: IconProps) => conversorIconProps(props, ), + UserClock: (props: IconProps) => + conversorIconProps(props, ), + VirtualService: (props: IconProps) => + conversorIconProps(props, ), + Warning: (props: IconProps) => + conversorIconProps(props, , PFColors.Warning), + Website: (props: IconProps) => conversorIconProps(props, ), + Workloads: (props: IconProps) => conversorIconProps(props, ), + }; + +Object.keys(KialiIcon).forEach(key => { + KialiIcon[key].defaultProps = { + className: iconStyle, + }; +}); + +// createTooltipIcon wraps the icon in a span element. Tooltip child elements that are +// SVGs (icons) need to be wrapped in something to avoid the tooltip from disappearing on refresh. +// See: https://github.com/kiali/kiali/issues/3583 for more details. +export function createTooltipIcon(icon: any, dataTest?: string) { + return {icon}; +} + +export const createIcon = ( + props: IconProps, + icon?: React.ComponentClass, + colorIcon?: string, +): React.ReactElement => { + const iconComponent = props.icon ?? icon ?? React.Fragment; + + const iconColor = props.color ?? colorIcon; + + const iconStyles = iconColor ? kialiStyle({ color: iconColor }) : undefined; + + return ( + + {React.createElement(iconComponent)} + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/config/KialiLogo.tsx b/workspaces/kiali/plugins/kiali/src/config/KialiLogo.tsx new file mode 100644 index 0000000000..83f9931cf9 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/config/KialiLogo.tsx @@ -0,0 +1,46 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +export const KialiLogo = () => { + return ( + + + + + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/config/Paths.ts b/workspaces/kiali/plugins/kiali/src/config/Paths.ts new file mode 100644 index 0000000000..74e204b8a3 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/config/Paths.ts @@ -0,0 +1,26 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ + +export enum Paths { + AGGREGATES = 'aggregates', + APPLICATIONS = 'applications', + ISTIO = 'istio', + JAEGER = 'jaeger', + MESH = 'mesh', + SERVICES = 'services', + SERVICEENTRIES = 'istio/serviceentries', + WORKLOADS = 'workloads', +} diff --git a/workspaces/kiali/plugins/kiali/src/config/ServerConfig.ts b/workspaces/kiali/plugins/kiali/src/config/ServerConfig.ts new file mode 100644 index 0000000000..310883da28 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/config/ServerConfig.ts @@ -0,0 +1,211 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ + +import _ from 'lodash'; + +import { MeshCluster } from '../types/Mesh'; +import { ServerConfig } from '../types/ServerConfig'; +import { parseHealthConfig } from './HealthConfig'; + +export type Durations = { [key: number]: string }; + +export type ComputedServerConfig = ServerConfig & { + durations: Durations; +}; + +function getHomeCluster(cfg: ServerConfig): MeshCluster | undefined { + return Object.values(cfg.clusters).find(cluster => cluster.isKialiHome); +} + +export const humanDurations = ( + cfg: ComputedServerConfig, + prefix?: string, + suffix?: string, +) => + _.mapValues(cfg.durations, v => + _.reject([prefix, v, suffix], _.isEmpty).join(' '), + ); + +const toDurations = (tupleArray: [number, string][]): Durations => { + const obj: { [index: string]: any } = {}; + tupleArray.forEach(tuple => { + obj[tuple[0]] = tuple[1]; + }); + return obj; +}; + +const durationsTuples: [number, string][] = [ + [60, '1m'], + [120, '2m'], + [300, '5m'], + [600, '10m'], + [1800, '30m'], + [3600, '1h'], + [10800, '3h'], + [21600, '6h'], + [43200, '12h'], + [86400, '1d'], + [604800, '7d'], + [2592000, '30d'], +]; + +const computeValidDurations = (cfg: ComputedServerConfig) => { + const tsdbRetention = cfg.prometheus.storageTsdbRetention; + const scrapeInterval = cfg.prometheus.globalScrapeInterval; + let filtered = durationsTuples.filter( + d => + (!tsdbRetention || d[0] <= tsdbRetention!) && + (!scrapeInterval || d[0] >= scrapeInterval * 2), + ); + // Make sure we keep at least one item, even if it's silly + if (filtered.length === 0) { + filtered = [durationsTuples[0]]; + } + cfg.durations = toDurations(filtered); +}; + +// Set some reasonable defaults. Initial values should be valid for fields +// than may not be providedby/set on the server. +export const defaultServerConfig: ComputedServerConfig = { + accessibleNamespaces: [], + ambientEnabled: false, + authStrategy: '', + clusters: {}, + durations: {}, + gatewayAPIEnabled: false, + logLevel: '', + healthConfig: { + rate: [], + }, + deployment: { + viewOnlyMode: false, + }, + installationTag: 'Kiali Console', + istioAnnotations: { + ambientAnnotation: 'ambient.istio.io/redirection', + ambientAnnotationEnabled: 'enabled', + istioInjectionAnnotation: 'sidecar.istio.io/inject', + }, + istioCanaryRevision: { + current: '', + upgrade: '', + }, + istioIdentityDomain: 'svc.cluster.local', + istioNamespace: 'istio-system', + istioLabels: { + ambientWaypointLabel: 'gateway.istio.io/managed', + ambientWaypointLabelValue: 'istio.io-mesh-controller', + appLabelName: 'app', + injectionLabelName: 'istio-injection', + injectionLabelRev: 'istio.io/rev', + versionLabelName: 'version', + }, + kialiFeatureFlags: { + certificatesInformationIndicators: { + enabled: true, + }, + disabledFeatures: [], + istioInjectionAction: true, + istioAnnotationAction: true, + istioUpgradeAction: false, + uiDefaults: { + graph: { + findOptions: [], + hideOptions: [], + impl: 'cy', + settings: { + fontLabel: 13, + minFontBadge: 7, + minFontLabel: 10, + }, + traffic: { + grpc: 'requests', + http: 'requests', + tcp: 'sent', + }, + }, + list: { + includeHealth: true, + includeIstioResources: true, + includeValidations: true, + showIncludeToggles: false, + }, + }, + }, + prometheus: { + globalScrapeInterval: 15, + storageTsdbRetention: 21600, + }, +}; + +// Overwritten with real server config on user login. Also used for tests. +let serverConfig = defaultServerConfig; +computeValidDurations(serverConfig); +export { serverConfig }; + +let homeCluster = getHomeCluster(serverConfig); +const isMultiCluster = isMC(); +export { homeCluster, isMultiCluster }; + +export const toValidDuration = (duration: number): number => { + // Check if valid + if (serverConfig.durations[duration]) { + return duration; + } + // Get closest duration + const validDurations = durationsTuples.filter( + d => serverConfig.durations[d[0]], + ); + for (let i = validDurations.length - 1; i > 0; i--) { + if (duration > durationsTuples[i][0]) { + return validDurations[i][0]; + } + } + return validDurations[0][0]; +}; + +export const setServerConfig = (cfg: ServerConfig) => { + serverConfig = { + ...defaultServerConfig, + ...cfg, + }; + + serverConfig.healthConfig = cfg.healthConfig + ? parseHealthConfig(cfg.healthConfig) + : serverConfig.healthConfig; + computeValidDurations(serverConfig); + + homeCluster = getHomeCluster(serverConfig); +}; + +export const isIstioNamespace = (namespace: string): boolean => { + if (namespace === serverConfig.istioNamespace) { + return true; + } + return false; +}; +export const isHomeCluster = (cluster: string): boolean => { + return !isMultiCluster || cluster === homeCluster?.name; +}; + +// Return true if the cluster is configured for this Kiali instance +export const isConfiguredCluster = (cluster: string): boolean => { + return Object.keys(serverConfig.clusters).includes(cluster); +}; + +function isMC(): boolean { + return Object.keys(serverConfig.clusters).length > 1; +} diff --git a/workspaces/kiali/plugins/kiali/src/config/index.ts b/workspaces/kiali/plugins/kiali/src/config/index.ts new file mode 100644 index 0000000000..f3b43b02c4 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/config/index.ts @@ -0,0 +1,20 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +export * from './Config'; +export * from './ServerConfig'; +export * from './Paths'; +export * from './KialiLogo'; +export * from './KialiIcon'; diff --git a/workspaces/kiali/plugins/kiali/src/dynamic/EntityKialiGraphCard.tsx b/workspaces/kiali/plugins/kiali/src/dynamic/EntityKialiGraphCard.tsx new file mode 100644 index 0000000000..7e4d519666 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/dynamic/EntityKialiGraphCard.tsx @@ -0,0 +1,55 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { CodeSnippet, EmptyState } from '@backstage/core-components'; +import { useEntity } from '@backstage/plugin-catalog-react'; + +import { Box } from '@material-ui/core'; + +import { TrafficGraphCard } from '../pages/TrafficGraph/TrafficGraphCard'; +import { KialiProvider } from '../store/KialiProvider'; + +export const EntityKialiGraphCard = () => { + const { entity } = useEntity(); + + return !entity ? ( + + Kiali detected the annotations +
    + This is the entity loaded. + + + +
    + + } + /> + ) : ( + + + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/dynamic/EntityKialiResourcesCard.tsx b/workspaces/kiali/plugins/kiali/src/dynamic/EntityKialiResourcesCard.tsx new file mode 100644 index 0000000000..fcda4f1ff3 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/dynamic/EntityKialiResourcesCard.tsx @@ -0,0 +1,154 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; +import { useRef } from 'react'; +import { useLocation, useNavigate } from 'react-router-dom'; + +import { + CardTab, + CodeSnippet, + EmptyState, + TabbedCard, +} from '@backstage/core-components'; +import { useEntity } from '@backstage/plugin-catalog-react'; + +import { Box } from '@material-ui/core'; + +import { AppListPage } from '../pages/AppList/AppListPage'; +import { ServiceListPage } from '../pages/ServiceList/ServiceListPage'; +import { WorkloadListPage } from '../pages/WorkloadList/WorkloadListPage'; +import { KialiProvider } from '../store/KialiProvider'; +import { DRAWER } from '../types/types'; + +const tabStyle: React.CSSProperties = { + maxHeight: '400px', +}; + +const tabs = ['workload', 'service', 'application']; + +export const EntityKialiResourcesCard = () => { + const { entity } = useEntity(); + const location = useLocation(); + const [element, setElement] = React.useState(); + const prevElement = useRef(element); + const [renderCount, setRenderCount] = React.useState(0); + + const getInitValue = (): string => { + const hash = location.hash.replace(/^#,?\s*/, ''); + const data = hash.split('/'); + + if (data.length > 1 && data[1] !== element) { + setElement(data[1]); + } + if (tabs.includes(data[0])) { + return data[0]; + } + return tabs[0]; + }; + const [value, setValue] = React.useState(getInitValue()); + + const navigate = useNavigate(); + + const handleChange = ( + _: React.ChangeEvent<{}>, + newValue: string | number, + ) => { + setValue(newValue); + navigate(`#${newValue}`); + }; + + React.useEffect(() => { + // This time out is needed to have rendered the context and be able to call the element to open the drawer + const timeout = setTimeout(() => { + setRenderCount(prevCount => prevCount + 1); + }, 1000); + return () => clearTimeout(timeout); + }, []); + + React.useEffect(() => { + const hash = location.hash.replace(/^#,?\s*/, ''); + const data = hash.split('/'); + if (data.length > 0) { + const val = data[0]; + if (val !== value) { + setValue(val); + setTimeout(() => { + setRenderCount(prevCount => prevCount + 1); + }, 1000); + } + } + }, [location.hash, value]); + + React.useEffect(() => { + if (element && element !== prevElement.current && renderCount > 0) { + setTimeout(() => { + const drawer = document.getElementById(`drawer_${element}`); + if (drawer) { + drawer.click(); + } + prevElement.current = element; + }, 1000); + } + }, [element, renderCount]); + + return !entity ? ( + + Kiali detected the annotations +
    + This is the entity loaded. + + + +
    + + } + /> + ) : ( + + + +
    + +
    +
    + +
    + +
    +
    + +
    + +
    +
    +
    +
    + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/dynamic/KialiContext.tsx b/workspaces/kiali/plugins/kiali/src/dynamic/KialiContext.tsx new file mode 100644 index 0000000000..0562d1ac93 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/dynamic/KialiContext.tsx @@ -0,0 +1,92 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React, { createContext, useContext, useMemo } from 'react'; +import useAsyncFn from 'react-use/lib/useAsyncFn'; +import useDebounce from 'react-use/lib/useDebounce'; + +import { useApi } from '@backstage/core-plugin-api'; +import { useEntity } from '@backstage/plugin-catalog-react'; + +import { KIALI_NAMESPACE } from '../components/Router'; +import { NamespaceInfo } from '../pages/Overview/NamespaceInfo'; +import { getNamespaces } from '../pages/Overview/OverviewPage'; +import { kialiApiRef } from '../services/Api'; + +type KialiEntityContextType = { + data: NamespaceInfo[] | null; + loading: boolean; + error: Error | null; +}; + +const KialiEntityContext = createContext( + {} as KialiEntityContextType, +); + +export const KialiContextProvider = (props: any) => { + const { entity } = useEntity(); + const kialiClient = useApi(kialiApiRef); + + const [{ value: namespace, loading, error: asyncError }, refresh] = + useAsyncFn( + async () => { + const annotations = entity?.metadata?.annotations || undefined; + let ns: string[]; + if (!annotations) { + ns = []; + } else { + const ant = decodeURIComponent(annotations[KIALI_NAMESPACE]); + if (ant) { + ns = ant.split(','); + } + ns = []; + } + const filteredNs = await kialiClient + .getNamespaces() + .then(namespacesResponse => { + const allNamespaces: NamespaceInfo[] = getNamespaces( + namespacesResponse, + [], + ); + const namespaceInfos = allNamespaces.filter(nsInfo => + ns.includes(nsInfo.name), + ); + return namespaceInfos; + }); + return filteredNs; + }, + [], + { loading: true }, + ); + useDebounce(refresh, 10); + const isError = Boolean(asyncError); + const error = isError ? asyncError || Object.assign(new Error()) : null; + + const value = useMemo( + () => ({ + data: isError || loading ? null : (namespace as NamespaceInfo[]), + loading, + error, + }), + [namespace, isError, loading, error], + ); + + return ( + + {props.children} + + ); +}; +export const useKialiEntityContext = () => useContext(KialiEntityContext); diff --git a/workspaces/kiali/plugins/kiali/src/helpers/LabelFilterHelper.ts b/workspaces/kiali/plugins/kiali/src/helpers/LabelFilterHelper.ts new file mode 100644 index 0000000000..7a0b3b38b9 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/helpers/LabelFilterHelper.ts @@ -0,0 +1,157 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { AppListItem } from '../types/AppList'; +import { ServiceListItem } from '../types/ServiceList'; +import { WorkloadListItem } from '../types/Workload'; + +type itemsType = AppListItem | ServiceListItem | WorkloadListItem; + +export const isGateway = (labels: { [key: string]: string }): boolean => { + return ( + labels && + 'istio' in labels && + (labels.istio === 'ingressgateway' || labels.istio === 'egressgateway') + ); +}; + +export const isWaypoint = (labels: { [key: string]: string }): boolean => { + return ( + labels && + 'gateway.istio.io/managed' in labels && + labels['gateway.istio.io/managed'] === 'istio.io-mesh-controller' + ); +}; + +const getKeyAndValues = ( + filters: string[], +): { keys: string[]; keyValues: string[] } => { + // keys => List of filters with only Label Presence + // keyValues => List of filters with Label and value + const keys = filters.filter(f => !f.includes('=')); + const keyValues = filters.filter(f => f.includes('=')); + return { keys, keyValues }; +}; + +/* + OR Operation for labels +*/ +const orLabelOperation = ( + labels: { [key: string]: string }, + filters: string[], +): boolean => { + const { keys, keyValues } = getKeyAndValues(filters); + + // Get all keys of labels + const labelKeys = Object.keys(labels); + + // Check presence label + let filterOkForLabel = + labelKeys.filter(label => keys.some(key => label.startsWith(key))).length > + 0; + + if (filterOkForLabel) { + return true; + } + // Check key and value + keyValues.map(filter => { + const [key, value] = filter.split('='); + // Check if multiple values + value.split(',').map(v => { + if (key in labels && !filterOkForLabel) { + // Split label values for serviceList Case where we can have multiple values for a label + filterOkForLabel = labels[key] + .trim() + .split(',') + .some(labelValue => labelValue.trim().startsWith(v.trim())); + } + return undefined; + }); + return undefined; + }); + return filterOkForLabel; +}; + +/* + AND Operation for labels +*/ + +const andLabelOperation = ( + labels: { [key: string]: string }, + filters: string[], +): boolean => { + // We expect this label is ok for the filters with And Operation + let filterOkForLabel: boolean = true; + + const { keys, keyValues } = getKeyAndValues(filters); + + // Get all keys of labels + const labelKeys = Object.keys(labels); + + // Start check label presence + keys.map(k => { + if (!labelKeys.includes(k) && filterOkForLabel) { + filterOkForLabel = false; + } + return undefined; + }); + + // If label presence is validated we continue checking with key,value + if (filterOkForLabel) { + keyValues.map(filter => { + const [key, value] = filter.split('='); + if (key in labels && filterOkForLabel) { + // We need to check if some value of filter match + value.split(',').map(val => { + // Split label values for serviceList Case where we can have multiple values for a label + if ( + !labels[key] + .split(',') + .some(labelVal => labelVal.trim().startsWith(val.trim())) + ) { + filterOkForLabel = false; + } + return undefined; + }); + } else { + // The key is not in the labels so not match AND operation + filterOkForLabel = false; + } + return undefined; + }); + } + + return filterOkForLabel; +}; + +const filterLabelByOp = ( + labels: { [key: string]: string }, + filters: string[], + op: string = 'or', +): boolean => { + return op === 'or' + ? orLabelOperation(labels, filters) + : andLabelOperation(labels, filters); +}; + +export const filterByLabel = ( + items: itemsType[], + filter: string[], + op: string = 'or', +): itemsType[] => { + return filter.length === 0 + ? items + : items.filter(item => filterLabelByOp(item.labels, filter, op)); +}; diff --git a/workspaces/kiali/plugins/kiali/src/helpers/namespaces.ts b/workspaces/kiali/plugins/kiali/src/helpers/namespaces.ts new file mode 100644 index 0000000000..ec967a62f4 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/helpers/namespaces.ts @@ -0,0 +1,37 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { Entity } from '@backstage/catalog-model'; + +import { KIALI_NAMESPACE } from '../components/Router'; + +export const nsEqual = (ns: string[], ns2: string[]): boolean => { + return ( + ns.length === ns2.length && + ns.every((value: any, index: number) => value === ns2[index]) + ); +}; + +export const getEntityNs = (entity: Entity): string[] => { + const annotations = entity?.metadata?.annotations || undefined; + if (!annotations) { + return []; + } + const ant = decodeURIComponent(annotations[KIALI_NAMESPACE]); + if (ant) { + return ant.split(','); + } + return []; +}; diff --git a/workspaces/kiali/plugins/kiali/src/index.ts b/workspaces/kiali/plugins/kiali/src/index.ts new file mode 100644 index 0000000000..fd9bf20e5d --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/index.ts @@ -0,0 +1,24 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +export { + kialiPlugin, + EntityKialiContent, + KialiPage, + EntityKialiResourcesCard, + EntityKialiGraphCard, +} from './plugin'; + +export { default as KialiIcon } from '@mui/icons-material/Troubleshoot'; diff --git a/workspaces/kiali/plugins/kiali/src/pages/AppDetails/AppDescription.tsx b/workspaces/kiali/plugins/kiali/src/pages/AppDetails/AppDescription.tsx new file mode 100644 index 0000000000..f575c8799d --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/AppDetails/AppDescription.tsx @@ -0,0 +1,101 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { Card, CardContent, CardHeader, Typography } from '@material-ui/core'; + +import { DetailDescription } from '../../components/DetailDescription/DetailDescription'; +import { HealthIndicator } from '../../components/Health/HealthIndicator'; +import { Labels } from '../../components/Label/Labels'; +import { PFBadge, PFBadges } from '../../components/Pf/PfBadges'; +import { isMultiCluster, serverConfig } from '../../config'; +import { cardsHeight, kialiStyle } from '../../styles/StyleUtils'; +import { App } from '../../types/App'; +import * as H from '../../types/Health'; + +type AppDescriptionProps = { + app?: App; + health?: H.Health; + view?: string; +}; + +const iconStyle = kialiStyle({ + display: 'inline-block', +}); + +const healthIconStyle = kialiStyle({ + marginLeft: '0.5rem', + verticalAlign: '-0.075rem', +}); + +export const AppDescription: React.FC = ( + props: AppDescriptionProps, +) => { + const appLabels: { [key: string]: string } = {}; + + if (props.app) { + appLabels[serverConfig.istioLabels.appLabelName] = props.app.name; + } + + return props.app ? ( + + + +
    + +
    + + {props.app.name} + + + + +
    + + {props.app.cluster && isMultiCluster && ( +
    + {props.app.cluster} +
    + )} + + } + /> + + + + + +
    + ) : ( + <>Loading + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/AppDetails/AppDetailsPage.tsx b/workspaces/kiali/plugins/kiali/src/pages/AppDetails/AppDetailsPage.tsx new file mode 100644 index 0000000000..fa268d794c --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/AppDetails/AppDetailsPage.tsx @@ -0,0 +1,214 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; +import { useLocation } from 'react-router-dom'; +import { useAsyncFn, useDebounce } from 'react-use'; + +import { Content, EmptyState } from '@backstage/core-components'; +import { useApi } from '@backstage/core-plugin-api'; + +import { CircularProgress, Tab, Tabs } from '@material-ui/core'; +import { AxiosError } from 'axios'; + +import { HistoryManager } from '../../app/History'; +import { + BreadcrumbView, + getPath, +} from '../../components/BreadcrumbView/BreadcrumbView'; +import { DefaultSecondaryMasthead } from '../../components/DefaultSecondaryMasthead/DefaultSecondaryMasthead'; +import * as FilterHelper from '../../components/FilterList/FilterHelper'; +import { IstioMetrics } from '../../components/Metrics/IstioMetrics'; +import { a11yProps, TabPanel, useStyles } from '../../components/Tab/TabPanel'; +import { TimeDurationComponent } from '../../components/Time/TimeDurationComponent'; +import { getErrorString, kialiApiRef } from '../../services/Api'; +import { KialiContext } from '../../store'; +import { KialiAppState } from '../../store/Store'; +import { baseStyle } from '../../styles/StyleUtils'; +import { App, AppQuery } from '../../types/App'; +import { AppHealth } from '../../types/Health'; +import { MetricsObjectTypes } from '../../types/Metrics'; +import { AppInfo } from './AppInfo'; + +export const AppDetailsPage = (props: { entity?: boolean }) => { + const path = getPath(useLocation()); + const namespace = path.namespace; + const app = path.item; + const kialiClient = useApi(kialiApiRef); + const kialiState = React.useContext(KialiContext) as KialiAppState; + const [appItem, setAppItem] = React.useState(); + const [health, setHealth] = React.useState(); + const [error, setError] = React.useState(); + const [duration, setDuration] = React.useState( + FilterHelper.currentDuration(), + ); + const cluster = HistoryManager.getClusterName(); + const [value, setValue] = React.useState(0); + const classes = useStyles(); + + const grids = () => { + const elements = []; + elements.push( + , + ); + return elements; + }; + + const fetchApp = async () => { + const params: AppQuery = { + rateInterval: `${String(duration)}s`, + health: 'true', + }; + if (!namespace || !app) { + setError(`Could not fetch application: Empty namespace or app name`); + kialiState.alertUtils!.add( + `Could not fetch application: Empty namespace or app name`, + ); + return; + } + + kialiClient + .getApp(namespace, app, params, cluster) + .then((appResponse: App) => { + const healthR = AppHealth.fromJson(namespace, app, appResponse.health, { + rateInterval: duration, + hasSidecar: appResponse.workloads.some(w => w.istioSidecar), + hasAmbient: appResponse.workloads.some(w => w.istioAmbient), + }); + setAppItem(appResponse); + setHealth(healthR); + }) + .catch((err: AxiosError) => { + setError(`Could not fetch application: ${getErrorString(err)}`); + kialiState.alertUtils!.add( + `Could not fetch application: ${getErrorString(err)}`, + ); + }); + }; + + const [{ loading }, refresh] = useAsyncFn( + async () => { + // Check if the config is loaded + await fetchApp(); + }, + [], + { loading: true }, + ); + useDebounce(refresh, 10); + + if (loading) { + return ; + } + + const overviewTab = (): React.ReactElement => { + return ( + <> + {appItem && ( + + )} + + ); + }; + + const inboundTab = (): React.ReactElement => { + return ( + <> + {namespace && app && ( + + )} + + ); + }; + + const outboundTab = (): React.ReactElement => { + return ( + <> + {namespace && app && ( + + )} + + ); + }; + + const handleChange = ( + _event: any, + newValue: React.SetStateAction, + ) => { + setValue(newValue); + }; + + return ( +
    + + + fetchApp()} + /> + {error !== undefined && ( + No App found
    } + /> + )} +
    + + + + + + + {overviewTab()} + + + {inboundTab()} + + + {outboundTab()} + +
    + +
    + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/AppDetails/AppInfo.tsx b/workspaces/kiali/plugins/kiali/src/pages/AppDetails/AppInfo.tsx new file mode 100644 index 0000000000..331fc93b5d --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/AppDetails/AppInfo.tsx @@ -0,0 +1,46 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React from 'react'; + +import { Grid } from '@material-ui/core'; + +import { App } from '../../types/App'; +import { DurationInSeconds } from '../../types/Common'; +import { AppHealth } from '../../types/Health'; +import { DRAWER, ENTITY } from '../../types/types'; +import { AppDescription } from './AppDescription'; + +type AppInfoProps = { + app?: App; + duration: DurationInSeconds; + health?: AppHealth; + view?: string; +}; + +export const AppInfo = (appProps: AppInfoProps) => { + const size = appProps.view === ENTITY || appProps.view === DRAWER ? 12 : 4; + return ( + + + + + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/AppList/AppListClass.tsx b/workspaces/kiali/plugins/kiali/src/pages/AppList/AppListClass.tsx new file mode 100644 index 0000000000..0b9e72ae46 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/AppList/AppListClass.tsx @@ -0,0 +1,41 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { AppList, AppListItem } from '../../types/AppList'; +import { AppHealth } from '../../types/Health'; +import { sortIstioReferences } from './FiltersAndSorts'; + +export const getAppItems = ( + data: AppList, + rateInterval: number, +): AppListItem[] => { + if (data.applications) { + return data.applications.map(app => ({ + namespace: data.namespace.name, + name: app.name, + istioSidecar: app.istioSidecar, + istioAmbient: app.istioAmbient, + health: AppHealth.fromJson(data.namespace.name, app.name, app.health, { + rateInterval: rateInterval, + hasSidecar: app.istioSidecar, + hasAmbient: app.istioAmbient, + }), + labels: app.labels, + istioReferences: sortIstioReferences(app.istioReferences, true), + cluster: app.cluster, + })); + } + return []; +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/AppList/AppListPage.tsx b/workspaces/kiali/plugins/kiali/src/pages/AppList/AppListPage.tsx new file mode 100644 index 0000000000..33c2c2b5da --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/AppList/AppListPage.tsx @@ -0,0 +1,182 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; +import { useRef } from 'react'; +import { useAsyncFn, useDebounce } from 'react-use'; + +import { Entity } from '@backstage/catalog-model'; +import { Content } from '@backstage/core-components'; +import { useApi } from '@backstage/core-plugin-api'; + +import { DefaultSecondaryMasthead } from '../../components/DefaultSecondaryMasthead/DefaultSecondaryMasthead'; +import * as FilterHelper from '../../components/FilterList/FilterHelper'; +import { TimeDurationComponent } from '../../components/Time/TimeDurationComponent'; +import { VirtualList } from '../../components/VirtualList/VirtualList'; +import { isMultiCluster } from '../../config'; +import { getEntityNs, nsEqual } from '../../helpers/namespaces'; +import { getErrorString, kialiApiRef } from '../../services/Api'; +import { KialiAppState, KialiContext } from '../../store'; +import { baseStyle } from '../../styles/StyleUtils'; +import { AppListItem } from '../../types/AppList'; +import { DRAWER, ENTITY } from '../../types/types'; +import { NamespaceInfo } from '../Overview/NamespaceInfo'; +import { getNamespaces } from '../Overview/OverviewPage'; +import * as AppListClass from './AppListClass'; + +export const AppListPage = (props: { + view?: string; + entity?: Entity; +}): React.JSX.Element => { + const kialiClient = useApi(kialiApiRef); + const [namespaces, setNamespaces] = React.useState([]); + const [allApps, setApps] = React.useState([]); + const [duration, setDuration] = React.useState( + FilterHelper.currentDuration(), + ); + const kialiState = React.useContext(KialiContext) as KialiAppState; + const activeNs = props.entity + ? getEntityNs(props.entity) + : kialiState.namespaces.activeNamespaces.map(ns => ns.name); + const prevActiveNs = useRef(activeNs); + const prevDuration = useRef(duration); + const [loadingD, setLoading] = React.useState(true); + + const hiddenColumns = isMultiCluster ? [] : ['cluster']; + if (props.view === ENTITY) { + hiddenColumns.push('details'); + } + + const grids = () => { + const elements = []; + elements.push( + , + ); + return elements; + }; + + const fetchApps = async ( + nss: NamespaceInfo[], + timeDuration: number, + ): Promise => { + const health = 'true'; + const istioResources = 'true'; + return Promise.all( + nss.map(async nsInfo => { + return await kialiClient.getApps(nsInfo.name, { + rateInterval: `${String(timeDuration)}s`, + health: health, + istioResources: istioResources, + }); + }), + ) + .then(results => { + let appListItems: AppListItem[] = []; + + results.forEach(response => { + appListItems = appListItems.concat( + AppListClass.getAppItems(response, timeDuration), + ); + }); + setApps(appListItems); + }) + .catch(err => + kialiState.alertUtils?.add( + `Could not fetch services: ${getErrorString(err)}`, + ), + ); + }; + + const getNS = async () => { + kialiClient.getNamespaces().then(namespacesResponse => { + const allNamespaces: NamespaceInfo[] = getNamespaces( + namespacesResponse, + namespaces, + ); + const namespaceInfos = allNamespaces.filter(ns => + activeNs.includes(ns.name), + ); + setNamespaces(namespaceInfos); + fetchApps(namespaceInfos, duration); + }); + setTimeout(() => { + setLoading(false); + }, 400); + }; + + const [_, refresh] = useAsyncFn( + async () => { + await getNS(); + }, + [], + { loading: true }, + ); + useDebounce(refresh, 5); + + React.useEffect(() => { + if ( + duration !== prevDuration.current || + !nsEqual(activeNs, prevActiveNs.current) + ) { + setLoading(true); + getNS(); + prevDuration.current = duration; + prevActiveNs.current = activeNs; + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [activeNs, duration]); + + const appContent = () => { + return ( + <> + {props.view !== ENTITY && ( + getNS()} + /> + )} + + + + ); + }; + + return ( +
    + {props.view !== ENTITY && props.view !== DRAWER && ( + {appContent()} + )} + {(props.view === ENTITY || props.view === DRAWER) && ( +
    + {appContent()} +
    + )} +
    + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/AppList/FiltersAndSorts.ts b/workspaces/kiali/plugins/kiali/src/pages/AppList/FiltersAndSorts.ts new file mode 100644 index 0000000000..077eb73e92 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/AppList/FiltersAndSorts.ts @@ -0,0 +1,73 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { ObjectReference } from '../../types/IstioObjects'; + +export const compareObjectReference = ( + a: ObjectReference, + b: ObjectReference, +): number => { + const cmpObjectType = a.objectType.localeCompare(b.objectType); + if (cmpObjectType !== 0) { + return cmpObjectType; + } + const cmpName = a.name.localeCompare(b.name); + if (cmpName !== 0) { + return cmpName; + } + + return a.namespace.localeCompare(b.namespace); +}; + +// It assumes that is sorted +export const compareObjectReferences = ( + a: ObjectReference[], + b: ObjectReference[], +): number => { + if (a.length === 0 && b.length === 0) { + return 0; + } + if (a.length === 0 && b.length > 0) { + return -1; + } + if (a.length > 0 && b.length === 0) { + return 1; + } + if (a.length !== b.length) { + return a.length - b.length; + } + for (let i = 0; i < a.length; i++) { + const cmp = compareObjectReference(a[i], b[i]); + if (cmp !== 0) { + return cmp; + } + } + return 0; +}; + +// Remove duplicates and sort references +export const sortIstioReferences = ( + unsorted: ObjectReference[], + isAscending: boolean, +): ObjectReference[] => { + const unique = unsorted.filter( + (item, index) => unsorted.indexOf(item) === index, + ); + return unique.sort((a, b) => { + return isAscending + ? compareObjectReference(a, b) + : compareObjectReference(b, a); + }); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/IstioConfigDetails/IstioConfigDetailsOverview.tsx b/workspaces/kiali/plugins/kiali/src/pages/IstioConfigDetails/IstioConfigDetailsOverview.tsx new file mode 100644 index 0000000000..791e512270 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/IstioConfigDetails/IstioConfigDetailsOverview.tsx @@ -0,0 +1,206 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React from 'react'; + +import { + Card, + CardContent, + List, + ListItem, + Tooltip, + Typography, +} from '@material-ui/core'; + +import { HistoryManager } from '../../app/History'; +import { Labels } from '../../components/Label/Labels'; +import { PFBadge } from '../../components/Pf/PfBadges'; +import { LocalTime } from '../../components/Time/LocalTime'; +import { ValidationObjectSummary } from '../../components/Validations/ValidationObjectSummary'; +import { IstioTypes } from '../../components/VirtualList/Config'; +import { KialiIcon } from '../../config/KialiIcon'; +import { kialiStyle } from '../../styles/StyleUtils'; +import { IstioConfigDetails } from '../../types/IstioConfigDetails'; +import { + ObjectReference, + ServiceReference, + ValidationMessage, + ValidationTypes, + WorkloadReference, +} from '../../types/IstioObjects'; +import { + getIstioObject, + getReconciliationCondition, +} from '../../utils/IstioConfigUtils'; +import { IstioConfigReferences } from './IstioConfigReferences'; +import { IstioConfigValidationReferences } from './IstioConfigValidationReferences'; +import { IstioStatusMessageList } from './IstioStatusMessageList'; + +export const IstioConfigDetailsOverview = ( + istioConfigDetails: IstioConfigDetails, +): React.JSX.Element => { + const istioObject = getIstioObject(istioConfigDetails); + const istioValidations = istioConfigDetails.validation; + const statusMessages: ValidationMessage[] | undefined = + istioObject?.status?.validationMessages; + const cluster = HistoryManager.getClusterName(); + + const objectReferences = (): ObjectReference[] => { + const details: IstioConfigDetails = + istioConfigDetails ?? ({} as IstioConfigDetails); + return details.references?.objectReferences ?? ([] as ObjectReference[]); + }; + + const serviceReferences = (): ServiceReference[] => { + const details: IstioConfigDetails = + istioConfigDetails ?? ({} as IstioConfigDetails); + return details.references?.serviceReferences ?? ([] as ServiceReference[]); + }; + + const workloadReferences = (): WorkloadReference[] => { + const details: IstioConfigDetails = + istioConfigDetails ?? ({} as IstioConfigDetails); + return ( + details.references?.workloadReferences ?? ([] as WorkloadReference[]) + ); + }; + + const infoStyle = kialiStyle({ + marginLeft: '0.5rem', + verticalAlign: '-0.06em !important', + }); + + const healthIconStyle = kialiStyle({ + marginLeft: '0.5rem', + verticalAlign: '-0.06em !important', + }); + + const resourceListStyle = kialiStyle({ + $nest: { + '& > ul > li > span': { + float: 'left', + width: '125px', + fontWeight: 700, + }, + }, + }); + const resourceProperties = ( +
    +
      + {istioObject && istioObject.metadata.creationTimestamp && ( +
    • + Created + +
      + +
      +
    • + )} + + {istioObject && istioObject.metadata.resourceVersion && ( +
    • + Version + {istioObject.metadata.resourceVersion} +
    • + )} +
    +
    + ); + + const configurationHasWarnings = (): boolean | undefined => { + return istioValidations?.checks.some(check => { + return check.severity === ValidationTypes.Warning; + }); + }; + + return ( + + + + Overview + + + {istioObject && istioObject.kind && ( + + )} + + {istioObject?.metadata.name} + + + + + + + + {istioValidations && + (!statusMessages || statusMessages.length === 0) && + (!istioValidations.checks || + istioValidations.checks.length === 0) && ( + + + + )} + + {istioObject?.metadata.labels && ( + + + + + + )} + + {((statusMessages && statusMessages.length > 0) || + (istioValidations && + istioValidations.checks && + istioValidations.checks.length > 0)) && ( + + )} + + {istioValidations?.references && ( + + )} + + {istioValidations?.valid && !configurationHasWarnings() && ( + + )} + + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/IstioConfigDetails/IstioConfigDetailsPage.tsx b/workspaces/kiali/plugins/kiali/src/pages/IstioConfigDetails/IstioConfigDetailsPage.tsx new file mode 100644 index 0000000000..25e3a54203 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/IstioConfigDetails/IstioConfigDetailsPage.tsx @@ -0,0 +1,146 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; +import AceEditor from 'react-ace'; +import { useLocation } from 'react-router-dom'; + +import { Content } from '@backstage/core-components'; +import { useApi } from '@backstage/core-plugin-api'; + +import { Grid } from '@material-ui/core'; +import jsYaml from 'js-yaml'; + +import { + BreadcrumbView, + getPath, +} from '../../components/BreadcrumbView/BreadcrumbView'; +import { DefaultSecondaryMasthead } from '../../components/DefaultSecondaryMasthead/DefaultSecondaryMasthead'; +import { kialiApiRef } from '../../services/Api'; +import { KialiAppState, KialiContext } from '../../store'; +import { baseStyle } from '../../styles/StyleUtils'; +import { IstioConfigDetails } from '../../types/IstioConfigDetails'; +import { getIstioObject } from '../../utils/IstioConfigUtils'; +// Enables ACE editor YAML themes +import 'ace-builds/src-noconflict/ace'; +import 'ace-builds/src-noconflict/mode-yaml'; +import 'ace-builds/src-noconflict/theme-eclipse'; +import 'ace-builds/src-noconflict/theme-twilight'; + +import { useCallback, useEffect } from 'react'; + +import { useTheme } from '@material-ui/core/styles'; + +import { + AceValidations, + parseKialiValidations, +} from '../../types/AceValidations'; +import { IstioConfigDetailsOverview } from './IstioConfigDetailsOverview'; + +export const IstioConfigDetailsPage = (props: { + entity?: boolean; +}): React.JSX.Element => { + const path = getPath(useLocation()); + const namespace = path.namespace; + const object = path.item; + const objectType = path.istioType; + + const kialiClient = useApi(kialiApiRef); + const kialiState = React.useContext(KialiContext) as KialiAppState; + const [istioConfig, setIstioConfig] = React.useState(); + + const fetchIstioConfig = useCallback(() => { + if (!namespace || !objectType || !object) { + kialiState.alertUtils!.add( + `Could not fetch Istio Config: Empty namespace, object type or object name`, + ); + return; + } + + kialiClient + .getIstioConfigDetail(namespace, objectType, object, true) + .then((istioConfigResponse: IstioConfigDetails) => { + setIstioConfig(istioConfigResponse); + }); + }, [kialiClient, kialiState.alertUtils, namespace, objectType, object]); + + useEffect(() => { + fetchIstioConfig(); + }, [fetchIstioConfig, namespace, objectType, object]); + + const fetchYaml = () => { + const safeDumpOptions = { + styles: { + '!!null': 'canonical', // dump null as ~ + }, + }; + + const istioObject = getIstioObject(istioConfig); + return istioObject ? jsYaml.dump(istioObject, safeDumpOptions) : ''; + }; + + let editorValidations: AceValidations = { + markers: [], + annotations: [], + }; + const yamlSource = fetchYaml(); + const editorStyle = { border: '1px solid #dcdcdc' }; + + const useDefaultTheme = (): string => { + const muiTheme = useTheme(); + if (muiTheme.palette.type === 'light') { + return 'eclipse'; + } + return 'twilight'; + }; + + editorValidations = parseKialiValidations( + yamlSource, + istioConfig?.validation, + ); + + return ( +
    + + + fetchIstioConfig()} + /> + + + + + + {istioConfig && } + + + +
    + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/IstioConfigDetails/IstioConfigReferences.tsx b/workspaces/kiali/plugins/kiali/src/pages/IstioConfigDetails/IstioConfigReferences.tsx new file mode 100644 index 0000000000..17101eb4e4 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/IstioConfigDetails/IstioConfigReferences.tsx @@ -0,0 +1,118 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React from 'react'; + +import { List, ListItem, Typography } from '@material-ui/core'; + +import { ReferenceIstioObjectLink } from '../../components/Link/IstioObjectLink'; +import { ServiceLink } from '../../components/Link/ServiceLink'; +import { WorkloadLink } from '../../components/Link/WorkloadLink'; +import { + ObjectReference, + ServiceReference, + WorkloadReference, +} from '../../types/IstioObjects'; + +interface IstioConfigReferencesProps { + objectReferences: ObjectReference[]; + serviceReferences: ServiceReference[]; + workloadReferences: WorkloadReference[]; + isValid: boolean | undefined; + cluster?: string; +} + +export const IstioConfigReferences = (props: IstioConfigReferencesProps) => { + const objectReferencesExists = (): boolean => { + if (props.objectReferences && props.objectReferences.length > 0) { + return true; + } + return false; + }; + + const serviceReferencesExists = (): boolean => { + if (props.serviceReferences && props.serviceReferences.length > 0) { + return true; + } + return false; + }; + + const workloadReferencesExists = (): boolean => { + if (props.workloadReferences && props.workloadReferences.length > 0) { + return true; + } + return false; + }; + + return ( + <> + + References + + + {!objectReferencesExists() && + !serviceReferencesExists() && + !workloadReferencesExists() && ( + <>No references found for this object. + )} + + {serviceReferencesExists() && + props.serviceReferences.map((reference, sRef) => { + return ( + + + + + + ); + })} + + {workloadReferencesExists() && + props.workloadReferences.map((reference, wRef) => { + return ( + + + + + + ); + })} + + {objectReferencesExists() && + props.objectReferences.map((reference, oRef) => { + return ( + + + + + + ); + })} + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/IstioConfigDetails/IstioConfigValidationReferences.tsx b/workspaces/kiali/plugins/kiali/src/pages/IstioConfigDetails/IstioConfigValidationReferences.tsx new file mode 100644 index 0000000000..1064daf9bb --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/IstioConfigDetails/IstioConfigValidationReferences.tsx @@ -0,0 +1,53 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React from 'react'; + +import { List, ListItem, Typography } from '@material-ui/core'; + +import { ReferenceIstioObjectLink } from '../../components/Link/IstioObjectLink'; +import { ObjectReference } from '../../types/IstioObjects'; + +interface IstioConfigReferencesProps { + objectReferences: ObjectReference[]; + cluster?: string; +} + +export const IstioConfigValidationReferences = ( + props: IstioConfigReferencesProps, +) => { + return ( + <> + + Validation References + + + {props.objectReferences && + props.objectReferences.map((reference, i) => { + return ( + + + + ); + })} + + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/IstioConfigDetails/IstioStatusMessageList.tsx b/workspaces/kiali/plugins/kiali/src/pages/IstioConfigDetails/IstioStatusMessageList.tsx new file mode 100644 index 0000000000..cf9d766921 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/IstioConfigDetails/IstioStatusMessageList.tsx @@ -0,0 +1,90 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React from 'react'; + +import { List, ListItem, Tooltip, Typography } from '@material-ui/core'; + +import { Validation } from '../../components/Validations/Validation'; +import { KialiIcon } from '../../config/KialiIcon'; +import { kialiStyle } from '../../styles/StyleUtils'; +import { + IstioLevelToSeverity, + ObjectCheck, + ValidationMessage, + ValidationTypes, +} from '../../types/IstioObjects'; + +interface Props { + messages?: ValidationMessage[]; + checks?: ObjectCheck[]; +} + +const infoStyle = kialiStyle({ + marginLeft: '0.5rem', + verticalAlign: '-0.06em !important', +}); + +export const IstioStatusMessageList = (props: Props) => { + return ( + <> + + Configuration Analysis + + + {(props.messages || []).map((msg: ValidationMessage, i: number) => { + const severity: ValidationTypes = + IstioLevelToSeverity[ + (msg.level as keyof typeof IstioLevelToSeverity) || 'UNKNOWN' + ]; + return ( + + + + {msg.type.code} + + {msg.description ? `: ${msg.description}` : undefined} + + ); + })} + + + {(props.checks || []).map((check: ObjectCheck, i: number) => { + const severity: ValidationTypes = + IstioLevelToSeverity[ + (check.severity.toLocaleUpperCase( + 'en-US', + ) as keyof typeof IstioLevelToSeverity) || 'UNKNOWN' + ]; + return ( + + + {check.code} + + + + + + + ); + })} + + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/IstioConfigList/FiltersAndSorts.ts b/workspaces/kiali/plugins/kiali/src/pages/IstioConfigList/FiltersAndSorts.ts new file mode 100644 index 0000000000..c0de91fb67 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/IstioConfigList/FiltersAndSorts.ts @@ -0,0 +1,242 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { serverConfig } from '../../config'; +import { + AllFilterTypes, + FILTER_ACTION_APPEND, + FilterType, + ToggleType, +} from '../../types/Filters'; +import { IstioConfigItem } from '../../types/IstioConfigList'; +import { SortField } from '../../types/SortFilters'; +import { compareValidations } from '../ServiceList/FiltersAndSorts'; + +export const sortFields: SortField[] = [ + { + id: 'namespace', + title: 'Namespace', + isNumeric: false, + param: 'ns', + compare: (a: IstioConfigItem, b: IstioConfigItem): number => { + return ( + a.namespace.localeCompare(b.namespace) || a.name.localeCompare(b.name) + ); + }, + }, + { + id: 'type', + title: 'Type', + isNumeric: false, + param: 'it', + compare: (a: IstioConfigItem, b: IstioConfigItem): number => { + return a.type.localeCompare(b.type) || a.name.localeCompare(b.name); + }, + }, + { + id: 'istioname', + title: 'Istio Name', + isNumeric: false, + param: 'in', + compare: (a: IstioConfigItem, b: IstioConfigItem): number => { + // On same name order is not well defined, we need some fallback methods + // This happens specially on adapters/templates where Istio 1.0.x calls them "handler" + // So, we have a lot of objects with same namespace+name + return ( + a.name.localeCompare(b.name) || + a.namespace.localeCompare(b.namespace) || + a.type.localeCompare(b.type) + ); + }, + }, + { + id: 'configvalidation', + title: 'Config', + isNumeric: false, + param: 'cv', + compare: (a: IstioConfigItem, b: IstioConfigItem) => + compareValidations(a, b), + }, + { + id: 'cluster', + title: 'Cluster', + isNumeric: false, + param: 'cl', + compare: (a: IstioConfigItem, b: IstioConfigItem): number => { + if (a.cluster && b.cluster) { + let sortValue = a.cluster.localeCompare(b.cluster); + if (sortValue === 0) { + sortValue = a.name.localeCompare(b.name); + } + return sortValue; + } + return 0; + }, + }, +]; + +export const istioNameFilter: FilterType = { + category: 'Istio Name', + placeholder: 'Filter by Istio Name', + filterType: AllFilterTypes.text, + action: FILTER_ACTION_APPEND, + filterValues: [], +}; + +// Used when Istio Config is implied +export const istioTypeFilter: FilterType = { + category: 'Type', + placeholder: 'Filter by Type', + filterType: AllFilterTypes.typeAhead, + action: FILTER_ACTION_APPEND, + filterValues: [ + { + id: 'AuthorizationPolicy', + title: 'AuthorizationPolicy', + }, + { + id: 'DestinationRule', + title: 'DestinationRule', + }, + { + id: 'EnvoyFilter', + title: 'EnvoyFilter', + }, + { + id: 'Gateway', + title: 'Gateway', + }, + { + id: 'K8sGateway', + title: 'K8sGateway', + }, + { + id: 'K8sGRPCRoute', + title: 'K8sGRPCRoute', + }, + { + id: 'K8sHTTPRoute', + title: 'K8sHTTPRoute', + }, + { + id: 'K8sReferenceGrant', + title: 'K8sReferenceGrant', + }, + { + id: 'K8sTCPRoute', + title: 'K8sTCPRoute', + }, + { + id: 'K8sTLSRoute', + title: 'K8sTLSRoute', + }, + { + id: 'PeerAuthentication', + title: 'PeerAuthentication', + }, + { + id: 'RequestAuthentication', + title: 'RequestAuthentication', + }, + { + id: 'ServiceEntry', + title: 'ServiceEntry', + }, + { + id: 'Sidecar', + title: 'Sidecar', + }, + { + id: 'Telemetry', + title: 'Telemetry', + }, + { + id: 'VirtualService', + title: 'VirtualService', + }, + { + id: 'WasmPlugin', + title: 'WasmPlugin', + }, + { + id: 'WorkloadEntry', + title: 'WorkloadEntry', + }, + { + id: 'WorkloadGroup', + title: 'WorkloadGroup', + }, + ], +}; + +// Used when Istio Config should be explicit +export const istioConfigTypeFilter = { + ...istioTypeFilter, + category: 'Istio Config Type', + placeholder: 'Filter by Istio Config Type', +}; + +export const configValidationFilter: FilterType = { + category: 'Config', + placeholder: 'Filter by Config Validation', + filterType: AllFilterTypes.select, + action: FILTER_ACTION_APPEND, + filterValues: [ + { + id: 'valid', + title: 'Valid', + }, + { + id: 'warning', + title: 'Warning', + }, + { + id: 'notvalid', + title: 'Not Valid', + }, + { + id: 'notvalidated', + title: 'Not Validated', + }, + ], +}; + +export const availableFilters: FilterType[] = [ + istioTypeFilter, + istioNameFilter, + configValidationFilter, +]; + +const configurationToggle: ToggleType = { + label: 'Configuration Validation', + name: 'configuration', + isChecked: true, +}; + +export const getAvailableToggles = (): ToggleType[] => { + configurationToggle.isChecked = + serverConfig.kialiFeatureFlags.uiDefaults.list.includeValidations; + return [configurationToggle]; +}; + +export const sortIstioItems = ( + unsorted: IstioConfigItem[], + sortField: SortField, + isAscending: boolean, +): IstioConfigItem[] => { + return unsorted.sort( + isAscending ? sortField.compare : (a, b) => sortField.compare(b, a), + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/IstioConfigList/IstioConfigListPage.tsx b/workspaces/kiali/plugins/kiali/src/pages/IstioConfigList/IstioConfigListPage.tsx new file mode 100644 index 0000000000..89e2f05130 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/IstioConfigList/IstioConfigListPage.tsx @@ -0,0 +1,128 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; +import { useAsyncFn, useDebounce } from 'react-use'; + +import { Content } from '@backstage/core-components'; +import { useApi } from '@backstage/core-plugin-api'; + +import { CircularProgress } from '@material-ui/core'; + +import { DefaultSecondaryMasthead } from '../../components/DefaultSecondaryMasthead/DefaultSecondaryMasthead'; +import { VirtualList } from '../../components/VirtualList/VirtualList'; +import { isMultiCluster } from '../../config'; +import { nsEqual } from '../../helpers/namespaces'; +import { kialiApiRef } from '../../services/Api'; +import { KialiAppState, KialiContext } from '../../store'; +import { baseStyle } from '../../styles/StyleUtils'; +import { IstioConfigItem, toIstioItems } from '../../types/IstioConfigList'; +import { NamespaceInfo } from '../../types/NamespaceInfo'; +import { ENTITY } from '../../types/types'; +import { getNamespaces } from '../Overview/OverviewPage'; + +export const IstioConfigListPage = (props: { + view?: string; +}): React.JSX.Element => { + const kialiClient = useApi(kialiApiRef); + const kialiState = React.useContext(KialiContext) as KialiAppState; + const [namespaces, setNamespaces] = React.useState([]); + const [allIstioConfigs, setIstioConfigs] = React.useState( + [], + ); + const activeNs = kialiState.namespaces.activeNamespaces.map(ns => ns.name); + const prevActiveNs = React.useRef(activeNs); + const [loadingD, setLoading] = React.useState(true); + + const fetchIstioConfigs = async (nss: NamespaceInfo[]): Promise => { + return kialiClient + .getAllIstioConfigs( + nss.map(ns => { + return ns.name; + }), + [], + true, + '', + '', + ) + .then(results => { + let istioItems: IstioConfigItem[] = []; + + nss.forEach(ns => { + istioItems = istioItems.concat(toIstioItems(results[ns.name])); + }); + + setIstioConfigs(istioItems); + }); + }; + + const load = async () => { + kialiClient.getNamespaces().then(namespacesResponse => { + const allNamespaces: NamespaceInfo[] = getNamespaces( + namespacesResponse, + namespaces, + ); + const nsl = allNamespaces.filter(ns => activeNs.includes(ns.name)); + setNamespaces(nsl); + fetchIstioConfigs(nsl); + }); + setTimeout(() => { + setLoading(false); + }, 400); + }; + + const [{ loading }, refresh] = useAsyncFn( + async () => { + // Check if the config is loaded + await load(); + }, + [], + { loading: true }, + ); + useDebounce(refresh, 10); + + React.useEffect(() => { + if (!nsEqual(activeNs, prevActiveNs.current)) { + setLoading(true); + load(); + prevActiveNs.current = activeNs; + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [activeNs]); + + if (loading) { + return ; + } + + const hiddenColumns = isMultiCluster ? [] : ['cluster']; + + return ( +
    + + {props.view !== ENTITY && ( + load()} /> + )} + + +
    + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/Kiali/Header/HelpKiali.tsx b/workspaces/kiali/plugins/kiali/src/pages/Kiali/Header/HelpKiali.tsx new file mode 100644 index 0000000000..0540baea81 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/Kiali/Header/HelpKiali.tsx @@ -0,0 +1,50 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React from 'react'; + +import { Button } from '@material-ui/core'; +import { QuestionCircleIcon } from '@patternfly/react-icons'; + +import { AboutUIModal } from '../../../components/About/AboutUIModal'; +import { KialiAppState, KialiContext } from '../../../store'; + +export const HelpKiali = (props: { color?: string }) => { + const kialiState = React.useContext(KialiContext) as KialiAppState; + const [showAbout, setShowAbout] = React.useState(false); + + const openAbout = () => { + setShowAbout(true); + }; + + return ( + <> + + + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/Kiali/Header/KialiHeader.tsx b/workspaces/kiali/plugins/kiali/src/pages/Kiali/Header/KialiHeader.tsx new file mode 100644 index 0000000000..bd3ba62851 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/Kiali/Header/KialiHeader.tsx @@ -0,0 +1,66 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React from 'react'; + +import { Header } from '@backstage/core-components'; + +import { Chip, Tooltip } from '@material-ui/core'; +import { ClusterIcon } from '@patternfly/react-icons'; + +import { MessageCenter } from '../../../components/MessageCenter/MessageCenter'; +import { homeCluster } from '../../../config'; +import { KialiAppState, KialiContext } from '../../../store'; +import { HelpKiali } from './HelpKiali'; +import { NamespaceSelector } from './NamespaceSelector'; + +export const KialiHeader = () => { + const kialiState = React.useContext(KialiContext) as KialiAppState; + + return ( +
    }> + Kiali home cluster: {homeCluster?.name}} + style={{ marginTop: '10px', color: 'white' }} + > + } + label={homeCluster?.name} + data-test="home-cluster" + style={{ color: 'white' }} + /> + + + + {kialiState.authentication.session && ( +
    + + User : + {kialiState.authentication.session.username || 'anonymous'} + +
    + )} +
    + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/Kiali/Header/KialiHeaderEntity.tsx b/workspaces/kiali/plugins/kiali/src/pages/Kiali/Header/KialiHeaderEntity.tsx new file mode 100644 index 0000000000..bb220f3cf6 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/Kiali/Header/KialiHeaderEntity.tsx @@ -0,0 +1,74 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React from 'react'; + +import { Chip, Grid, Tooltip } from '@material-ui/core'; +import { ClusterIcon } from '@patternfly/react-icons'; + +import { MessageCenter } from '../../../components/MessageCenter/MessageCenter'; +import { homeCluster } from '../../../config'; +import { KialiAppState, KialiContext } from '../../../store'; +import { HelpKiali } from './HelpKiali'; +import { NamespaceSelector } from './NamespaceSelector'; + +export const KialiHeaderEntity = () => { + const kialiState = React.useContext(KialiContext) as KialiAppState; + + return ( +
    + + + + + +
    + Kiali home cluster: {homeCluster?.name}
    }> + } + label={homeCluster?.name} + /> + + + +
    + + {kialiState.authentication.session && ( + +
    + + User : + {kialiState.authentication.session.username || 'anonymous'} + +
    +
    + )} + + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/Kiali/Header/KialiTabs.tsx b/workspaces/kiali/plugins/kiali/src/pages/Kiali/Header/KialiTabs.tsx new file mode 100644 index 0000000000..d361019917 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/Kiali/Header/KialiTabs.tsx @@ -0,0 +1,67 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React, { useCallback, useEffect } from 'react'; +import { matchRoutes, useNavigate, useParams } from 'react-router-dom'; + +import { HeaderTabs } from '@backstage/core-components'; + +import { pluginName } from '../../../plugin'; +import { + appsRouteRef, + istioConfigRouteRef, + overviewRouteRef, + servicesRouteRef, + trafficGraphRouteRef, + workloadsRouteRef, +} from '../../../routes'; + +const tabs = [ + { id: 'overview', label: 'Overview', path: overviewRouteRef.path }, + { id: 'graph', label: 'Traffic Graph', path: trafficGraphRouteRef.path }, + { id: 'workloads', label: 'Workloads', path: workloadsRouteRef.path }, + { id: 'services', label: 'Services', path: servicesRouteRef.path }, + { id: 'apps', label: 'Applications', path: appsRouteRef.path }, + { id: 'istio', label: 'Istio Config', path: istioConfigRouteRef.path }, +]; +export const KialiTabs = () => { + const currentPath = `/${useParams()['*']}`; + const [matchedRoute] = matchRoutes(tabs, currentPath) ?? []; + + const currentTabIndex = matchedRoute + ? tabs.findIndex(t => t.path === matchedRoute.route.path) + : 0; + + const navigate = useNavigate(); + const handleTabChange = useCallback( + (index: number) => { + navigate(`/${pluginName}${tabs[index].path}`); + }, + [navigate], + ); + useEffect(() => { + if (currentTabIndex === 0) { + navigate(`/${pluginName}${tabs[0].path}`); + } + }, [currentTabIndex, navigate]); + + return ( + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/Kiali/Header/NamespaceSelector.tsx b/workspaces/kiali/plugins/kiali/src/pages/Kiali/Header/NamespaceSelector.tsx new file mode 100644 index 0000000000..2fc9d8ba49 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/Kiali/Header/NamespaceSelector.tsx @@ -0,0 +1,93 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React from 'react'; + +import { + Checkbox, + InputLabel, + ListItemText, + MenuItem, + Select, +} from '@material-ui/core'; + +import { NamespaceActions } from '../../../actions'; +import { KialiAppState, KialiContext } from '../../../store'; + +export const NamespaceSelector = (props: { page?: boolean }) => { + const kialiState = React.useContext(KialiContext) as KialiAppState; + + const handleChange = (event: any) => { + const { + target: { value }, + } = event; + kialiState.dispatch.namespaceDispatch( + NamespaceActions.setActiveNamespaces( + (kialiState.namespaces.items || []).filter(ns => + (value as string[]).includes(ns.name), + ), + ), + ); + }; + const ITEM_HEIGHT = 48; + const ITEM_PADDING_TOP = 8; + const MenuProps = { + PaperProps: { + style: { + maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP, + width: 250, + }, + }, + }; + return ( +
    + + Namespaces Selected + + +
    + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/Kiali/KialiEntity.tsx b/workspaces/kiali/plugins/kiali/src/pages/Kiali/KialiEntity.tsx new file mode 100644 index 0000000000..c81e797100 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/Kiali/KialiEntity.tsx @@ -0,0 +1,53 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React from 'react'; + +import { Content } from '@backstage/core-components'; + +import { Grid } from '@material-ui/core'; + +import { baseStyle } from '../../styles/StyleUtils'; +import { IstioConfigCard } from '../Overview/IstioConfigCard'; +import { ListViewPage } from '../Overview/ListView/ListViewPage'; +import { OverviewPage } from '../Overview/OverviewPage'; +import { TrafficGraphCard } from '../TrafficGraph/TrafficGraphCard'; + +export const KialiEntity = () => { + return ( +
    + + + + + + + + + + + + + + + + + + + + +
    + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/Kiali/KialiHelper.tsx b/workspaces/kiali/plugins/kiali/src/pages/Kiali/KialiHelper.tsx new file mode 100644 index 0000000000..65b2fd60fd --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/Kiali/KialiHelper.tsx @@ -0,0 +1,81 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React from 'react'; + +import { + CodeSnippet, + InfoCard, + Link, + WarningPanel, +} from '@backstage/core-components'; + +import HelpRounded from '@material-ui/icons/HelpRounded'; + +import { KialiChecker } from '../../store/KialiProvider'; + +export const KialiHelper = (props: { check: KialiChecker }) => { + const pretty = () => { + if (props.check.message) { + const helper = props.check.helper; + const attributes = + props.check.missingAttributes && + `Missing attributes: ${props.check.missingAttributes.join(',')}.`; + return ( + <> + + + + {attributes && ( + <> +
    {attributes} + + )} + {helper && ( + <> +
    + {helper} + + )} + + ); + } + return <>; + }; + + const printAuthentication = ( + <> + The authentication provided by Kiali is{' '} + {props.check.authData?.strategy}.
    + You need to install the kiali backend to be able to use this kiali. +
    Follow the steps in{' '} + + Kiali Plugin + + {pretty()} + + ); + + return props.check.verify ? ( + <> + ) : ( + + {props.check.authData ? printAuthentication : pretty()} + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/Kiali/KialiNoAnnotation.tsx b/workspaces/kiali/plugins/kiali/src/pages/Kiali/KialiNoAnnotation.tsx new file mode 100644 index 0000000000..52d93cb26c --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/Kiali/KialiNoAnnotation.tsx @@ -0,0 +1,37 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React from 'react'; + +import { + Content, + MissingAnnotationEmptyState, + Page, +} from '@backstage/core-components'; + +import { ANNOTATION_SUPPORTED } from '../../components/Router'; + +export const KialiNoAnnotation = () => { + return ( + + + + + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/Kiali/KialiNoResources.tsx b/workspaces/kiali/plugins/kiali/src/pages/Kiali/KialiNoResources.tsx new file mode 100644 index 0000000000..370d16e46b --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/Kiali/KialiNoResources.tsx @@ -0,0 +1,70 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React from 'react'; + +import { Entity } from '@backstage/catalog-model'; +import { + CodeSnippet, + Content, + EmptyState, + Page, +} from '@backstage/core-components'; + +import { Box } from '@material-ui/core'; + +import { ANNOTATION_SUPPORTED } from '../../components/Router'; + +export const KialiNoResources = (props: { entity: Entity }) => { + const annotationsKey = Object.keys( + props.entity.metadata.annotations || [], + ).filter(key => ANNOTATION_SUPPORTED.indexOf(key) > -1); + return ( + + + + Kiali detected the annotations: +
      + {annotationsKey.map(key => ( +
    • + {key}:{' '} + {props.entity.metadata.annotations + ? props.entity.metadata.annotations[key] + : 'Not found'} +
    • + ))} +
    +
    + This is the entity loaded. + + + +
    + + } + /> +
    +
    + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/Kiali/KialiPage.tsx b/workspaces/kiali/plugins/kiali/src/pages/Kiali/KialiPage.tsx new file mode 100644 index 0000000000..a50c32250a --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/Kiali/KialiPage.tsx @@ -0,0 +1,72 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React from 'react'; + +import { Content, Page } from '@backstage/core-components'; + +import { AppListPage } from '../AppList/AppListPage'; +import { IstioConfigListPage } from '../IstioConfigList/IstioConfigListPage'; +import { OverviewPage } from '../Overview/OverviewPage'; +import { ServiceListPage } from '../ServiceList/ServiceListPage'; +import TrafficGraphPage from '../TrafficGraph/TrafficGraphPage'; +import { WorkloadListPage } from '../WorkloadList/WorkloadListPage'; +import { KialiHeader } from './Header/KialiHeader'; +import { KialiTabs } from './Header/KialiTabs'; +import { KialiNoPath } from './NoPath'; + +const noPath = 'noPath'; +const getPathPage = () => { + const pathname = window.location.pathname.split('/').pop(); + if (pathname && pathname === 'kiali') { + return 'overview'; + } else if (pathname) { + return pathname; + } + return noPath; +}; + +export const KialiPage = () => { + const [selectedTab, _] = React.useState(getPathPage()); + + const renderPath = () => { + switch (selectedTab) { + case 'overview': + return ; + case 'workloads': + return ; + case 'services': + return ; + case 'applications': + return ; + case 'istio': + return ; + case 'graph': + return ; + default: + return ; + } + }; + + return ( + + + + + {renderPath()} + + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/Kiali/NoPath.tsx b/workspaces/kiali/plugins/kiali/src/pages/Kiali/NoPath.tsx new file mode 100644 index 0000000000..a23d1ea39f --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/Kiali/NoPath.tsx @@ -0,0 +1,40 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React from 'react'; +import { useLocation } from 'react-router-dom'; + +import { Content, Link, Page, WarningPanel } from '@backstage/core-components'; +import { useRouteRef } from '@backstage/core-plugin-api'; + +import { rootRouteRef } from '../../routes'; + +export const KialiNoPath = () => { + const location = useLocation().pathname; + const link = useRouteRef(rootRouteRef); + return ( + + + + Path {location} not exist in Kiali Plugin.{' '} + Go to Kiali Plugin + + + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/Kiali/index.ts b/workspaces/kiali/plugins/kiali/src/pages/Kiali/index.ts new file mode 100644 index 0000000000..d8fbd1096c --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/Kiali/index.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +export * from './KialiPage'; +export * from './NoPath'; diff --git a/workspaces/kiali/plugins/kiali/src/pages/Overview/IstioConfigCard.tsx b/workspaces/kiali/plugins/kiali/src/pages/Overview/IstioConfigCard.tsx new file mode 100644 index 0000000000..e449533440 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/Overview/IstioConfigCard.tsx @@ -0,0 +1,32 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import '@backstage/core-components'; + +import { Card, CardHeader } from '@material-ui/core'; + +import { ENTITY } from '../../types/types'; +import { IstioConfigListPage } from '../IstioConfigList/IstioConfigListPage'; + +export const IstioConfigCard = () => { + return ( + + + + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/Overview/ListView/ListViewPage.tsx b/workspaces/kiali/plugins/kiali/src/pages/Overview/ListView/ListViewPage.tsx new file mode 100644 index 0000000000..d276c9399d --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/Overview/ListView/ListViewPage.tsx @@ -0,0 +1,77 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; +import { useSearchParams } from 'react-router-dom'; + +import { CardTab, TabbedCard } from '@backstage/core-components'; + +import { ENTITY } from '../../../types/types'; +import { AppListPage } from '../../AppList/AppListPage'; +import { ServiceListPage } from '../../ServiceList/ServiceListPage'; +import { WorkloadListPage } from '../../WorkloadList/WorkloadListPage'; + +export const ListViewPage = () => { + const [searchParams, setSearchParams] = useSearchParams(); + const tabParam = searchParams.get('tabresources'); + const [tab, setTab] = React.useState(tabParam || 'workloads'); + + const updateTab = (tabvalue: string) => { + setTab(tabvalue); + setSearchParams({ ['tabresources']: tabvalue }); + }; + const tabStyle: React.CSSProperties = { + height: '350px', + overflowY: 'scroll', + }; + + const cardStyle: React.CSSProperties = { + marginRight: '20px', + }; + + return ( +
    + + updateTab('workloads')} + label="Workloads" + > +
    + +
    +
    + updateTab('services')} + label="Services" + > +
    + +
    +
    + updateTab('applications')} + label="Applications" + > +
    + +
    +
    +
    +
    + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/Overview/NamespaceInfo.ts b/workspaces/kiali/plugins/kiali/src/pages/Overview/NamespaceInfo.ts new file mode 100644 index 0000000000..b42e4d208e --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/Overview/NamespaceInfo.ts @@ -0,0 +1,43 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { IstioConfigList } from '../../types/IstioConfigList'; +import { ValidationStatus } from '../../types/IstioObjects'; +import { ControlPlaneMetricsMap, Metric } from '../../types/Metrics'; +import { TLSStatus } from '../../types/TLSStatus'; + +export type NamespaceInfo = { + name: string; + cluster?: string; + outboundPolicyMode?: string; + status?: NamespaceStatus; + tlsStatus?: TLSStatus; + istioConfig?: IstioConfigList; + validations?: ValidationStatus; + metrics?: Metric[]; + errorMetrics?: Metric[]; + labels?: { [key: string]: string }; + annotations?: { [key: string]: string }; + controlPlaneMetrics?: ControlPlaneMetricsMap; + isAmbient?: boolean; +}; + +export type NamespaceStatus = { + inNotReady: string[]; + inError: string[]; + inWarning: string[]; + inSuccess: string[]; + notAvailable: string[]; +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/CanaryUpgradeProgress.tsx b/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/CanaryUpgradeProgress.tsx new file mode 100644 index 0000000000..3877b8a969 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/CanaryUpgradeProgress.tsx @@ -0,0 +1,92 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { Tooltip, useTheme } from '@material-ui/core'; +import { + ChartDonutUtilization, + ChartLabel, + ChartThemeColor, +} from '@patternfly/react-charts'; + +import { KialiIcon } from '../../../config/KialiIcon'; +import { kialiStyle } from '../../../styles/StyleUtils'; +import { CanaryUpgradeStatus } from '../../../types/IstioObjects'; + +type Props = { + canaryUpgradeStatus: CanaryUpgradeStatus; +}; + +export const infoStyle = kialiStyle({ + margin: '0px 0px -1px 4px', +}); + +export const CanaryUpgradeProgress = (props: Props) => { + const total = + props.canaryUpgradeStatus.migratedNamespaces.length + + props.canaryUpgradeStatus.pendingNamespaces.length; + const migrated = + total > 0 + ? (props.canaryUpgradeStatus.migratedNamespaces.length * 100) / total + : 0; + const theme = useTheme().palette.type; + return ( +
    +
    +
    + Canary upgrade status + + + + + +
    +
    + + datum.x ? `${datum.x}: ${datum.y.toFixed(2)}%` : null + } + invert + title={`${migrated.toFixed(2)}%`} + height={170} + themeColor={ChartThemeColor.green} + titleComponent={ + + } + /> +
    +
    +

    {`${props.canaryUpgradeStatus.migratedNamespaces.length} of ${total} namespaces migrated`}

    +
    +
    +
    + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/ControlPlaneBadge.tsx b/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/ControlPlaneBadge.tsx new file mode 100644 index 0000000000..3831f93083 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/ControlPlaneBadge.tsx @@ -0,0 +1,59 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { Chip, makeStyles } from '@material-ui/core'; + +import { AmbientBadge } from '../../../components/Ambient/AmbientBadge'; +import { IstioStatusInline } from '../../../components/IstioStatus/IstioStatusInline'; +import { serverConfig } from '../../../config'; +import { ComponentStatus } from '../../../types/IstioStatus'; +import { isRemoteCluster } from './OverviewCardControlPlaneNamespace'; +import { RemoteClusterBadge } from './RemoteClusterBadge'; + +type Props = { + cluster?: string; + annotations?: { [key: string]: string }; + status: ComponentStatus[]; +}; + +const useStyles = makeStyles(() => ({ + controlPlane: { + backgroundColor: '#f3faf2', + color: '#1e4f18', + marginLeft: '5px', + }, +})); + +export const ControlPlaneBadge = (props: Props): React.JSX.Element => { + const classes = useStyles(); + return ( + <> + + {isRemoteCluster(props.annotations) && } + {serverConfig.ambientEnabled && ( + + )}{' '} + + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/ControlPlaneNamespaceStatus.tsx b/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/ControlPlaneNamespaceStatus.tsx new file mode 100644 index 0000000000..9dc23da679 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/ControlPlaneNamespaceStatus.tsx @@ -0,0 +1,125 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { Chip, Tooltip } from '@material-ui/core'; +import { useTheme } from '@material-ui/core/styles'; + +import { KialiIcon } from '../../../config/KialiIcon'; +import { getChipStyle } from '../../../styles/StyleUtils'; +import { OutboundTrafficPolicy } from '../../../types/IstioObjects'; +import { NamespaceInfo } from '../NamespaceInfo'; +import { infoStyle } from './OverviewCardControlPlaneNamespace'; + +type Props = { + namespace: NamespaceInfo; + outboundTrafficPolicy?: OutboundTrafficPolicy; +}; + +export const ControlPlaneNamespaceStatus = (props: Props) => { + const theme = useTheme(); + const chipStyle = getChipStyle(theme); + + let maxProxyPushTime: number | undefined = undefined; + if (props.namespace.controlPlaneMetrics?.istiod_proxy_time) { + maxProxyPushTime = + props.namespace.controlPlaneMetrics?.istiod_proxy_time[0].datapoints.reduce( + (a, b) => (a[1] < b[1] ? a : b), + [Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER], + )[1] * 1000; + } + let showProxyPushTime = false; + if (maxProxyPushTime && !isNaN(maxProxyPushTime)) { + showProxyPushTime = true; + } + + return ( +
    + {props.outboundTrafficPolicy && ( +
    +
    + Outbound policy +
    + + This value represents the meshConfig.outboundTrafficPolicy.mode, + that configures the sidecar handling of external services, that + is, those services that are not defined in Istio’s internal + service registry. If this option is set to ALLOW_ANY, the Istio + proxy lets calls to unknown services pass through. If the option + is set to REGISTRY_ONLY, then the Istio proxy blocks any host + without an HTTP service or service entry defined within the mesh +
    + } + > + + {props.outboundTrafficPolicy.mode} + + + } + /> + +
    + )} + {showProxyPushTime && ( +
    +
    + Proxy push time +
    + + This value represents the delay in seconds between config change + and a proxy receiving all required configuration. +
    + } + > + + {maxProxyPushTime?.toFixed(2)} ms + + + } + /> + + + )} + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/ControlPlaneVersionBadge.tsx b/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/ControlPlaneVersionBadge.tsx new file mode 100644 index 0000000000..80b08d9617 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/ControlPlaneVersionBadge.tsx @@ -0,0 +1,39 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { Chip } from '@material-ui/core'; + +type Props = { + version: string; + isCanary: boolean; +}; + +export class ControlPlaneVersionBadge extends React.Component { + render() { + return ( + + ); + } +} diff --git a/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/NamespaceHeader.tsx b/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/NamespaceHeader.tsx new file mode 100644 index 0000000000..f671dcc8df --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/NamespaceHeader.tsx @@ -0,0 +1,98 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React from 'react'; + +import { CardHeader, Chip } from '@material-ui/core'; + +import { serverConfig } from '../../../config'; +import { CanaryUpgradeStatus } from '../../../types/IstioObjects'; +import { ComponentStatus } from '../../../types/IstioStatus'; +import { NamespaceInfo } from '../NamespaceInfo'; +import { ControlPlaneBadge } from './ControlPlaneBadge'; +import { ControlPlaneVersionBadge } from './ControlPlaneVersionBadge'; + +type NamespaceHeaderProps = { + namespace: NamespaceInfo; + istioAPIEnabled?: boolean; + canaryUpgradeStatus?: CanaryUpgradeStatus; + istioStatus: ComponentStatus[]; +}; + +export const NamespaceHeader = (props: NamespaceHeaderProps) => { + const isIstioSystem = serverConfig.istioNamespace === props.namespace.name; + + const hasCanaryUpgradeConfigured = (): boolean => { + return props.canaryUpgradeStatus + ? props.canaryUpgradeStatus.pendingNamespaces.length > 0 || + props.canaryUpgradeStatus.migratedNamespaces.length > 0 + : false; + }; + return ( + + {props.namespace.name} + {isIstioSystem && ( + + )} + {!props.istioAPIEnabled && ( + + )} + + } + subheader={ + <> + {props.namespace.name !== serverConfig.istioNamespace && + hasCanaryUpgradeConfigured() && + props.canaryUpgradeStatus?.migratedNamespaces.includes( + props.namespace.name, + ) && ( + + )} + {props.namespace.name !== serverConfig.istioNamespace && + hasCanaryUpgradeConfigured() && + props.canaryUpgradeStatus?.pendingNamespaces.includes( + props.namespace.name, + ) && ( + + )} + {props.namespace.name === serverConfig.istioNamespace && + !props.istioAPIEnabled && ( + + )} + + } + /> + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/NamespaceLabels.tsx b/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/NamespaceLabels.tsx new file mode 100644 index 0000000000..897b4e0788 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/NamespaceLabels.tsx @@ -0,0 +1,53 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React from 'react'; + +import { Tooltip } from '@material-ui/core'; + +import { KialiIcon } from '../../../config'; +import { infoStyle } from './CanaryUpgradeProgress'; + +type NamespaceLabelsprops = { + labels?: { [key: string]: string }; +}; +export const NamespaceLabels = (props: NamespaceLabelsprops) => { + const labelsLength = props.labels + ? `${Object.entries(props.labels).length}` + : 'No'; + const tooltipTitle = ( +
      + {Object.entries(props.labels || []).map(([key, value]) => ( +
    • + {key}={value} +
    • + ))} +
    + ); + return props.labels ? ( + <> +
    + {labelsLength} label{labelsLength !== '1' ? 's' : ''} +
    + + + + + + + ) : ( +
    No labels
    + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/NamespaceStatus.tsx b/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/NamespaceStatus.tsx new file mode 100644 index 0000000000..e72a326547 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/NamespaceStatus.tsx @@ -0,0 +1,139 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React from 'react'; + +import { Paths } from '../../../config'; +import { + DurationInSeconds, + IntervalInMilliseconds, +} from '../../../types/Common'; +import { DEGRADED, FAILURE, HEALTHY, NOT_READY } from '../../../types/Health'; +import { NamespaceInfo } from '../NamespaceInfo'; +import { switchType } from '../OverviewHelper'; +import { OverviewStatus } from '../OverviewStatus'; +import { OverviewType } from '../OverviewToolbar'; + +type NamespaceStatusProps = { + namespace: NamespaceInfo; + type: OverviewType; + duration: DurationInSeconds; + refreshInterval: IntervalInMilliseconds; +}; + +export const NamespaceStatus = (props: NamespaceStatusProps) => { + const ns = props.namespace; + const targetPage = switchType( + props.type, + Paths.APPLICATIONS, + Paths.SERVICES, + Paths.WORKLOADS, + ); + const name = ns.name; + let nbItems = 0; + if (ns.status) { + nbItems = + ns.status.inError.length + + ns.status.inWarning.length + + ns.status.inSuccess.length + + ns.status.notAvailable.length + + ns.status.inNotReady.length; + } + let text: string; + if (nbItems === 1) { + text = switchType(props.type, '1 application', '1 service', '1 workload'); + } else { + text = `${nbItems}${switchType( + props.type, + ' applications', + ' services', + ' workloads', + )}`; + } + const mainLink = ( +
    + {text} +
    + ); + if (nbItems === ns.status?.notAvailable.length) { + return ( +
    + + {mainLink} +
    N/A
    +
    +
    + ); + } + return ( +
    + + {mainLink} +
    + {ns.status && ns.status.inNotReady.length > 0 && ( + + )} + {ns.status && ns.status.inError.length > 0 && ( + + )} + {ns.status && ns.status.inWarning.length > 0 && ( + + )} + {ns.status && ns.status.inSuccess.length > 0 && ( + + )} +
    +
    +
    + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/OverviewCard.tsx b/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/OverviewCard.tsx new file mode 100644 index 0000000000..e929f0db8d --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/OverviewCard.tsx @@ -0,0 +1,186 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React from 'react'; + +import { Card, CardContent, Grid } from '@material-ui/core'; + +import * as FilterHelper from '../../../components/FilterList/FilterHelper'; +import { NamespaceMTLSStatus } from '../../../components/MTls/NamespaceMTLSStatus'; +import { TLSInfo } from '../../../components/Overview/TLSInfo'; +import { PFBadge, PFBadges } from '../../../components/Pf/PfBadges'; +import { ValidationSummary } from '../../../components/Validations/ValidationSummary'; +import { isMultiCluster, serverConfig } from '../../../config'; +import { CertsInfo } from '../../../types/CertsInfo'; +import { + DurationInSeconds, + IntervalInMilliseconds, +} from '../../../types/Common'; +import { + CanaryUpgradeStatus, + OutboundTrafficPolicy, + ValidationStatus, +} from '../../../types/IstioObjects'; +import { + ComponentStatus, + IstiodResourceThresholds, +} from '../../../types/IstioStatus'; +import { NamespaceInfo } from '../NamespaceInfo'; +import { DirectionType, OverviewType } from '../OverviewToolbar'; +import { CanaryUpgradeProgress } from './CanaryUpgradeProgress'; +import { ControlPlaneNamespaceStatus } from './ControlPlaneNamespaceStatus'; +import { NamespaceHeader } from './NamespaceHeader'; +import { NamespaceLabels } from './NamespaceLabels'; +import { NamespaceStatus } from './NamespaceStatus'; +import { OverviewCardSparklineCharts } from './OverviewCardSparklineCharts'; + +type OverviewCardProps = { + namespace: NamespaceInfo; + entity?: boolean; + canaryUpgradeStatus?: CanaryUpgradeStatus; + duration: DurationInSeconds; + refreshInterval: IntervalInMilliseconds; + istioAPIEnabled?: boolean; + type: OverviewType; + direction: DirectionType; + certsInfo: CertsInfo[]; + minTLS: string; + outboundTrafficPolicy: OutboundTrafficPolicy; + istiodResourceThresholds?: IstiodResourceThresholds; + istioStatus: ComponentStatus[]; +}; + +export const OverviewCard = (props: OverviewCardProps) => { + const isIstioSystem = serverConfig.istioNamespace === props.namespace.name; + const hasCanaryUpgradeConfigured = (): boolean => { + return props.canaryUpgradeStatus + ? props.canaryUpgradeStatus.pendingNamespaces.length > 0 || + props.canaryUpgradeStatus.migratedNamespaces.length > 0 + : false; + }; + + const renderCharts = (): React.JSX.Element => { + const chart = ( + + ); + const canaryConfigured = hasCanaryUpgradeConfigured(); + return isIstioSystem ? ( + + {canaryConfigured && ( + + + + )} + + {chart} + + + ) : ( + chart + ); + }; + + const renderIstioConfigStatus = (ns: NamespaceInfo): React.JSX.Element => { + let validations: ValidationStatus = { + objectCount: 0, + errors: 0, + warnings: 0, + }; + if (!!ns.validations) { + validations = ns.validations; + } + + return ( + + ); + }; + + return ( + + {!props.entity && } + + {!props.entity && isMultiCluster && props.namespace.cluster && ( + <> + + {props.namespace.cluster} + + )} + + + {!props.entity && ( + <> + +
    +
    + Istio config +
    + {props.namespace.tlsStatus && ( + + + + )} + {props.istioAPIEnabled + ? renderIstioConfigStatus(props.namespace) + : 'N/A'} +
    + + )} + {!props.entity && } + {isIstioSystem && ( + <> + + + + )} +
    + + {renderCharts()} + +
    +
    +
    + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/OverviewCardControlPlaneNamespace.tsx b/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/OverviewCardControlPlaneNamespace.tsx new file mode 100644 index 0000000000..19653ae898 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/OverviewCardControlPlaneNamespace.tsx @@ -0,0 +1,286 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { Card, CardContent, Grid, Tooltip } from '@material-ui/core'; + +import { SparklineChart } from '../../../components/Charts/SparklineChart'; +import { PFColors } from '../../../components/Pf/PfColors'; +import { KialiIcon } from '../../../config/KialiIcon'; +import { kialiStyle } from '../../../styles/StyleUtils'; +import { DurationInSeconds } from '../../../types/Common'; +import { IstiodResourceThresholds } from '../../../types/IstioStatus'; +import { Datapoint, Metric } from '../../../types/Metrics'; +import { RichDataPoint, VCLine } from '../../../types/VictoryChartInfo'; +import { toLocaleStringWithConditionalDate } from '../../../utils/Date'; +import { getName } from '../../../utils/RateIntervals'; +import { toVCLine } from '../../../utils/VictoryChartsUtils'; + +export const infoStyle = kialiStyle({ + margin: '0px 0px -1px 4px', +}); + +const controlPlaneAnnotation = 'topology.istio.io/controlPlaneClusters'; + +type ControlPlaneProps = { + pilotLatency?: Metric[]; + istiodContainerMemory?: Metric[]; + istiodContainerCpu?: Metric[]; + istiodProcessMemory?: Metric[]; + istiodProcessCpu?: Metric[]; + duration: DurationInSeconds; + istiodResourceThresholds?: IstiodResourceThresholds; +}; + +export function isRemoteCluster(annotations?: { + [key: string]: string; +}): boolean { + if (annotations && annotations[controlPlaneAnnotation]) { + return true; + } + return false; +} + +function showMetrics(metrics: Metric[] | undefined): boolean { + // show metrics if metrics exists and some values at least are not zero + if ( + metrics && + metrics.length > 0 && + metrics[0].datapoints.length > 0 && + metrics[0].datapoints.some(dp => Number(dp[1]) !== 0) + ) { + return true; + } + + return false; +} + +export class OverviewCardControlPlaneNamespace extends React.Component< + ControlPlaneProps, + {} +> { + render() { + const memorySeries: VCLine[] = []; + const cpuSeries: VCLine[] = []; + const memoryThresholds: VCLine[] = []; + const cpuThresholds: VCLine[] = []; + + // The CPU metric can be respresented by a container or a process metric. We need to check which one to use + let cpuMetricSource = 'container'; + let cpu = this.props.istiodContainerCpu; + if (!showMetrics(this.props.istiodContainerCpu)) { + cpu = this.props.istiodProcessCpu; + cpuMetricSource = 'process'; + } + + // The memory metric can be respresented by a container or a process metric. We need to check which one to use + let memoryMetricSource = 'process'; + let memory = this.props.istiodContainerMemory; + if (!showMetrics(this.props.istiodContainerMemory)) { + memory = this.props.istiodProcessMemory; + memoryMetricSource = 'container'; + } + + if (showMetrics(memory)) { + if (memory && memory?.length > 0) { + const data = toVCLine(memory[0].datapoints, 'Mb', PFColors.Green400); + + if (this.props.istiodResourceThresholds?.memory) { + const datapoint0: Datapoint = [ + memory[0].datapoints[0][0], + memory[0].datapoints[0][1], + ]; + datapoint0[1] = this.props.istiodResourceThresholds?.memory; + const datapointn: Datapoint = [ + memory[0].datapoints[memory[0].datapoints.length - 1][0], + memory[0].datapoints[memory[0].datapoints.length - 1][0], + ]; + datapointn[1] = this.props.istiodResourceThresholds?.memory; + const dataThre = toVCLine( + [datapoint0, datapointn], + 'Mb (Threshold)', + PFColors.Green300, + ); + memoryThresholds.push(dataThre); + } + + memorySeries.push(data); + } + } + + if (showMetrics(cpu)) { + if (cpu && cpu?.length > 0) { + const data = toVCLine(cpu[0].datapoints, 'cores', PFColors.Green400); + + if (this.props.istiodResourceThresholds?.cpu) { + const datapoint0: Datapoint = [ + cpu[0].datapoints[0][0], + cpu[0].datapoints[0][1], + ]; + datapoint0[1] = this.props.istiodResourceThresholds?.cpu; + const datapointn: Datapoint = [ + cpu[0].datapoints[cpu[0].datapoints.length - 1][0], + cpu[0].datapoints[cpu[0].datapoints.length - 1][0], + ]; + datapointn[1] = this.props.istiodResourceThresholds?.cpu; + const dataThre = toVCLine( + [datapoint0, datapointn], + 'cores', + PFColors.Green300, + ); + cpuThresholds.push(dataThre); + } + + cpuSeries.push(data); + } + } + return ( +
    +
    +
    + Control plane metrics +
    +
    +
    + + + {showMetrics(memory) && ( + + + + + Memory + + + {getName(this.props.duration).toLocaleLowerCase( + 'en-US', + )} + + This values represents the memory of the istiod{' '} + {memoryMetricSource} +
    + } + > +
    + +
    + + + + + + + `${toLocaleStringWithConditionalDate( + dp.x as Date, + )}\n${dp.y.toFixed(2)} ${dp.name}` + } + series={memorySeries} + labelName="mb" + thresholds={memoryThresholds} + /> + + + )} + {showMetrics(cpu) && ( + + + + + CPU + + + {getName(this.props.duration).toLocaleLowerCase( + 'en-US', + )} + + This values represents cpu of the istiod{' '} + {cpuMetricSource} +
    + } + > +
    + +
    + + + + + + + `${toLocaleStringWithConditionalDate( + dp.x as Date, + )}\n${dp.y.toFixed(2)} ${dp.name}` + } + series={cpuSeries} + labelName="cores" + thresholds={cpuThresholds} + /> + + + )} + + + + + ); + } +} diff --git a/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/OverviewCardDataPlaneNamespace.tsx b/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/OverviewCardDataPlaneNamespace.tsx new file mode 100644 index 0000000000..bc420042cc --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/OverviewCardDataPlaneNamespace.tsx @@ -0,0 +1,122 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { SparklineChart } from '../../../components/Charts/SparklineChart'; +import { PFColors } from '../../../components/Pf/PfColors'; +import { DurationInSeconds } from '../../../types/Common'; +import { Metric } from '../../../types/Metrics'; +import { RichDataPoint, VCLine } from '../../../types/VictoryChartInfo'; +import { toLocaleStringWithConditionalDate } from '../../../utils/Date'; +import { getName } from '../../../utils/RateIntervals'; +import { toVCLine } from '../../../utils/VictoryChartsUtils'; +import { DirectionType } from '../OverviewToolbar'; + +type Props = { + metrics?: Metric[]; + errorMetrics?: Metric[]; + duration: DurationInSeconds; + direction: DirectionType; +}; + +function showMetrics(metrics: Metric[] | undefined): boolean { + // show metrics if metrics exists and some values at least are not zero + if ( + metrics && + metrics.length > 0 && + metrics[0].datapoints.some(dp => Number(dp[1]) !== 0) + ) { + return true; + } + + return false; +} + +export class OverviewCardDataPlaneNamespace extends React.Component { + render() { + const series: VCLine[] = []; + + if (showMetrics(this.props.metrics)) { + if (this.props.metrics && this.props.metrics.length > 0) { + const data = toVCLine( + this.props.metrics[0].datapoints, + 'ops (Total)', + PFColors.Info, + ); + series.push(data); + } + + if (this.props.errorMetrics && this.props.errorMetrics.length > 0) { + const dataErrors = toVCLine( + this.props.errorMetrics[0].datapoints, + 'ops (4xx+5xx)', + PFColors.Danger, + ); + series.push(dataErrors); + } + } + + return ( +
    +
    + <> +
    + {series.length > 0 && ( + <> +
    + {`${this.props.direction} traffic, ${getName( + this.props.duration, + ).toLocaleLowerCase('en-US')}`} +
    + + `${toLocaleStringWithConditionalDate( + dp.x as Date, + )}\n${dp.y.toFixed(2)} ${dp.name}` + } + series={series} + labelName="ops" + /> + + )} + {series.length === 0 && ( +
    + No {this.props.direction.toLocaleLowerCase('en-US')} traffic +
    + )} +
    + ); + } +} diff --git a/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/OverviewCardSparklineCharts.tsx b/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/OverviewCardSparklineCharts.tsx new file mode 100644 index 0000000000..47422ad63b --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/OverviewCardSparklineCharts.tsx @@ -0,0 +1,69 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { serverConfig } from '../../../config'; +import { DurationInSeconds } from '../../../types/Common'; +import { IstiodResourceThresholds } from '../../../types/IstioStatus'; +import { ControlPlaneMetricsMap, Metric } from '../../../types/Metrics'; +import { DirectionType } from '../OverviewToolbar'; +import { + isRemoteCluster, + OverviewCardControlPlaneNamespace, +} from './OverviewCardControlPlaneNamespace'; +import { OverviewCardDataPlaneNamespace } from './OverviewCardDataPlaneNamespace'; + +type Props = { + name: string; + annotations?: { [key: string]: string }; + duration: DurationInSeconds; + direction: DirectionType; + metrics?: Metric[]; + istioAPIEnabled: boolean; + errorMetrics?: Metric[]; + controlPlaneMetrics?: ControlPlaneMetricsMap; + istiodResourceThresholds?: IstiodResourceThresholds; +}; + +export const OverviewCardSparklineCharts = (props: Props) => { + return ( + <> + {props.name !== serverConfig.istioNamespace && ( + + )} + {props.name === serverConfig.istioNamespace && + props.istioAPIEnabled && + !isRemoteCluster(props.annotations) && ( + + )} + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/RemoteClusterBadge.tsx b/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/RemoteClusterBadge.tsx new file mode 100644 index 0000000000..e8ce24ff60 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/RemoteClusterBadge.tsx @@ -0,0 +1,30 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { Chip } from '@material-ui/core'; + +export const RemoteClusterBadge = (): React.JSX.Element => { + return ( + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/index.ts b/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/index.ts new file mode 100644 index 0000000000..27a17e4536 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewCard/index.ts @@ -0,0 +1,16 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +export * from './OverviewCard'; diff --git a/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewHelper.ts b/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewHelper.ts new file mode 100644 index 0000000000..5079e4b0d2 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewHelper.ts @@ -0,0 +1,30 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { OverviewType } from './OverviewToolbar'; + +export const switchType = ( + type: OverviewType, + caseApp: T, + caseService: U, + caseWorkload: V, +): T | U | V => { + if (type === 'app') { + return caseApp; + } else if (type === 'service') { + return caseService; + } + return caseWorkload; +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewPage.tsx b/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewPage.tsx new file mode 100644 index 0000000000..c795440ad5 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewPage.tsx @@ -0,0 +1,534 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React, { useRef } from 'react'; + +import { CardTab, Content, TabbedCard } from '@backstage/core-components'; +import { useApi } from '@backstage/core-plugin-api'; + +import { CircularProgress, Grid } from '@material-ui/core'; +import _ from 'lodash'; + +import * as FilterHelper from '../../components/FilterList/FilterHelper'; +import { isMultiCluster, serverConfig } from '../../config'; +import { nsEqual } from '../../helpers/namespaces'; +import { getErrorString, kialiApiRef } from '../../services/Api'; +import { computePrometheusRateParams } from '../../services/Prometheus'; +import { KialiAppState, KialiContext } from '../../store'; +import { baseStyle } from '../../styles/StyleUtils'; +import { + DEGRADED, + FAILURE, + Health, + HEALTHY, + NamespaceAppHealth, + NamespaceServiceHealth, + NamespaceWorkloadHealth, + NOT_READY, +} from '../../types/Health'; +import { + CanaryUpgradeStatus, + OutboundTrafficPolicy, +} from '../../types/IstioObjects'; +import { IstiodResourceThresholds } from '../../types/IstioStatus'; +import { MessageType } from '../../types/MessageCenter'; +import { IstioMetricsOptions } from '../../types/MetricsOptions'; +import { SortField } from '../../types/SortFilters'; +import { nsWideMTLSStatus } from '../../types/TLSStatus'; +import { PromisesRegistry } from '../../utils/CancelablePromises'; +import { NamespaceInfo, NamespaceStatus } from './NamespaceInfo'; +import { OverviewCard } from './OverviewCard'; +import { switchType } from './OverviewHelper'; +import { + currentDirectionType, + currentOverviewType, + DirectionType, + OverviewToolbar, + OverviewType, +} from './OverviewToolbar'; +import * as Sorts from './Sorts'; + +export const getNamespaces = ( + namespacesResponse: NamespaceInfo[], + namespaces: NamespaceInfo[], +): NamespaceInfo[] => { + return namespacesResponse.map(ns => { + const previous = namespaces.find(prev => prev.name === ns.name); + return { + name: ns.name, + cluster: ns.cluster, + isAmbient: ns.isAmbient, + status: previous ? previous.status : undefined, + tlsStatus: previous ? previous.tlsStatus : undefined, + metrics: previous ? previous.metrics : undefined, + errorMetrics: previous ? previous.errorMetrics : undefined, + validations: previous ? previous.validations : undefined, + labels: ns.labels, + annotations: ns.annotations, + controlPlaneMetrics: previous ? previous.controlPlaneMetrics : undefined, + }; + }); +}; + +export const OverviewPage = (props: { entity?: boolean }) => { + const kialiClient = useApi(kialiApiRef); + const kialiState = React.useContext(KialiContext) as KialiAppState; + const activeNsName = kialiState.namespaces.activeNamespaces.map( + ns => ns.name, + ); + const prevActiveNs = useRef(activeNsName); + const promises = new PromisesRegistry(); + const [namespaces, setNamespaces] = React.useState([]); + const [outboundTrafficPolicy, setOutboundTrafficPolicy] = + React.useState({}); + const [canaryUpgradeStatus, setCanaryUpgradeStatus] = React.useState< + CanaryUpgradeStatus | undefined + >(undefined); + const [istiodResourceThresholds, setIstiodResourceThresholds] = + React.useState({ memory: 0, cpu: 0 }); + const [duration, setDuration] = React.useState( + FilterHelper.currentDuration(), + ); + const [overviewType, setOverviewType] = React.useState( + currentOverviewType(), + ); + const [directionType, setDirectionType] = React.useState( + currentDirectionType(), + ); + const [activeNs, setActiveNs] = React.useState([]); + + const sortedNamespaces = (nss: NamespaceInfo[]) => { + nss.sort((a, b) => { + if (a.name === serverConfig.istioNamespace) return -1; + if (b.name === serverConfig.istioNamespace) return 1; + return a.name.localeCompare(b.name); + }); + return nss; + }; + + const fetchHealthChunk = async (chunk: NamespaceInfo[]): Promise => { + const apiFunc = switchType( + overviewType, + kialiClient.getNamespaceAppHealth, + kialiClient.getNamespaceServiceHealth, + kialiClient.getNamespaceWorkloadHealth, + ); + + return Promise.all( + chunk.map(async nsInfo => { + const healthPromise: Promise< + NamespaceAppHealth | NamespaceWorkloadHealth | NamespaceServiceHealth + > = apiFunc(nsInfo.name, duration, nsInfo.cluster); + return healthPromise.then(rs => ({ health: rs, nsInfo: nsInfo })); + }), + ) + .then(results => { + results.forEach(result => { + const nsStatus: NamespaceStatus = { + inNotReady: [], + inError: [], + inWarning: [], + inSuccess: [], + notAvailable: [], + }; + Object.keys(result.health).forEach(item => { + const health: Health = result.health[item]; + const status = health.getGlobalStatus(); + if (status === FAILURE) { + nsStatus.inError.push(item); + } else if (status === DEGRADED) { + nsStatus.inWarning.push(item); + } else if (status === HEALTHY) { + nsStatus.inSuccess.push(item); + } else if (status === NOT_READY) { + nsStatus.inNotReady.push(item); + } else { + nsStatus.notAvailable.push(item); + } + }); + result.nsInfo.status = nsStatus; + }); + }) + .catch(err => + kialiState.alertUtils!.add( + `Could not fetch health: ${getErrorString(err)}`, + ), + ); + }; + + const fetchHealth = ( + nss: NamespaceInfo[], + isAscending: boolean, + sortField: SortField, + ): void => { + _.chunk(nss, 10).forEach(chunk => { + promises + .registerChained('healthchunks', undefined, () => + fetchHealthChunk(chunk), + ) + .then(() => { + let newNamespaces = nss.slice(); + if (sortField.id === 'health') { + newNamespaces = Sorts.sortFunc( + newNamespaces, + sortField, + isAscending, + ); + } + return newNamespaces; + }) + .catch(error => { + kialiState.alertUtils!.add( + `Could not fetch health: ${getErrorString(error)}`, + ); + if (error.isCanceled) { + return []; + } + return error; + }); + }); + }; + + const fetchTLSChunk = async (chunk: NamespaceInfo[]): Promise => { + return Promise.all( + chunk.map(async nsInfo => { + return kialiClient + .getNamespaceTls(nsInfo.name, nsInfo.cluster) + .then(rs => ({ status: rs, nsInfo: nsInfo })); + }), + ) + .then(results => { + results.forEach(result => { + result.nsInfo.tlsStatus = { + status: nsWideMTLSStatus( + result.status.status, + kialiState.meshTLSStatus.status, + ), + autoMTLSEnabled: result.status.autoMTLSEnabled, + minTLS: result.status.minTLS, + }; + }); + }) + .catch(err => + kialiState.alertUtils!.add( + `Could not fetch TLS status: ${getErrorString(err)}`, + ), + ); + }; + + const fetchTLS = ( + nss: NamespaceInfo[], + isAscending: boolean, + sortField: SortField, + ): void => { + _.chunk(nss, 10).forEach(chunk => { + promises + .registerChained('tlschunks', undefined, () => fetchTLSChunk(chunk)) + .then(() => { + let newNamespaces = nss.slice(); + if (sortField.id === 'mtls') { + newNamespaces = Sorts.sortFunc( + newNamespaces, + sortField, + isAscending, + ); + } + return newNamespaces; + }); + }); + }; + + const fetchOutboundTrafficPolicyMode = () => { + kialiClient + .getOutboundTrafficPolicyMode() + .then(response => { + setOutboundTrafficPolicy({ mode: response.mode }); + }) + .catch(error => { + kialiState.alertUtils!.addError( + 'Error fetching Mesh OutboundTrafficPolicy.Mode.', + error, + 'default', + MessageType.ERROR, + ); + }); + }; + + const fetchCanariesStatus = () => + kialiClient + .getCanaryUpgradeStatus() + .then(response => { + setCanaryUpgradeStatus({ + currentVersion: response.currentVersion, + upgradeVersion: response.upgradeVersion, + migratedNamespaces: response.migratedNamespaces, + pendingNamespaces: response.pendingNamespaces, + }); + }) + .catch(error => { + kialiState.alertUtils!.addError( + 'Error fetching canary upgrade status.', + error, + 'default', + MessageType.ERROR, + ); + }); + + const fetchIstiodResourceThresholds = () => { + kialiClient + .getIstiodResourceThresholds() + .then(response => setIstiodResourceThresholds(response)) + .catch(error => { + kialiState.alertUtils!.addError( + 'Error fetching Istiod resource thresholds.', + error, + 'default', + MessageType.ERROR, + ); + }); + }; + + const fetchValidationResultForCluster = async ( + nss: NamespaceInfo[], + cluster: string, + ) => { + return Promise.all([ + kialiClient.getConfigValidations(cluster), + kialiClient.getAllIstioConfigs([], [], false, '', '', cluster), + ]) + .then(results => { + nss.forEach(nsInfo => { + if ( + nsInfo.cluster && + nsInfo.cluster === cluster && + (results[0] as any)[nsInfo.cluster] + ) { + // @ts-expect-error + nsInfo.validations = results[0][nsInfo.cluster][nsInfo.name]; + } + if (nsInfo.cluster && nsInfo.cluster === cluster) { + nsInfo.istioConfig = results[1][nsInfo.name]; + } + }); + }) + .catch(err => + kialiState.alertUtils!.add( + `Could not fetch validations status: ${getErrorString(err)}`, + ), + ); + }; + + const fetchValidations = ( + nss: NamespaceInfo[], + isAscending: boolean, + sortField: SortField, + ) => { + const uniqueClusters = new Set(); + nss.forEach(namespace => { + if (namespace.cluster) { + uniqueClusters.add(namespace.cluster); + } + }); + + uniqueClusters.forEach(cluster => { + promises + .registerChained('validation', undefined, () => + fetchValidationResultForCluster(nss, cluster), + ) + .then(() => { + let newNamespaces = nss.slice(); + if (sortField.id === 'validations') { + newNamespaces = Sorts.sortFunc( + newNamespaces, + sortField, + isAscending, + ); + } + return newNamespaces; + }); + }); + }; + + const fetchMetricsChunk = async (chunk: NamespaceInfo[]) => { + const rateParams = computePrometheusRateParams(duration, 10); + const options: IstioMetricsOptions = { + filters: ['request_count', 'request_error_count'], + duration: duration, + step: rateParams.step, + rateInterval: rateParams.rateInterval, + direction: directionType, + reporter: directionType === 'inbound' ? 'destination' : 'source', + }; + return Promise.all( + chunk.map(nsInfo => { + if (nsInfo.cluster && isMultiCluster) { + options.clusterName = nsInfo.cluster; + } + return kialiClient + .getNamespaceMetrics(nsInfo.name, options) + .then(rs => { + nsInfo.metrics = rs.request_count; + nsInfo.errorMetrics = rs.request_error_count; + if (nsInfo.name === serverConfig.istioNamespace) { + nsInfo.controlPlaneMetrics = { + istiod_proxy_time: rs.pilot_proxy_convergence_time, + istiod_container_cpu: rs.container_cpu_usage_seconds_total, + istiod_container_mem: rs.container_memory_working_set_bytes, + istiod_process_cpu: rs.process_cpu_seconds_total, + istiod_process_mem: rs.process_resident_memory_bytes, + }; + } + return nsInfo; + }); + }), + ).catch(err => + kialiState.alertUtils!.add( + `Could not fetch metrics: ${getErrorString(err)}`, + ), + ); + }; + + const filterActiveNamespaces = (nss: NamespaceInfo[]) => { + return nss.filter(ns => activeNsName.includes(ns.name)); + }; + + const fetchMetrics = async (nss: NamespaceInfo[]) => { + // debounce async for back-pressure, ten by ten + _.chunk(nss, 10).forEach(chunk => { + promises + .registerChained('metricschunks', undefined, () => + fetchMetricsChunk(chunk), + ) + .then(() => { + nss.slice(); + setActiveNs(filterActiveNamespaces(nss)); + }); + }); + }; + + const load = async () => { + await kialiClient.getNamespaces().then(namespacesResponse => { + const allNamespaces: NamespaceInfo[] = getNamespaces( + namespacesResponse, + namespaces, + ); + + // Calculate information + const isAscending = FilterHelper.isCurrentSortAscending(); + const sortField = FilterHelper.currentSortField(Sorts.sortFields); + const sortNs = sortedNamespaces(allNamespaces); + if (!props.entity) { + fetchHealth(sortNs, isAscending, sortField); + fetchTLS(sortNs, isAscending, sortField); + fetchValidations(sortNs, isAscending, sortField); + fetchOutboundTrafficPolicyMode(); + fetchCanariesStatus(); + fetchIstiodResourceThresholds(); + } + fetchMetrics(sortNs); + promises.waitAll(); + setNamespaces(sortNs); + }); + }; + + React.useEffect(() => { + if (!nsEqual(activeNsName, prevActiveNs.current)) { + prevActiveNs.current = activeNsName; + load(); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [activeNsName]); + + React.useEffect(() => { + load(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [duration, overviewType, directionType]); + + if (namespaces.length === 0) { + return ; + } + + return ( + <> + {props.entity ? ( +
    + + {activeNs.map(ns => ( + + + + ))} + +
    + ) : ( +
    + + load()} + overviewType={overviewType} + setOverviewType={setOverviewType} + directionType={directionType} + setDirectionType={setDirectionType} + duration={duration} + setDuration={setDuration} + /> + + {activeNs.map((ns, i) => ( + + + + ))} + + +
    + )} + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewStatus.tsx b/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewStatus.tsx new file mode 100644 index 0000000000..a81c269c7f --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewStatus.tsx @@ -0,0 +1,97 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { Tooltip } from '@material-ui/core'; + +import { healthFilter } from '../../components/Filters/CommonFilters'; +import { FilterSelected } from '../../components/Filters/StatefulFilters'; +import { healthIndicatorStyle } from '../../components/Health/HealthStyle'; +import { createIcon } from '../../components/Health/Helper'; +import { Paths } from '../../config'; +import { DurationInSeconds, IntervalInMilliseconds } from '../../types/Common'; +import { ActiveFilter, DEFAULT_LABEL_OPERATION } from '../../types/Filters'; +import { Status } from '../../types/Health'; + +type Props = { + id: string; + namespace: string; + status: Status; + items: string[]; + targetPage: Paths; + duration: DurationInSeconds; + refreshInterval: IntervalInMilliseconds; +}; + +export class OverviewStatus extends React.Component { + setFilters = () => { + const filters: ActiveFilter[] = [ + { + category: healthFilter.category, + value: this.props.status.name, + }, + ]; + FilterSelected.setSelected({ + filters: filters, + op: DEFAULT_LABEL_OPERATION, + }); + }; + + render() { + const length = this.props.items.length; + let items = this.props.items; + if (items.length > 6) { + items = items.slice(0, 5); + items.push(`and ${length - items.length} more...`); + } + const tooltipContent = ( +
    + + {this.props.status.name} + + {items.map((app, idx) => { + return ( +
    + + {createIcon(this.props.status, 'sm')} + {' '} + {app} +
    + ); + })} +
    + ); + + return ( + <> + +
    + {createIcon(this.props.status)} + {` ${length}`} +
    +
    + + ); + } +} diff --git a/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewToolbar.tsx b/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewToolbar.tsx new file mode 100644 index 0000000000..eb26830aa6 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/Overview/OverviewToolbar.tsx @@ -0,0 +1,144 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React from 'react'; + +import { Select, SelectItem } from '@backstage/core-components'; + +import { HistoryManager, URLParam } from '../../app/History'; +import { DefaultSecondaryMasthead } from '../../components/DefaultSecondaryMasthead/DefaultSecondaryMasthead'; +import { TimeDurationComponent } from '../../components/Time/TimeDurationComponent'; +import { serverConfig } from '../../config'; + +export enum OverviewDisplayMode { + COMPACT, + EXPAND, + LIST, +} + +const overviewTypes = { + app: 'Apps', + workload: 'Workloads', + service: 'Services', +}; + +const directionTypes = { + inbound: 'Inbound', + outbound: 'Outbound', +}; + +export type OverviewType = keyof typeof overviewTypes; +export type DirectionType = keyof typeof directionTypes; + +type OverviewToolbarProps = { + onRefresh: () => void; + overviewType: OverviewType; + setOverviewType: React.Dispatch>; + directionType: DirectionType; + setDirectionType: React.Dispatch>; + duration: number; + setDuration: React.Dispatch>; +}; + +const healthTypeItems = Object.keys(overviewTypes).map(k => ({ + label: (overviewTypes as any)[k], + value: k, +})); + +const directionTypeItems = Object.keys(directionTypes).map(k => ({ + label: (directionTypes as any)[k], + value: k, +})); + +export const currentOverviewType = (): OverviewType => { + const otype = HistoryManager.getParam(URLParam.OVERVIEW_TYPE); + return (otype as OverviewType) || 'app'; +}; + +export const currentDirectionType = (): DirectionType => { + const drtype = HistoryManager.getParam(URLParam.DIRECTION_TYPE); + return (drtype as DirectionType) || 'inbound'; +}; + +export const getDurationType = (): SelectItem[] => { + const items: SelectItem[] = []; + Object.entries(serverConfig.durations).forEach(([key, value]) => + items.push({ + label: `Last ${value}`, + value: key, + }), + ); + return items; +}; + +export const OverviewToolbar = (props: OverviewToolbarProps) => { + const updateOverviewType = (otype: String) => { + const isOverviewType = (val: String): val is OverviewType => + val === 'app' || val === 'workload' || val === 'service'; + + if (isOverviewType(otype)) { + HistoryManager.setParam(URLParam.OVERVIEW_TYPE, otype); + props.setOverviewType(otype); + } else { + throw new Error('Overview type is not valid.'); + } + }; + + const updateDirectionType = (dtype: String) => { + const isDirectionType = (val: String): val is DirectionType => + val === 'inbound' || val === 'outbound'; + + if (isDirectionType(dtype)) { + HistoryManager.setParam(URLParam.DIRECTION_TYPE, dtype); + props.setDirectionType(dtype); + } else { + throw new Error('Direction type is not valid.'); + } + }; + + const grids = () => { + const elements = []; + elements.push( + updateDirectionType(e as String)} + label="Traffic" + items={directionTypeItems} + selected={props.directionType} + />, + , + ); + return elements; + }; + + return ( + props.onRefresh} + /> + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/Overview/Sorts.ts b/workspaces/kiali/plugins/kiali/src/pages/Overview/Sorts.ts new file mode 100644 index 0000000000..6cfbe2e304 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/Overview/Sorts.ts @@ -0,0 +1,139 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { serverConfig } from '../../config'; +import { SortField } from '../../types/SortFilters'; +import { NamespaceInfo } from './NamespaceInfo'; + +export const sortFields: SortField[] = [ + { + id: 'namespace', + title: 'Name', + isNumeric: false, + param: 'ns', + compare: (a: NamespaceInfo, b: NamespaceInfo) => + a.name.localeCompare(b.name), + }, + { + id: 'health', + title: 'Health', + isNumeric: false, + param: 'h', + compare: (a: NamespaceInfo, b: NamespaceInfo) => { + if (a.status && b.status) { + let diff = b.status.inError.length - a.status.inError.length; + if (diff !== 0) { + return diff; + } + diff = b.status.inWarning.length - a.status.inWarning.length; + if (diff !== 0) { + return diff; + } + } else if (a.status) { + return -1; + } else if (b.status) { + return 1; + } + // default comparison fallback + return a.name.localeCompare(b.name); + }, + }, + { + id: 'mtls', + title: 'mTLS', + isNumeric: false, + param: 'm', + compare: (a: NamespaceInfo, b: NamespaceInfo) => { + if (a.tlsStatus && b.tlsStatus) { + return a.tlsStatus.status.localeCompare(b.tlsStatus.status); + } else if (a.tlsStatus) { + return -1; + } else if (b.tlsStatus) { + return 1; + } + + // default comparison fallback + return a.name.localeCompare(b.name); + }, + }, + { + id: 'config', + title: 'Istio Config', + isNumeric: false, + param: 'ic', + compare: (a: NamespaceInfo, b: NamespaceInfo) => { + if (a.validations && b.validations) { + if (a.validations.errors === b.validations.errors) { + if (a.validations.warnings === b.validations.warnings) { + if (a.validations.objectCount && b.validations.objectCount) { + if (a.validations.objectCount === b.validations.objectCount) { + // If all equal, use name for sorting + return a.name.localeCompare(b.name); + } + return a.validations.objectCount > b.validations.objectCount + ? -1 + : 1; + } else if (a.validations.objectCount) { + return -1; + } else if (b.validations.objectCount) { + return 1; + } + } else { + return a.validations.warnings > b.validations.warnings ? -1 : 1; + } + } else { + return a.validations.errors > b.validations.errors ? -1 : 1; + } + } else if (a.validations) { + return -1; + } else if (b.validations) { + return 1; + } + + // default comparison fallback + return a.name.localeCompare(b.name); + }, + }, + { + id: 'cluster', + title: 'Cluster', + isNumeric: false, + param: 'cl', + compare: (a: NamespaceInfo, b: NamespaceInfo) => { + if (a.cluster && b.cluster) { + let sortValue = a.cluster.localeCompare(b.cluster); + if (sortValue === 0) { + sortValue = a.name.localeCompare(b.name); + } + return sortValue; + } + return 0; + }, + }, +]; + +export const sortFunc = ( + allNamespaces: NamespaceInfo[], + sortField: SortField, + isAscending: boolean, +) => { + const sortedNamespaces = allNamespaces + .filter(ns => ns.name !== serverConfig.istioNamespace) + .sort(isAscending ? sortField.compare : (a, b) => sortField.compare(b, a)); + + return allNamespaces + .filter(ns => ns.name === serverConfig.istioNamespace) + .concat(sortedNamespaces); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/ServiceDetails/ServiceDescription.tsx b/workspaces/kiali/plugins/kiali/src/pages/ServiceDetails/ServiceDescription.tsx new file mode 100644 index 0000000000..97e34a9152 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/ServiceDetails/ServiceDescription.tsx @@ -0,0 +1,259 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { + Card, + CardContent, + CardHeader, + Tooltip, + Typography, +} from '@material-ui/core'; + +import { DetailDescription } from '../../components/DetailDescription/DetailDescription'; +import { HealthIndicator } from '../../components/Health/HealthIndicator'; +import { Labels } from '../../components/Label/Labels'; +import { renderAPILogo } from '../../components/Logos/Logos'; +import { PFBadge, PFBadges } from '../../components/Pf/PfBadges'; +import { TextOrLink } from '../../components/TextOrLink'; +import { LocalTime } from '../../components/Time/LocalTime'; +import { isMultiCluster, serverConfig } from '../../config'; +import { KialiIcon } from '../../config/KialiIcon'; +import { cardsHeight, kialiStyle } from '../../styles/StyleUtils'; +import { AppWorkload } from '../../types/App'; +import { ServiceDetailsInfo, WorkloadOverview } from '../../types/ServiceInfo'; + +interface ServiceInfoDescriptionProps { + namespace: string; + serviceDetails?: ServiceDetailsInfo; + view?: string; +} + +const resourceListStyle = kialiStyle({ + marginBottom: '0.75rem', + $nest: { + '& > ul > li span': { + float: 'left', + width: '125px', + fontWeight: 700, + }, + }, +}); + +const iconStyle = kialiStyle({ + display: 'inline-block', +}); + +const infoStyle = kialiStyle({ + marginLeft: '0.5rem', + verticalAlign: '-0.125rem', +}); + +const healthIconStyle = kialiStyle({ + marginLeft: '0.5rem', + verticalAlign: '-0.075rem', +}); + +const additionalItemStyle = kialiStyle({ + display: 'flex', + alignItems: 'center', +}); + +export const ServiceDescription: React.FC = ( + props: ServiceInfoDescriptionProps, +) => { + const apps: string[] = []; + const workloads: AppWorkload[] = []; + + if (props.serviceDetails) { + if (props.serviceDetails.workloads) { + props.serviceDetails.workloads + .sort((w1: WorkloadOverview, w2: WorkloadOverview) => + w1.name < w2.name ? -1 : 1, + ) + .forEach(wk => { + if (wk.labels) { + const appName = wk.labels[serverConfig.istioLabels.appLabelName]; + + if (!apps.includes(appName)) { + apps.push(appName); + } + } + + workloads.push({ + workloadName: wk.name, + istioSidecar: wk.istioSidecar, + istioAmbient: wk.istioAmbient, + serviceAccountNames: wk.serviceAccountNames, + labels: wk.labels ?? {}, + }); + }); + } + } + + // We will show service labels only when there is some label that is not present in the selector + let showServiceLabels = false; + + if ( + props.serviceDetails && + props.serviceDetails.service?.labels && + props.serviceDetails.service?.selectors + ) { + const keys = Object.keys(props.serviceDetails.service.labels); + + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + const value = props.serviceDetails.service.labels[key]; + + if (props.serviceDetails.service.selectors[key] !== value) { + showServiceLabels = true; + break; + } + } + } + + const serviceProperties = ( +
    +
      + {props.serviceDetails && ( +
    • + Created + +
      + +
      +
    • + )} + + {props.serviceDetails && ( +
    • + Version + {props.serviceDetails.service?.resourceVersion} +
    • + )} + + {props.serviceDetails?.service?.additionalDetails?.map( + (additionalItem, idx) => { + return ( +
    • +
      + {additionalItem.title} + {additionalItem.icon && + renderAPILogo(additionalItem.icon, undefined, idx)} +
      + +
    • + ); + }, + )} +
    +
    + ); + + const serviceName = props.serviceDetails + ? props.serviceDetails.service?.name + : 'Service'; + let serviceBadge = PFBadges.Service; + + if (props.serviceDetails && props.serviceDetails.service) { + switch (props.serviceDetails.service.type) { + case 'External': + serviceBadge = PFBadges.ExternalService; + break; + case 'Federation': + serviceBadge = PFBadges.FederatedService; + break; + default: + serviceBadge = PFBadges.Service; + } + } + + return ( + + + +
    + +
    + + {serviceName} + + {serviceProperties} + } + > + <> + + + + + + + +
    + + {props.serviceDetails?.cluster && isMultiCluster && ( +
    + {' '} + {props.serviceDetails.cluster} +
    + )} + + } + /> + + + {props.serviceDetails && showServiceLabels && ( + + )} + + {props.serviceDetails && ( + + )} + + + +
    + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/ServiceDetails/ServiceDetailsPage.tsx b/workspaces/kiali/plugins/kiali/src/pages/ServiceDetails/ServiceDetailsPage.tsx new file mode 100644 index 0000000000..4b27127f1d --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/ServiceDetails/ServiceDetailsPage.tsx @@ -0,0 +1,262 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; +import { useLocation } from 'react-router-dom'; +import { useAsyncFn, useDebounce } from 'react-use'; + +import { Content, EmptyState } from '@backstage/core-components'; +import { useApi } from '@backstage/core-plugin-api'; + +import { CircularProgress, Tab, Tabs } from '@material-ui/core'; + +import { HistoryManager } from '../../app/History'; +import { + BreadcrumbView, + getPath, +} from '../../components/BreadcrumbView/BreadcrumbView'; +import { DefaultSecondaryMasthead } from '../../components/DefaultSecondaryMasthead/DefaultSecondaryMasthead'; +import * as FilterHelper from '../../components/FilterList/FilterHelper'; +import { IstioMetrics } from '../../components/Metrics/IstioMetrics'; +import { a11yProps, TabPanel, useStyles } from '../../components/Tab/TabPanel'; +import { TimeDurationComponent } from '../../components/Time/TimeDurationComponent'; +import { getErrorString, kialiApiRef } from '../../services/Api'; +import { KialiContext } from '../../store'; +import { KialiAppState } from '../../store/Store'; +import { baseStyle } from '../../styles/StyleUtils'; +import { + Gateway, + K8sGateway, + PeerAuthentication, + Validations, +} from '../../types/IstioObjects'; +import { MetricsObjectTypes } from '../../types/Metrics'; +import { ServiceDetailsInfo } from '../../types/ServiceInfo'; +import { ServiceInfo } from './ServiceInfo'; + +export const ServiceDetailsPage = (props: { entity?: boolean }) => { + const path = getPath(useLocation()); + const namespace = path.namespace; + const service = path.item; + const kialiClient = useApi(kialiApiRef); + const kialiState = React.useContext(KialiContext) as KialiAppState; + const [serviceItem, setServiceItem] = React.useState(); + const [duration, setDuration] = React.useState( + FilterHelper.currentDuration(), + ); + const cluster = HistoryManager.getClusterName(); + const [validations, setValidations] = React.useState(); + const [gateways, setGateways] = React.useState([]); + const [k8sGateways, setK8sGateways] = React.useState([]); + const [error, setError] = React.useState(); + const [peerAuthentication, setPeerAuthentication] = React.useState< + PeerAuthentication[] + >([]); + const [value, setValue] = React.useState(0); + const classes = useStyles(); + + const grids = () => { + const elements = []; + elements.push( + , + ); + return elements; + }; + + const fetchIstioObjects = async () => { + kialiClient + .getAllIstioConfigs( + [namespace ? namespace : ''], + ['gateways', 'k8sgateways', 'peerauthentications'], + false, + '', + '', + cluster, + ) + .then(response => { + const gws: Gateway[] = []; + const k8sGws: K8sGateway[] = []; + const peer: PeerAuthentication[] = []; + Object.values(response.data).forEach(item => { + gws.push(...item.gateways); + k8sGws.push(...item.k8sGateways); + peer.push(...item.peerAuthentication); + }); + setGateways(gws); + setK8sGateways(k8sGws); + setPeerAuthentication(peer); + }) + .catch(gwError => { + kialiState.alertUtils!.add( + `Could not fetch Gateways list: ${getErrorString(gwError)}`, + ); + }); + }; + + const fetchService = async () => { + if (!namespace || !service) { + setError(`Could not fetch service: Empty namespace or service name`); + kialiState.alertUtils?.add( + `Could not fetch service: Empty namespace or service name`, + ); + return; + } + + kialiClient + .getServiceDetail( + namespace ? namespace : '', + service ? service : '', + true, + cluster, + duration, + ) + .then((serviceResponse: ServiceDetailsInfo) => { + setServiceItem(serviceResponse); + setValidations(serviceResponse.validations); + fetchIstioObjects(); + }) + .catch(err => { + setError(`Could not fetch service: ${getErrorString(err)}`); + kialiState.alertUtils!.add( + `Could not fetch service: ${getErrorString(err)}`, + ); + }); + }; + + const [{ loading }, refresh] = useAsyncFn( + async () => { + // Check if the config is loaded + await fetchService(); + }, + [], + { loading: true }, + ); + useDebounce(refresh, 10); + + if (loading) { + return ; + } + + const overviewTab = (): React.ReactElement => { + return ( + <> + {serviceItem && ( + + )} + + ); + }; + + const inboundTab = (): React.ReactElement => { + return ( + <> + {namespace && service && ( + + )} + + ); + }; + + const outboundTab = (): React.ReactElement => { + return ( + <> + {namespace && service && ( + + )} + + ); + }; + + const handleChange = ( + _event: any, + newValue: React.SetStateAction, + ) => { + setValue(newValue); + }; + + return ( +
    + + + fetchService()} + /> + {error !== undefined && ( + No Service found
    } + /> + )} +
    + + + + + + + {overviewTab()} + + + {inboundTab()} + + + {outboundTab()} + +
    + + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/ServiceDetails/ServiceInfo.tsx b/workspaces/kiali/plugins/kiali/src/pages/ServiceDetails/ServiceInfo.tsx new file mode 100644 index 0000000000..795c68b857 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/ServiceDetails/ServiceInfo.tsx @@ -0,0 +1,164 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React from 'react'; + +import { Grid } from '@material-ui/core'; + +import { IstioConfigCard } from '../../components/IstioConfigCard/IstioConfigCard'; +import { DurationInSeconds } from '../../types/Common'; +import { + drToIstioItems, + gwToIstioItems, + k8sGwToIstioItems, + k8sHTTPRouteToIstioItems, + seToIstioItems, + validationKey, + vsToIstioItems, +} from '../../types/IstioConfigList'; +import { + Gateway, + K8sGateway, + ObjectValidation, + PeerAuthentication, + Validations, +} from '../../types/IstioObjects'; +import { ServiceId } from '../../types/ServiceId'; +import { ServiceDetailsInfo } from '../../types/ServiceInfo'; +import { DRAWER, ENTITY } from '../../types/types'; +import { ServiceDescription } from './ServiceDescription'; +import { ServiceNetwork } from './ServiceNetwork'; + +interface Props extends ServiceId { + cluster?: string; + duration: DurationInSeconds; + serviceDetails?: ServiceDetailsInfo; + gateways: Gateway[]; + k8sGateways: K8sGateway[]; + peerAuthentications: PeerAuthentication[]; + validations: Validations; + istioAPIEnabled: boolean; + view?: string; +} + +export const ServiceInfo = (serviceProps: Props) => { + const getServiceValidation = (): ObjectValidation | undefined => { + if ( + serviceProps.validations && + serviceProps.validations.service && + serviceProps.serviceDetails + ) { + return serviceProps.validations.service[ + validationKey( + serviceProps.serviceDetails.service.name, + serviceProps.namespace, + ) + ]; + } + return undefined; + }; + + const vsIstioConfigItems = serviceProps.serviceDetails?.virtualServices + ? vsToIstioItems( + serviceProps.serviceDetails.virtualServices, + serviceProps.serviceDetails.validations, + serviceProps.cluster, + ) + : []; + const drIstioConfigItems = serviceProps.serviceDetails?.destinationRules + ? drToIstioItems( + serviceProps.serviceDetails.destinationRules, + serviceProps.serviceDetails.validations, + serviceProps.cluster, + ) + : []; + const gwIstioConfigItems = + serviceProps?.gateways && serviceProps.serviceDetails?.virtualServices + ? gwToIstioItems( + serviceProps?.gateways, + serviceProps.serviceDetails.virtualServices, + serviceProps.serviceDetails.validations, + serviceProps.cluster, + ) + : []; + const k8sGwIstioConfigItems = + serviceProps?.k8sGateways && serviceProps.serviceDetails?.k8sHTTPRoutes + ? k8sGwToIstioItems( + serviceProps?.k8sGateways, + serviceProps.serviceDetails.k8sHTTPRoutes, + serviceProps.serviceDetails.validations, + serviceProps.cluster, + ) + : []; + const seIstioConfigItems = serviceProps.serviceDetails?.serviceEntries + ? seToIstioItems( + serviceProps.serviceDetails.serviceEntries, + serviceProps.serviceDetails.validations, + serviceProps.cluster, + ) + : []; + const k8sHTTPRouteIstioConfigItems = serviceProps.serviceDetails + ?.k8sHTTPRoutes + ? k8sHTTPRouteToIstioItems( + serviceProps.serviceDetails.k8sHTTPRoutes, + serviceProps.serviceDetails.validations, + serviceProps.cluster, + ) + : []; + const istioConfigItems = seIstioConfigItems.concat( + gwIstioConfigItems.concat( + k8sGwIstioConfigItems.concat( + vsIstioConfigItems.concat( + drIstioConfigItems.concat(k8sHTTPRouteIstioConfigItems), + ), + ), + ), + ); + + const size = + serviceProps.view === ENTITY || serviceProps.view === DRAWER ? 12 : 4; + return ( + <> + {serviceProps.serviceDetails && ( + + + + + {serviceProps.view !== DRAWER && ( + <> + + + + + + + + )} + + )} + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/ServiceDetails/ServiceNetwork.tsx b/workspaces/kiali/plugins/kiali/src/pages/ServiceDetails/ServiceNetwork.tsx new file mode 100644 index 0000000000..90730c3e2f --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/ServiceDetails/ServiceNetwork.tsx @@ -0,0 +1,272 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { + Card, + CardContent, + CardHeader, + Tooltip, + Typography, +} from '@material-ui/core'; + +import { ValidationList } from '../../components/Validations/ValidationList'; +import { KialiIcon } from '../../config/KialiIcon'; +import { cardsHeight, kialiStyle } from '../../styles/StyleUtils'; +import { + Gateway, + ObjectCheck, + ObjectValidation, + VirtualService, +} from '../../types/IstioObjects'; +import { ServiceDetailsInfo } from '../../types/ServiceInfo'; + +type ServiceNetworkProps = { + gateways: Gateway[]; + serviceDetails: ServiceDetailsInfo; + validations?: ObjectValidation; +}; + +type HostnameInfo = { + hostname: string; + fromType: string | undefined; + fromName: string | undefined; +}; + +const resourceListStyle = kialiStyle({ + $nest: { + '& > ul > li > span': { + float: 'left', + width: '125px', + fontWeight: 700, + }, + }, +}); + +const infoStyle = kialiStyle({ + marginLeft: '0.25rem', +}); + +export const ServiceNetwork: React.FC = ( + props: ServiceNetworkProps, +) => { + const getPortChecks = (portId: number): ObjectCheck[] => { + return props.validations + ? props.validations.checks.filter(c => c.path === `spec/ports[${portId}]`) + : []; + }; + + const getPortOver = (portId: number): React.ReactNode => { + return ; + }; + + const hasIssue = (portId: number): boolean => { + return getPortChecks(portId).length > 0; + }; + + const getHostnames = (virtualServices: VirtualService[]): HostnameInfo[] => { + const hostnames: HostnameInfo[] = []; + + virtualServices.forEach(vs => { + vs.spec.hosts?.forEach(host => { + if (host === '*') { + vs.spec.gateways?.forEach(vsGatewayName => { + const vsGateways = props.gateways.filter(gateway => { + return gateway.metadata.name === vsGatewayName; + }); + + vsGateways.forEach(vsGateway => { + vsGateway.spec.servers?.forEach(servers => { + servers.hosts.forEach(hostS => { + hostnames.push({ + hostname: hostS, + fromType: vsGateway.kind, + fromName: vsGateway.metadata.name, + }); + }); + }); + }); + }); + } else { + hostnames.push({ + hostname: host, + fromType: vs.kind, + fromName: vs.metadata.name, + }); + } + }); + }); + + // If there is a wildcard, then it will display only one, the first match + for (const hostnameInfo of hostnames) { + if (hostnameInfo.hostname === '*') { + return [hostnameInfo]; + } + } + + return hostnames; + }; + + return ( + + Network} /> + +
    +
      +
    • + Type + {props.serviceDetails.service?.type} +
    • + + {props.serviceDetails.service && + props.serviceDetails.service?.type !== 'External' && ( +
    • + + {props.serviceDetails.service.type !== 'ExternalName' + ? 'Service IP' + : 'ExternalName'} + + {/* eslint-disable-next-line no-nested-ternary */} + {props.serviceDetails.service.type !== 'ExternalName' + ? props.serviceDetails.service.ip + ? props.serviceDetails.service.ip + : '' + : props.serviceDetails.service.externalName + ? props.serviceDetails.service.externalName + : ''} +
    • + )} + + {props.serviceDetails.endpoints && + props.serviceDetails.endpoints.length > 0 && ( +
    • + Endpoints +
      + {(props.serviceDetails.endpoints ?? []).map( + (endpoint, i) => { + return (endpoint.addresses ?? []).map((address, u) => ( +
      + {address.name !== '' ? ( + + {address.kind}: {address.name} +
      + } + > + + {address.ip}{' '} + + + + ) : ( + <>{address.name} + )} +
      + )); + }, + )} +
    + + )} + + {props.serviceDetails.service && + props.serviceDetails.service.ports && + props.serviceDetails.service.ports.length > 0 && ( +
  • + Ports +
    + {(props.serviceDetails.service.ports ?? []).map( + (port, i) => { + return ( +
    +
    + + {port.name} {port.port} + + {hasIssue(i) ? getPortOver(i) : undefined} + {port.appProtocol && port.appProtocol !== '' ? ( + + App Protocol: {port.appProtocol} +
    + } + > + + + + + ) : undefined} +
    +
    ({port.protocol})
    +
    + ); + }, + )} + +
  • + )} + + {props.serviceDetails.virtualServices?.length > 0 && ( +
  • + Hostnames +
    + {getHostnames(props.serviceDetails.virtualServices).map( + (hostname, i) => { + return ( +
    + + {hostname.fromType} {hostname.fromName}:{' '} + {hostname.hostname} +
    + } + > +
    + + {hostname.hostname} + + + + +
    + +
    + ); + }, + )} + +
  • + )} + + +
    +
    + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/ServiceList/FiltersAndSorts.ts b/workspaces/kiali/plugins/kiali/src/pages/ServiceList/FiltersAndSorts.ts new file mode 100644 index 0000000000..59aec6ea73 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/ServiceList/FiltersAndSorts.ts @@ -0,0 +1,376 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { TextInputTypes } from '@patternfly/react-core'; + +import { + filterByHealth, + getFilterSelectedValues, + getPresenceFilterValue, + healthFilter, + istioSidecarFilter, + labelFilter, +} from '../../components/Filters/CommonFilters'; +import { hasMissingSidecar } from '../../components/VirtualList/Config'; +import { serverConfig } from '../../config'; +import { filterByLabel } from '../../helpers/LabelFilterHelper'; +import { calculateErrorRate } from '../../types/ErrorRate'; +import { + ActiveFiltersInfo, + AllFilterTypes, + FILTER_ACTION_APPEND, + FilterType, + ToggleType, +} from '../../types/Filters'; +import { hasHealth } from '../../types/Health'; +import { ServiceListItem } from '../../types/ServiceList'; +import { SortField } from '../../types/SortFilters'; +import { compareObjectReferences } from '../AppList/FiltersAndSorts'; +import { istioConfigTypeFilter } from '../IstioConfigList/FiltersAndSorts'; + +export const compareValidations = < + T extends { validation?: any; name: string }, +>( + a: T, + b: T, +): number => { + let sortValue = -1; + if (a.validation && !b.validation) { + sortValue = -1; + } else if (!a.validation && b.validation) { + sortValue = 1; + } else if (!a.validation && !b.validation) { + sortValue = 0; + } else if (a.validation && b.validation) { + if (a.validation.valid && !b.validation.valid) { + sortValue = -1; + } else if (!a.validation.valid && b.validation.valid) { + sortValue = 1; + } else if (a.validation.valid && b.validation.valid) { + sortValue = a.validation.checks.length - b.validation.checks.length; + } else if (!a.validation.valid && !b.validation.valid) { + sortValue = b.validation.checks.length - a.validation.checks.length; + } + } + + return sortValue || a.name.localeCompare(b.name); +}; + +export const sortFields: SortField[] = [ + { + id: 'namespace', + title: 'Namespace', + isNumeric: false, + param: 'ns', + compare: (a: ServiceListItem, b: ServiceListItem) => { + let sortValue = a.namespace.localeCompare(b.namespace); + if (sortValue === 0) { + sortValue = a.name.localeCompare(b.name); + } + return sortValue; + }, + }, + { + id: 'servicename', + title: 'Service Name', + isNumeric: false, + param: 'sn', + compare: (a: ServiceListItem, b: ServiceListItem) => + a.name.localeCompare(b.name), + }, + { + id: 'details', + title: 'Details', + isNumeric: false, + param: 'is', + compare: (a: ServiceListItem, b: ServiceListItem) => { + // First sort by missing sidecar + const aSC = hasMissingSidecar(a) ? 1 : 0; + const bSC = hasMissingSidecar(b) ? 1 : 0; + if (aSC !== bSC) { + return aSC - bSC; + } + + // Second by Details + const iRefA = a.istioReferences; + const iRefB = b.istioReferences; + const cmpRefs = compareObjectReferences(iRefA, iRefB); + if (cmpRefs !== 0) { + return cmpRefs; + } + + // Then by additional details + const iconA = a.additionalDetailSample && a.additionalDetailSample.icon; + const iconB = b.additionalDetailSample && b.additionalDetailSample.icon; + if (iconA || iconB) { + if (iconA && iconB) { + const cmp = iconA.localeCompare(iconB); + if (cmp !== 0) { + return cmp; + } + } else { + // Make asc => icon absence is last + return iconA ? -1 : 1; + } + } + // Finally by name + return a.name.localeCompare(b.name); + }, + }, + { + id: 'health', + title: 'Health', + isNumeric: false, + param: 'he', + compare: (a, b) => { + if (hasHealth(a) && hasHealth(b)) { + const statusForA = a.health.getGlobalStatus(); + const statusForB = b.health.getGlobalStatus(); + + if (statusForA.priority === statusForB.priority) { + // If both services have same health status, use error rate to determine order. + const ratioA = calculateErrorRate( + a.namespace, + a.name, + 'service', + a.health.requests, + ).errorRatio.global.status.value; + const ratioB = calculateErrorRate( + b.namespace, + b.name, + 'service', + b.health.requests, + ).errorRatio.global.status.value; + return ratioA === ratioB + ? a.name.localeCompare(b.name) + : ratioB - ratioA; + } + + return statusForB.priority - statusForA.priority; + } + return 0; + }, + }, + { + id: 'configvalidation', + title: 'Config', + isNumeric: false, + param: 'cv', + compare: (a: ServiceListItem, b: ServiceListItem) => + compareValidations(a, b), + }, + { + id: 'cluster', + title: 'Cluster', + isNumeric: false, + param: 'cl', + compare: (a: ServiceListItem, b: ServiceListItem) => { + if (a.cluster && b.cluster) { + let sortValue = a.cluster.localeCompare(b.cluster); + if (sortValue === 0) { + sortValue = a.name.localeCompare(b.name); + } + return sortValue; + } + return 0; + }, + }, +]; + +const serviceNameFilter: FilterType = { + category: 'Service Name', + placeholder: 'Filter by Service Name', + filterType: TextInputTypes.text, + action: FILTER_ACTION_APPEND, + filterValues: [], +}; + +const serviceTypeFilter: FilterType = { + category: 'Service Type', + placeholder: 'Filter by Service Type', + filterType: AllFilterTypes.typeAhead, + action: FILTER_ACTION_APPEND, + filterValues: [ + { + id: 'Kubernetes', + title: 'Kubernetes', + }, + { + id: 'External', + title: 'External', + }, + { + id: 'Federation', + title: 'Federation', + }, + ], +}; + +export const availableFilters: FilterType[] = [ + serviceNameFilter, + serviceTypeFilter, + istioConfigTypeFilter, + istioSidecarFilter, + healthFilter, + labelFilter, +]; + +const filterByIstioSidecar = ( + items: ServiceListItem[], + istioSidecar: boolean, +): ServiceListItem[] => { + return items.filter(item => item.istioSidecar === istioSidecar); +}; + +const filterByName = ( + items: ServiceListItem[], + names: string[], +): ServiceListItem[] => { + return items.filter(item => { + let serviceNameFiltered = true; + if (names.length > 0) { + serviceNameFiltered = false; + for (let i = 0; i < names.length; i++) { + if (item.name.includes(names[i])) { + serviceNameFiltered = true; + break; + } + } + } + return serviceNameFiltered; + }); +}; + +const filterByServiceType = ( + items: ServiceListItem[], + serviceTypes: string[], +): ServiceListItem[] => { + return items.filter(item => { + let serviceTypeFiltered = true; + if (serviceTypes.length > 0) { + serviceTypeFiltered = false; + for (let i = 0; i < serviceTypes.length; i++) { + if (item.serviceRegistry.includes(serviceTypes[i])) { + serviceTypeFiltered = true; + break; + } + } + } + return serviceTypeFiltered; + }); +}; + +const filterByIstioType = ( + items: ServiceListItem[], + istioTypes: string[], +): ServiceListItem[] => { + return items.filter( + item => + item.istioReferences.filter(ref => istioTypes.includes(ref.objectType)) + .length !== 0, + ); +}; + +export const filterBy = ( + items: ServiceListItem[], + filters: ActiveFiltersInfo, +): ServiceListItem[] => { + let ret = items; + const istioSidecar = getPresenceFilterValue(istioSidecarFilter, filters); + if (istioSidecar !== undefined) { + ret = filterByIstioSidecar(ret, istioSidecar); + } + + const serviceNamesSelected = getFilterSelectedValues( + serviceNameFilter, + filters, + ); + if (serviceNamesSelected.length > 0) { + ret = filterByName(ret, serviceNamesSelected); + } + + const serviceTypeSelected = getFilterSelectedValues( + serviceTypeFilter, + filters, + ); + if (serviceTypeSelected.length > 0) { + ret = filterByServiceType(ret, serviceTypeSelected); + } + + const serviceFilterSelected = getFilterSelectedValues(labelFilter, filters); + if (serviceFilterSelected.length > 0) { + ret = filterByLabel( + ret, + serviceFilterSelected, + filters.op, + ) as ServiceListItem[]; + } + // We may have to perform a second round of filtering, using data fetched asynchronously (health) + // If not, exit fast + const healthSelected = getFilterSelectedValues(healthFilter, filters); + if (healthSelected.length > 0) { + return filterByHealth(ret, healthSelected); + } + + const istioTypeSelected = getFilterSelectedValues( + istioConfigTypeFilter, + filters, + ); + if (istioTypeSelected.length > 0) { + return filterByIstioType(ret, istioTypeSelected); + } + return ret; +}; + +/** Column Toggle Method */ + +const configurationToggle: ToggleType = { + label: 'Configuration Validation', + name: 'configuration', + isChecked: true, +}; + +const healthToggle: ToggleType = { + label: 'Health', + name: 'health', + isChecked: true, +}; + +const istioResourcesToggle: ToggleType = { + label: 'Istio Resources Detail', + name: 'istioResources', + isChecked: true, +}; + +export const getAvailableToggles = (): ToggleType[] => { + healthToggle.isChecked = + serverConfig.kialiFeatureFlags.uiDefaults.list.includeHealth; + istioResourcesToggle.isChecked = + serverConfig.kialiFeatureFlags.uiDefaults.list.includeIstioResources; + configurationToggle.isChecked = + serverConfig.kialiFeatureFlags.uiDefaults.list.includeValidations; + return [healthToggle, istioResourcesToggle, configurationToggle]; +}; + +// Exported for test +export const sortServices = ( + services: ServiceListItem[], + sortField: SortField, + isAscending: boolean, +): ServiceListItem[] => { + return services.sort( + isAscending ? sortField.compare : (a, b) => sortField.compare(b, a), + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/ServiceList/ServiceListPage.tsx b/workspaces/kiali/plugins/kiali/src/pages/ServiceList/ServiceListPage.tsx new file mode 100644 index 0000000000..fd71800b84 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/ServiceList/ServiceListPage.tsx @@ -0,0 +1,251 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; +import { useRef } from 'react'; +import { useAsyncFn, useDebounce } from 'react-use'; + +import { Entity } from '@backstage/catalog-model'; +import { Content } from '@backstage/core-components'; +import { useApi } from '@backstage/core-plugin-api'; + +import { CircularProgress } from '@material-ui/core'; + +import { DefaultSecondaryMasthead } from '../../components/DefaultSecondaryMasthead/DefaultSecondaryMasthead'; +import * as FilterHelper from '../../components/FilterList/FilterHelper'; +import { Toggles } from '../../components/Filters/StatefulFilters'; +import { TimeDurationComponent } from '../../components/Time/TimeDurationComponent'; +import { VirtualList } from '../../components/VirtualList/VirtualList'; +import { isMultiCluster } from '../../config'; +import { getEntityNs, nsEqual } from '../../helpers/namespaces'; +import { getErrorString, kialiApiRef } from '../../services/Api'; +import { KialiAppState, KialiContext } from '../../store'; +import { baseStyle } from '../../styles/StyleUtils'; +import { ActiveTogglesInfo } from '../../types/Filters'; +import { ServiceHealth } from '../../types/Health'; +import { validationKey } from '../../types/IstioConfigList'; +import { ObjectValidation, Validations } from '../../types/IstioObjects'; +import { ServiceList, ServiceListItem } from '../../types/ServiceList'; +import { DRAWER, ENTITY } from '../../types/types'; +import { sortIstioReferences } from '../AppList/FiltersAndSorts'; +import { NamespaceInfo } from '../Overview/NamespaceInfo'; +import { getNamespaces } from '../Overview/OverviewPage'; + +export const ServiceListPage = (props: { + view?: string; + entity?: Entity; +}): React.JSX.Element => { + const kialiClient = useApi(kialiApiRef); + const [namespaces, setNamespaces] = React.useState([]); + const [allServices, setServices] = React.useState([]); + const [duration, setDuration] = React.useState( + FilterHelper.currentDuration(), + ); + const kialiState = React.useContext(KialiContext) as KialiAppState; + const activeNs = props.entity + ? getEntityNs(props.entity) + : kialiState.namespaces.activeNamespaces.map(ns => ns.name); + const prevActiveNs = useRef(activeNs); + const prevDuration = useRef(duration); + const activeToggles: ActiveTogglesInfo = Toggles.getToggles(); + const [loadingD, setLoading] = React.useState(true); + + const hiddenColumns = isMultiCluster ? [] : ['cluster']; + if (props.view === ENTITY) { + hiddenColumns.push('details'); + } + + const grids = () => { + const elements = []; + elements.push( + , + ); + return elements; + }; + + const getServiceValidation = ( + name: string, + namespace: string, + validations: Validations, + ): ObjectValidation | undefined => { + const type = 'service'; // Using 'service' directly is disallowed + + if ( + validations[type] && + validations[type][validationKey(name, namespace)] + ) { + return validations[type][validationKey(name, namespace)]; + } + + return undefined; + }; + + const getServiceItem = ( + data: ServiceList, + rateInterval: number, + ): ServiceListItem[] => { + if (data.services) { + return data.services.map(service => ({ + name: service.name, + istioSidecar: service.istioSidecar, + istioAmbient: service.istioAmbient, + namespace: data.namespace.name, + cluster: service.cluster, + health: ServiceHealth.fromJson( + data.namespace.name, + service.name, + service.health, + { + rateInterval: rateInterval, + hasSidecar: service.istioSidecar, + hasAmbient: service.istioAmbient, + }, + ), + validation: getServiceValidation( + service.name, + data.namespace.name, + data.validations, + ), + additionalDetailSample: service.additionalDetailSample, + labels: service.labels ?? {}, + ports: service.ports ?? {}, + istioReferences: sortIstioReferences(service.istioReferences, true), + kialiWizard: service.kialiWizard, + serviceRegistry: service.serviceRegistry, + })); + } + + return []; + }; + + const fetchServices = async ( + nss: NamespaceInfo[], + timeDuration: number, + _: ActiveTogglesInfo, + ): Promise => { + const health = 'true'; + const istioResources = 'true'; + const onlyDefinitions = 'false'; + return Promise.all( + nss.map(async nsInfo => { + return await kialiClient.getServices(nsInfo.name, { + rateInterval: `${String(timeDuration)}s`, + health: health, + istioResources: istioResources, + onlyDefinitions: onlyDefinitions, + }); + }), + ) + .then(results => { + let serviceListItems: ServiceListItem[] = []; + + results.forEach(response => { + serviceListItems = serviceListItems.concat( + getServiceItem(response, duration), + ); + }); + setServices(serviceListItems); + }) + .catch(err => + kialiState.alertUtils?.add( + `Could not fetch services: ${getErrorString(err)}`, + ), + ); + }; + + const load = async () => { + kialiClient.getNamespaces().then(namespacesResponse => { + const allNamespaces: NamespaceInfo[] = getNamespaces( + namespacesResponse, + namespaces, + ); + const nsl = allNamespaces.filter(ns => activeNs.includes(ns.name)); + setNamespaces(nsl); + fetchServices(nsl, duration, activeToggles); + }); + setTimeout(() => { + setLoading(false); + }, 400); + }; + + React.useEffect(() => { + if ( + duration !== prevDuration.current || + !nsEqual(activeNs, prevActiveNs.current) + ) { + setLoading(true); + load(); + prevDuration.current = duration; + prevActiveNs.current = activeNs; + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [activeNs, duration]); + + const [{ loading }, refresh] = useAsyncFn( + async () => { + // Check if the config is loaded + await load(); + }, + [], + { loading: true }, + ); + useDebounce(refresh, 10); + + if (loading) { + return ; + } + + const serviceContent = () => { + return ( + <> + {props.view !== ENTITY && ( + load()} + /> + )} + + + + ); + }; + + return ( +
    + {props.view !== ENTITY && props.view !== DRAWER && ( + {serviceContent()} + )} + {(props.view === ENTITY || props.view === DRAWER) && ( +
    + {serviceContent()} +
    + )} +
    + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/TrafficGraphCard.tsx b/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/TrafficGraphCard.tsx new file mode 100644 index 0000000000..2a05359421 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/TrafficGraphCard.tsx @@ -0,0 +1,36 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import '@backstage/core-components'; + +import { useEntity } from '@backstage/plugin-catalog-react'; + +import { Card, CardHeader } from '@material-ui/core'; + +import { ENTITY } from '../../types/types'; +import TrafficGraphPage from './TrafficGraphPage'; + +export const TrafficGraphCard = () => { + const { entity } = useEntity(); + + return ( + + + + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/TrafficGraphPage.tsx b/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/TrafficGraphPage.tsx new file mode 100644 index 0000000000..433cadd397 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/TrafficGraphPage.tsx @@ -0,0 +1,244 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React, { useRef, useState } from 'react'; +import { useAsyncFn, useDebounce } from 'react-use'; + +import { Entity } from '@backstage/catalog-model'; +import { Content } from '@backstage/core-components'; +import { useApi } from '@backstage/core-plugin-api'; + +import { CircularProgress, useTheme } from '@material-ui/core'; +import { + action, + createTopologyControlButtons, + defaultControlButtonsOptions, + Model, + TopologyControlBar, + TopologyView, + Visualization, + VisualizationProvider, + VisualizationSurface, +} from '@patternfly/react-topology'; + +import { DefaultSecondaryMasthead } from '../../components/DefaultSecondaryMasthead/DefaultSecondaryMasthead'; +import * as FilterHelper from '../../components/FilterList/FilterHelper'; +import { TimeDurationComponent } from '../../components/Time/TimeDurationComponent'; +import { getEntityNs, nsEqual } from '../../helpers/namespaces'; +import { getErrorString, kialiApiRef } from '../../services/Api'; +import { KialiAppState, KialiContext } from '../../store'; +import { kialiStyle } from '../../styles/StyleUtils'; +import { EdgeLabelMode, GraphType, TrafficRate } from '../../types/Graph'; +import { ENTITY } from '../../types/types'; +import { KialiComponentFactory } from './factories/KialiComponentFactory'; +import { KialiLayoutFactory } from './factories/KialiLayoutFactory'; +import { decorateGraphData } from './util/GraphDecorator'; +import { generateDataModel } from './util/GraphGenerator'; + +const graphStyle = kialiStyle({ + height: '93%', +}); + +const graphConfig = { + id: 'g1', + type: 'graph', + layout: 'Dagre', +}; + +const getVisualization = (): Visualization => { + const vis = new Visualization(); + + vis.registerLayoutFactory(KialiLayoutFactory); + vis.registerComponentFactory(KialiComponentFactory); + vis.setFitToScreenOnLayout(true); + + return vis; +}; + +const getNamespaces = ( + entity: Entity | undefined, + kialiState: KialiAppState, +) => { + if (entity && !kialiState.namespaces) { + return getEntityNs(entity); + } + return kialiState.namespaces.activeNamespaces.map(ns => ns.name); +}; + +function TrafficGraphPage(props: { view?: string; entity?: Entity }) { + const kialiState = React.useContext(KialiContext) as KialiAppState; + const kialiClient = useApi(kialiApiRef); + const theme = useTheme(); + + const htmlElement = document.getElementsByTagName('html')[0]; + if (htmlElement) { + if (theme.palette.type === 'dark') { + htmlElement.classList.add('pf-v5-theme-dark'); + } else { + htmlElement.classList.remove('pf-v5-theme-dark'); + } + } + + const [duration, setDuration] = useState(FilterHelper.currentDuration()); + + const activeNamespaces = getNamespaces(props.entity, kialiState); + const prevActiveNs = useRef(activeNamespaces); + const prevDuration = useRef(duration); + + const [model, setModel] = useState({ + nodes: [], + edges: [], + graph: graphConfig, + }); + + const [controller] = useState(getVisualization()); + + const fetchGraph = async () => { + if (activeNamespaces.length === 0) { + setModel({ + nodes: [], + edges: [], + graph: graphConfig, + }); + return; + } + + const graphQueryElements = { + appenders: 'health,deadNode,istio,serviceEntry,meshCheck,workloadEntry', + activeNamespaces: activeNamespaces.join(','), + namespaces: activeNamespaces.join(','), + graphType: GraphType.VERSIONED_APP, + injectServiceNodes: true, + boxByNamespace: true, + boxByCluster: true, + showOutOfMesh: false, + showSecurity: false, + showVirtualServices: false, + edgeLabels: [ + EdgeLabelMode.TRAFFIC_RATE, + EdgeLabelMode.TRAFFIC_DISTRIBUTION, + ], + trafficRates: [ + TrafficRate.HTTP_REQUEST, + TrafficRate.GRPC_TOTAL, + TrafficRate.TCP_TOTAL, + ], + }; + + try { + const data = await kialiClient.getGraphElements(graphQueryElements); + const graphData = decorateGraphData(data.elements, data.duration); + const g = generateDataModel(graphData, graphQueryElements); + setModel({ + nodes: g.nodes, + edges: g.edges, + graph: graphConfig, + }); + } catch (error: any) { + kialiState.alertUtils?.add( + `Could not fetch services: ${getErrorString(error)}`, + ); + } + }; + + const timeDuration = ( + + ); + + React.useEffect(() => { + if ( + duration !== prevDuration.current || + !nsEqual(activeNamespaces, prevActiveNs.current) + ) { + fetchGraph(); + prevDuration.current = duration; + prevActiveNs.current = activeNamespaces; + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [activeNamespaces, duration]); + + React.useEffect(() => { + controller.fromModel(model, false); + }, [model, controller]); + + const [state, refresh] = useAsyncFn( + async () => { + await fetchGraph(); + }, + [], + { loading: true }, + ); + + useDebounce(refresh, 10); + + if (state.loading) { + return ; + } + + return ( + + {props.view !== ENTITY && ( + + )} + { + controller.getGraph().scaleBy(4 / 3); + }), + zoomOutCallback: action(() => { + controller.getGraph().scaleBy(0.75); + }), + fitToScreenCallback: action(() => { + controller.getGraph().fit(80); + }), + resetViewCallback: action(() => { + controller.getGraph().reset(); + controller.getGraph().layout(); + }), + legend: false, + zoomInAriaLabel: '', + zoomOutAriaLabel: '', + fitToScreenAriaLabel: '', + resetViewAriaLabel: '', + zoomInTip: '', + zoomOutTip: '', + fitToScreenTip: '', + resetViewTip: '', + })} + /> + } + > + + + + + + ); +} + +export default TrafficGraphPage; diff --git a/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/factories/KialiComponentFactory.tsx b/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/factories/KialiComponentFactory.tsx new file mode 100644 index 0000000000..23be99f347 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/factories/KialiComponentFactory.tsx @@ -0,0 +1,49 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { + ComponentFactory, + DefaultGroup, + GraphComponent, + ModelKind, + withPanZoom, + withSelection, +} from '@patternfly/react-topology'; + +import { KialiEdge } from '../styles/KialiEdge'; +import { KialiNode } from '../styles/KialiNode'; + +export const KialiComponentFactory: ComponentFactory = ( + kind: ModelKind, + type: string, +) => { + switch (type) { + case 'group': + return DefaultGroup; + default: + switch (kind) { + case ModelKind.graph: + return withPanZoom()(GraphComponent); + case ModelKind.node: + return KialiNode as any; + case ModelKind.edge: + return withSelection({ multiSelect: false, controlled: false })( + KialiEdge as any, + ); + default: + return undefined; + } + } +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/factories/KialiLayoutFactory.tsx b/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/factories/KialiLayoutFactory.tsx new file mode 100644 index 0000000000..86350fee6a --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/factories/KialiLayoutFactory.tsx @@ -0,0 +1,42 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { + ColaLayout, + Graph, + Layout, + LayoutFactory, +} from '@patternfly/react-topology'; + +import { KialiDagreLayout } from '../layouts/KialiDagreLayout'; + +export const KialiLayoutFactory: LayoutFactory = ( + type: string, + graph: Graph, +): Layout => { + switch (type) { + case 'Dagre': + return new KialiDagreLayout(graph, { + linkDistance: 40, + nodeDistance: 25, + marginx: undefined, + marginy: undefined, + ranker: 'network-simplex', + rankdir: 'LR', + }); + default: + return new ColaLayout(graph, { layoutOnDrag: false }); + } +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/layouts/KialiDagreLayout.ts b/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/layouts/KialiDagreLayout.ts new file mode 100644 index 0000000000..2c1b583008 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/layouts/KialiDagreLayout.ts @@ -0,0 +1,22 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { DagreLayout } from '@patternfly/react-topology'; + +export class KialiDagreLayout extends DagreLayout { + override updateEdgeBendpoints() { + // Your implementation here + } +} diff --git a/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/styles/KialiEdge.tsx b/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/styles/KialiEdge.tsx new file mode 100644 index 0000000000..c2d1ac3455 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/styles/KialiEdge.tsx @@ -0,0 +1,173 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { + DefaultEdge, + Edge, + observer, + ScaleDetailsLevel, + WithSelectionProps, +} from '@patternfly/react-topology'; +import useDetailsLevel from '@patternfly/react-topology/dist/esm/hooks/useDetailsLevel'; +import { classes } from 'typestyle'; + +import { PFColors } from '../../../components/Pf/PfColors'; +import { kialiStyle } from '../../../styles/StyleUtils'; + +// This is our styled edge component registered in stylesComponentFactory.tsx. It is responsible for adding customizations that then get passed down to DefaultEdge. The current customizations: +// data.pathStyle?: React.CSSProperties // additional CSS stylings for the edge/path (not the endpoint). +// data.isFind?: boolean // adds graph-find overlay +// data.isUnhighlighted?: boolean // adds unhighlight effects +// data.hasSpans?: Span[] // adds trace overlay +// add showTag prop and show scaled tag on hover (when showTag is false) +// support [lock] icons on edge tags + +const ColorFind = PFColors.Gold400; +const ColorSpan = PFColors.Purple200; +const OverlayOpacity = 0.3; +const OverlayWidth = 30; + +type StyleEdgeProps = { + element: Edge; +} & WithSelectionProps; + +const tagClass = kialiStyle({ + fontFamily: 'Verdana,Arial,Helvetica,sans-serif,pficon', +}); + +const StyleEdgeComponent: React.FC = ({ element, ...rest }) => { + const data = element.getData(); + const detailsLevel = useDetailsLevel(); + + const cssClasses: string[] = []; + + // Change edge color according to the pathStyle + const edgeClass = kialiStyle({ + $nest: { + '& .pf-topology__edge__link': data.pathStyle, + }, + }); + cssClasses.push(edgeClass); + + const edgeHoverClass = kialiStyle({ + $nest: { + '& .pf-topology__edge.pf-m-hover': { + $nest: { + '& .pf-topology__edge__link, & .pf-topology-connector-arrow': + data.pathStyle, + }, + }, + }, + }); + cssClasses.push(edgeHoverClass); + + // Change connector color according to the pathStyle + const connectorClass = kialiStyle({ + $nest: { + '& .pf-topology-connector-arrow': { + stroke: data.pathStyle.stroke, + fill: data.pathStyle.stroke, + }, + }, + }); + cssClasses.push(connectorClass); + + const edgeConnectorArrowHoverStyles = kialiStyle({ + $nest: { + '& .pf-topology__edge.pf-m-hover': { + $nest: { + '& .pf-topology-connector-arrow': { + stroke: data.pathStyle.stroke, + fill: data.pathStyle.stroke, + }, + }, + }, + }, + }); + cssClasses.push(edgeConnectorArrowHoverStyles); + + // If has spans, add the span overlay + if (data.hasSpans) { + const spansClass = kialiStyle({ + $nest: { + '& .pf-topology__edge__background': { + strokeWidth: OverlayWidth, + stroke: ColorSpan, + strokeOpacity: OverlayOpacity, + }, + }, + }); + cssClasses.push(spansClass); + // If isHighlighted, add the highlight overlay + } else if (data.isFind) { + const findClass = kialiStyle({ + $nest: { + '& .pf-topology__edge__background': { + strokeWidth: OverlayWidth, + stroke: ColorFind, + strokeOpacity: OverlayOpacity, + }, + }, + }); + cssClasses.push(findClass); + } + + // Set animation duration velocity + if (data.animationDuration) { + const animationClass = kialiStyle({ + $nest: { + '& .pf-topology__edge__link': { + animationDuration: `${data.animationDuration}s`, + }, + }, + }); + cssClasses.push(animationClass); + } + + // Set the path style when unhighlighted (opacity) + let opacity = 1; + if (data.isUnhighlighted) { + opacity = 0.1; + } + + const passedData = React.useMemo(() => { + const newData = { ...data }; + if (detailsLevel !== ScaleDetailsLevel.high) { + newData.showTag = false; + } + Object.keys(newData).forEach(key => { + if (newData[key] === undefined) { + delete newData[key]; + } + }); + return newData; + }, [data, detailsLevel]); + + return ( + + + + ); +}; + +export const KialiEdge = observer(StyleEdgeComponent); diff --git a/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/styles/KialiGroup.tsx b/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/styles/KialiGroup.tsx new file mode 100644 index 0000000000..3206ac81cd --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/styles/KialiGroup.tsx @@ -0,0 +1,103 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React from 'react'; + +import { CubesIcon } from '@patternfly/react-icons'; +import { + DefaultGroup, + Node, + ScaleDetailsLevel, + ShapeProps, + WithSelectionProps, +} from '@patternfly/react-topology'; +import useDetailsLevel from '@patternfly/react-topology/dist/esm/hooks/useDetailsLevel'; + +import { PFColors } from '../../../components/Pf/PfColors'; + +const ICON_PADDING = 20; + +export enum DataTypes { + Default, +} + +type StyleGroupProps = { + element: Node; + collapsible: boolean; + collapsedWidth?: number; + collapsedHeight?: number; + onCollapseChange?: (group: Node, collapsed: boolean) => void; + getCollapsedShape?: (node: Node) => React.FC; + collapsedShadowOffset?: number; // defaults to 10 +} & WithSelectionProps; + +export function KialiGroup({ + element, + collapsedWidth = 75, + collapsedHeight = 75, + ...rest +}: StyleGroupProps) { + const data = element.getData(); + const detailsLevel = useDetailsLevel(); + + const passedData = React.useMemo(() => { + const newData = { ...data }; + Object.keys(newData).forEach(key => { + if (newData[key] === undefined) { + delete newData[key]; + } + }); + return newData; + }, [data]); + + if (data.isFocused) { + element.setData({ ...data, isFocused: false }); + } + + const renderIcon = (): React.ReactNode => { + const iconSize = + Math.min(collapsedWidth, collapsedHeight) - ICON_PADDING * 2; + const Component = CubesIcon; + + return ( + + + + ); + }; + + return ( + + + {element.isCollapsed() ? renderIcon() : null} + + + ); +} diff --git a/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/styles/KialiNode.tsx b/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/styles/KialiNode.tsx new file mode 100644 index 0000000000..cc50dce311 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/styles/KialiNode.tsx @@ -0,0 +1,163 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { KeyIcon, TopologyIcon } from '@patternfly/react-icons'; +import { + DefaultNode, + getShapeComponent, + Node, + NodeShape, + observer, + ScaleDetailsLevel, + useHover, + WithSelectionProps, +} from '@patternfly/react-topology'; +import useDetailsLevel from '@patternfly/react-topology/dist/esm/hooks/useDetailsLevel'; + +import { PFColors } from '../../../components/Pf/PfColors'; +import { kialiStyle } from '../../../styles/StyleUtils'; + +// This is the registered Node component override that utilizes our customized Node.tsx component. + +type StyleNodeProps = { + element: Node; +} & WithSelectionProps; + +const renderIcon = (element: Node): React.ReactNode => { + let Component: React.ComponentClass> | undefined; + const data = element.getData(); + const isInaccessible = data.isInaccessible; + const isServiceEntry = data.isServiceEntry; + const isBox = data.isBox; + if (isInaccessible && !isServiceEntry && !isBox) { + Component = KeyIcon; + } + const isOutside = data.isOutside; + if (isOutside && !isBox) { + Component = TopologyIcon; + } + + // this blurb taken from PFT demo StyleNode.tsx, not sure if it's required + // vv + const { width, height } = element.getDimensions(); + const shape = element.getNodeShape(); + const iconSize = + (shape === NodeShape.trapezoid ? width : Math.min(width, height)) - + (shape === NodeShape.stadium ? 5 : 20) * 2; + // ^^ + + return Component ? ( + + + + ) : ( + <> + ); +}; + +const StyleNodeComponent: React.FC = ({ element, ...rest }) => { + const data = element.getData(); + const detailsLevel = useDetailsLevel(); + const [hover, hoverRef] = useHover(); + const ShapeComponent = getShapeComponent(element); + + const ColorFind = PFColors.Gold400; + const ColorSpan = PFColors.Purple200; + const OverlayOpacity = 0.3; + const OverlayWidth = 40; + + const traceOverlayStyle = kialiStyle({ + strokeWidth: OverlayWidth, + stroke: ColorSpan, + strokeOpacity: OverlayOpacity, + }); + + const findOverlayStyle = kialiStyle({ + strokeWidth: OverlayWidth, + stroke: ColorFind, + strokeOpacity: OverlayOpacity, + }); + + // Set the path style when unhighlighted (opacity) + let opacity = 1; + if (data.isUnhighlighted) { + opacity = 0.1; + } + + const passedData = React.useMemo(() => { + const newData = { ...data }; + if (detailsLevel !== ScaleDetailsLevel.high) { + newData.tag = undefined; + } + Object.keys(newData).forEach(key => { + if (newData[key] === undefined) { + delete newData[key]; + } + }); + return newData; + }, [data, detailsLevel]); + + const { width, height } = element.getDimensions(); + + return ( + + {data.hasSpans && ( + + )} + {data.isFind && ( + + )} + + {(hover || detailsLevel !== ScaleDetailsLevel.low) && + renderIcon(element)} + + + ); +}; + +export const KialiNode = observer(StyleNodeComponent); diff --git a/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/types/EdgeData.ts b/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/types/EdgeData.ts new file mode 100644 index 0000000000..b2e63089c4 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/types/EdgeData.ts @@ -0,0 +1,36 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { + EdgeTerminalType, + GraphElement, + NodeStatus, +} from '@patternfly/react-topology'; + +import { DecoratedGraphEdgeData } from '../../../types/Graph'; +import { Span } from '../../../types/Tracing'; + +export type EdgeData = DecoratedGraphEdgeData & { + endTerminalType: EdgeTerminalType; + hasSpans?: Span[]; + isFind?: boolean; + isHighlighted?: boolean; + isSelected?: boolean; + isUnhighlighted?: boolean; + onHover?: (element: GraphElement, isMouseIn: boolean) => void; + pathStyle?: React.CSSProperties; + tag?: string; + tagStatus?: NodeStatus; +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/types/GraphPFSettings.ts b/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/types/GraphPFSettings.ts new file mode 100644 index 0000000000..05ad9ef6fa --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/types/GraphPFSettings.ts @@ -0,0 +1,27 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { EdgeLabelMode, GraphType, TrafficRate } from '../../../types/Graph'; +import { Namespace } from '../../../types/Namespace'; + +export type GraphPFSettings = { + activeNamespaces: Namespace[]; + edgeLabels: EdgeLabelMode[]; + graphType: GraphType; + showOutOfMesh: boolean; + showSecurity: boolean; + showVirtualServices: boolean; + trafficRates: TrafficRate[]; +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/types/NodeData.ts b/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/types/NodeData.ts new file mode 100644 index 0000000000..906d7e95a2 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/types/NodeData.ts @@ -0,0 +1,93 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { + BadgeLocation, + GraphElement, + LabelPosition, + NodeShape, + NodeStatus, +} from '@patternfly/react-topology'; + +import { + BoxByType, + DecoratedGraphNodeData, + NodeType, +} from '../../../types/Graph'; +import { DEGRADED, FAILURE } from '../../../types/Health'; + +export type NodeData = DecoratedGraphNodeData & { + // These are node.data fields that have an impact on the PFT rendering of the node. + // TODO: Is there an actual type defined for these in PFT? + attachments?: React.ReactNode; // ie. decorators + badge?: string; + badgeBorderColor?: string; + badgeClassName?: string; + badgeColor?: string; + badgeLocation?: BadgeLocation; + badgeTextColor?: string; + column?: number; + component?: React.ReactNode; + icon?: React.ReactNode; + isFind?: boolean; + isHighlighted?: boolean; + isSelected?: boolean; + isUnhighlighted?: boolean; + labelIcon?: React.ReactNode; + labelIconClass?: string; + labelIconPadding?: number; + labelPosition?: LabelPosition; + marginX?: number; + onHover?: (element: GraphElement, isMouseIn: boolean) => void; + row?: number; + secondaryLabel?: string; + setLocation?: boolean; + showContextMenu?: boolean; + showStatusDecorator?: boolean; + statusDecoratorTooltip?: React.ReactNode; + truncateLength?: number; + x?: number; + y?: number; +}; + +export const getNodeStatus = (data: NodeData): NodeStatus => { + if ((data.isBox && data.isBox !== BoxByType.APP) || data.isIdle) { + return NodeStatus.default; + } + + switch (data.healthStatus) { + case DEGRADED.name: + return NodeStatus.warning; + case FAILURE.name: + return NodeStatus.danger; + default: + return NodeStatus.success; + } +}; + +export const getNodeShape = (data: NodeData): NodeShape => { + switch (data.nodeType) { + case NodeType.AGGREGATE: + return NodeShape.hexagon; + case NodeType.APP: + return NodeShape.rect; + case NodeType.SERVICE: + return data.isServiceEntry ? NodeShape.trapezoid : NodeShape.rhombus; + case NodeType.WORKLOAD: + return NodeShape.circle; + default: + return NodeShape.ellipse; + } +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/types/NodeMap.ts b/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/types/NodeMap.ts new file mode 100644 index 0000000000..7b5310b6d2 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/types/NodeMap.ts @@ -0,0 +1,18 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { NodeModel } from '@patternfly/react-topology'; + +export type NodeMap = Map; diff --git a/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/util/EdgeLabels.ts b/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/util/EdgeLabels.ts new file mode 100644 index 0000000000..198cf9c1a8 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/util/EdgeLabels.ts @@ -0,0 +1,445 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { + EdgeModel, + EdgeTerminalType, + NodeStatus, +} from '@patternfly/react-topology'; +import _ from 'lodash'; + +import { PFColors } from '../../../components/Pf/PfColors'; +import { icons } from '../../../config/Icons'; +import { Rate, RequestTolerance } from '../../../types/ErrorRate/types'; +import { + aggregate, + checkExpr, + getRateHealthConfig, + transformEdgeResponses, +} from '../../../types/ErrorRate/utils'; +import { + DecoratedGraphEdgeData, + DecoratedGraphNodeData, + EdgeLabelMode, + numLabels, + Protocol, + Responses, + TrafficRate, +} from '../../../types/Graph'; +import { + ascendingThresholdCheck, + DEGRADED, + FAILURE, + HEALTHY, + NA, + RATIO_NA, + ThresholdStatus, +} from '../../../types/Health'; +import { RateHealth } from '../../../types/HealthAnnotation'; +import { ToleranceConfig } from '../../../types/ServerConfig'; +import { EdgeData } from '../types/EdgeData'; +import { GraphPFSettings } from '../types/GraphPFSettings'; +import { NodeData } from '../types/NodeData'; +import { NodeMap } from '../types/NodeMap'; + +export const trimFixed = (fixed: string): string => { + if (!fixed.includes('.')) { + return fixed; + } + let newFixed = fixed; + while (newFixed.endsWith('0')) { + newFixed = newFixed.slice(0, -1); + } + return newFixed.endsWith('.') ? newFixed.slice(0, -1) : newFixed; +}; + +// This is due to us never having figured out why a tiny fraction of what-we-expect-to-be-numbers +// are in fact strings. We don't know if our conversion in GraphData.ts has a flaw, or whether +// something else happens post-conversion. +export const safeNum = (num: any): number => { + if (Number.isFinite(num)) { + return num; + } + // this will return NaN if the string is 'NaN' or any other non-number + return Number(num); +}; + +export const toFixedDuration = (num: number): string => { + const newNum = safeNum(num); + if (num < 1000) { + return `${newNum.toFixed(0)}ms`; + } + return `${trimFixed((newNum / 1000.0).toFixed(2))}s`; +}; + +export const toFixedPercent = (num: number): string => { + const newNum = safeNum(num); + return `${trimFixed(newNum.toFixed(1))}%`; +}; + +export const toFixedRequestRate = ( + num: number, + includeUnits: boolean, + units?: string, +): string => { + const newNum = safeNum(num); + const rate = trimFixed(newNum.toFixed(2)); + return includeUnits ? `${rate}${units || 'rps'}` : rate; +}; + +export const toFixedErrRate = (num: number): string => { + const newNum = safeNum(num); + return `${trimFixed(newNum.toFixed(newNum < 1 ? 1 : 0))}%err`; +}; + +export const toFixedByteRate = (num: number, includeUnits: boolean): string => { + const newNum = safeNum(num); + if (newNum < 1024.0) { + const rate = + newNum < 1.0 ? trimFixed(newNum.toFixed(2)) : newNum.toFixed(0); + return includeUnits ? `${rate}bps` : rate; + } + const rate = trimFixed((num / 1024.0).toFixed(2)); + return includeUnits ? `${rate}kps` : rate; +}; + +const getEdgeLabel = ( + edge: EdgeModel, + nodeMap: NodeMap, + settings: GraphPFSettings, +): string => { + const data = edge.data as EdgeData; + const edgeLabels = settings.edgeLabels; + const isVerbose = data.isSelected; + const includeUnits = isVerbose || numLabels(edgeLabels) > 1; + const labels = [] as string[]; + + if (edgeLabels.includes(EdgeLabelMode.TRAFFIC_RATE)) { + let rate = 0; + let pErr = 0; + if (data.http > 0) { + rate = data.http; + pErr = data.httpPercentErr > 0 ? data.httpPercentErr : 0; + } else if (data.grpc > 0) { + rate = data.grpc; + pErr = data.grpcPercentErr > 0 ? data.grpcPercentErr : 0; + } else if (data.tcp > 0) { + rate = data.tcp; + } + + if (rate > 0) { + if (pErr > 0) { + labels.push( + `${toFixedRequestRate(rate, includeUnits)}\n${toFixedErrRate(pErr)}`, + ); + } else { + switch (data.protocol) { + case Protocol.GRPC: + if (settings.trafficRates.includes(TrafficRate.GRPC_REQUEST)) { + labels.push(toFixedRequestRate(rate, includeUnits)); + } else { + labels.push(toFixedRequestRate(rate, includeUnits, 'mps')); + } + break; + case Protocol.TCP: + labels.push(toFixedByteRate(rate, includeUnits)); + break; + default: + labels.push(toFixedRequestRate(rate, includeUnits)); + break; + } + } + } + } + + if (edgeLabels.includes(EdgeLabelMode.RESPONSE_TIME_GROUP)) { + const responseTime = data.responseTime; + + if (responseTime > 0) { + labels.push(toFixedDuration(responseTime)); + } + } + + if (edgeLabels.includes(EdgeLabelMode.THROUGHPUT_GROUP)) { + const rate = data.throughput; + + if (rate > 0) { + labels.push(toFixedByteRate(rate, includeUnits)); + } + } + + if (edgeLabels.includes(EdgeLabelMode.TRAFFIC_DISTRIBUTION)) { + let pReq; + if (data.httpPercentReq > 0) { + pReq = data.httpPercentReq; + } else if (data.grpcPercentReq > 0) { + pReq = data.grpcPercentReq; + } + if (pReq && pReq > 0 && pReq < 100) { + labels.push(toFixedPercent(pReq)); + } + } + + let label = labels.join('\n'); + + if (isVerbose) { + const protocol = data.protocol; + label = protocol ? `${protocol}\n${label}` : label; + } + + const mtlsPercentage = data.isMTLS; + let lockIcon = false; + if (settings.showSecurity && data.hasTraffic) { + if (mtlsPercentage && mtlsPercentage > 0) { + lockIcon = true; + label = `${icons.istio.mtls.ascii}\n${label}`; + } + } + + if (data.hasTraffic && data.responses) { + if (nodeMap.get(edge.target!)?.data?.hasCB) { + const responses = data.responses; + for (const code of _.keys(responses)) { + // TODO: Not 100% sure we want "UH" code here ("no healthy upstream hosts") but based on timing I have + // seen this code returned and not "UO". "UO" is returned only when the circuit breaker is caught open. + // But if open CB is responsible for removing possible destinations the "UH" code seems preferred. + if ('UO' in responses[code] || 'UH' in responses[code]) { + label = lockIcon + ? `${icons.istio.circuitBreaker.className} ${label}` + : `${icons.istio.circuitBreaker.className}\n${label}`; + break; + } + } + } + } + + return label; +}; + +const EdgeColor = PFColors.Success; +const EdgeColorDead = PFColors.Black500; +const EdgeColorDegraded = PFColors.Warning; +const EdgeColorFailure = PFColors.Danger; +const EdgeColorTCPWithTraffic = PFColors.Blue600; + +const getPathStyleStroke = (data: EdgeData): PFColors => { + if (!data.hasTraffic) { + return EdgeColorDead; + } + if (data.protocol === 'tcp') { + return EdgeColorTCPWithTraffic; + } + switch (data.healthStatus) { + case FAILURE.name: + return EdgeColorFailure; + case DEGRADED.name: + return EdgeColorDegraded; + default: + return EdgeColor; + } +}; + +export const getPathStyle = (data: EdgeData): React.CSSProperties => { + return { + stroke: getPathStyleStroke(data), + strokeWidth: 3, + } as React.CSSProperties; +}; + +export const getEdgeStatus = (data: EdgeData): NodeStatus => { + if (!data.hasTraffic) { + return NodeStatus.default; + } + if (data.protocol === 'tcp') { + return NodeStatus.info; + } + + switch (data.healthStatus) { + case FAILURE.name: + return NodeStatus.danger; + case DEGRADED.name: + return NodeStatus.warning; + default: + return NodeStatus.success; + } +}; + +export const setEdgeOptions = ( + edge: EdgeModel, + nodeMap: NodeMap, + settings: GraphPFSettings, +): void => { + const data = edge.data as EdgeData; + + data.endTerminalType = + data.protocol === Protocol.TCP + ? EdgeTerminalType.square + : EdgeTerminalType.directional; + data.pathStyle = getPathStyle(data); + data.tag = getEdgeLabel(edge, nodeMap, settings); + data.tagStatus = getEdgeStatus(data); +}; + +export interface DecoratedGraphEdgeWrapper { + data: DecoratedGraphEdgeData; +} + +export const calculateStatusGraph = ( + requestsTolerances: RequestTolerance[], + traffic: Responses, +): { + status: ThresholdStatus; + protocol: string; + toleranceConfig?: ToleranceConfig; +} => { + // By default the health is NA + const result: { + status: ThresholdStatus; + protocol: string; + toleranceConfig?: ToleranceConfig; + } = { + status: { + value: RATIO_NA, + status: NA, + }, + protocol: '', + toleranceConfig: undefined, + }; + // For each calculate errorRate by tolerance configuration + for (const reqTol of Object.values(requestsTolerances)) { + for (const [protocol, rate] of Object.entries(reqTol.requests)) { + const tolerance = + reqTol.tolerance && checkExpr(reqTol!.tolerance!.protocol, protocol) + ? reqTol.tolerance + : undefined; + // Create threshold for the tolerance + const thresholds = { + degraded: tolerance!.degraded, + failure: tolerance!.failure, + unit: '%', + }; + // Calculate the status + const errRatio = (rate as Rate).errorRatio; + const auxStatus = ascendingThresholdCheck(100 * errRatio, thresholds); + // Check if the status has more priority than the previous one + if (auxStatus.status.priority > result.status.status.priority) { + result.status = auxStatus; + result.protocol = protocol; + result.toleranceConfig = reqTol.tolerance; + } + } + } + if (result.status.status === NA && Object.keys(traffic).length > 0) { + result.status.status = HEALTHY; + result.status.value = 0; + } + return result; +}; + +export const getEdgeHealth = ( + edge: DecoratedGraphEdgeData, + source: DecoratedGraphNodeData, + target: DecoratedGraphNodeData, +): ThresholdStatus => { + const annotationSource = source.hasHealthConfig + ? new RateHealth(source.hasHealthConfig) + : undefined; + const configSource = + annotationSource && annotationSource.toleranceConfig + ? annotationSource.toleranceConfig + : getRateHealthConfig(source.namespace, source.nodeType, source.nodeType) + .tolerance; + const annotationTarget = target.hasHealthConfig + ? new RateHealth(target.hasHealthConfig) + : undefined; + const configTarget = + annotationTarget && annotationTarget.toleranceConfig + ? annotationTarget.toleranceConfig + : getRateHealthConfig(target.namespace, target.nodeType, target.nodeType) + .tolerance; + + // If there is not tolerances with this configuration we'll use defaults + const tolerancesSource = configSource.filter(tol => + checkExpr(tol.direction, 'outbound'), + ); + const tolerancesTarget = configTarget.filter(tol => + checkExpr(tol.direction, 'inbound'), + ); + + // Calculate aggregate + const outboundEdge = aggregate( + transformEdgeResponses(edge.responses, edge.protocol), + tolerancesSource, + ); + const inboundEdge = aggregate( + transformEdgeResponses(edge.responses, edge.protocol), + tolerancesTarget, + ); + + // Calculate status + const outboundEdgeStatus = calculateStatusGraph(outboundEdge, edge.responses); + const inboundEdgeStatus = calculateStatusGraph(inboundEdge, edge.responses); + // Keep status with more priority + return outboundEdgeStatus.status.status.priority > + inboundEdgeStatus.status.status.priority + ? outboundEdgeStatus.status + : inboundEdgeStatus.status; +}; + +export const assignEdgeHealth = ( + edges: DecoratedGraphEdgeWrapper[], + nodeMap: NodeMap, + settings: GraphPFSettings, +): void => { + edges?.forEach(edge => { + const edgeData = edge.data as EdgeData; + + if (!edgeData.hasTraffic) { + return; + } + if (edgeData.protocol === 'tcp') { + return; + } + if ( + edgeData.protocol === 'grpc' && + !settings.trafficRates.includes(TrafficRate.GRPC_REQUEST) + ) { + return; + } + + const sourceNodeData = nodeMap.get(edgeData.source!)?.data as NodeData; + const destNodeData = nodeMap.get(edgeData.target!)?.data as NodeData; + const statusEdge = getEdgeHealth(edgeData, sourceNodeData, destNodeData); + switch (statusEdge.status) { + case FAILURE: + edgeData.healthStatus = FAILURE.name; + return; + case DEGRADED: + edgeData.healthStatus = DEGRADED.name; + return; + default: + // unset implies healthy or n/a + return; + } + }); +}; + +export const getTotalRequest = (traffic: Responses): number => { + let reqRate = 0; + Object.values(traffic).forEach(item => { + Object.values(item.flags).forEach(v => (reqRate += Number(v))); + }); + return reqRate; +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/util/GraphDecorator.ts b/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/util/GraphDecorator.ts new file mode 100644 index 0000000000..5fd8948c19 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/util/GraphDecorator.ts @@ -0,0 +1,278 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { isIstioNamespace } from '../../../config'; +import { + DecoratedGraphEdgeData, + DecoratedGraphEdgeWrapper, + DecoratedGraphElements, + DecoratedGraphNodeData, + DecoratedGraphNodeWrapper, + GraphEdgeWrapper, + GraphElements, + GraphNodeWrapper, + hasProtocolTraffic, +} from '../../../types/Graph'; +import { + AppHealth, + NA, + ServiceHealth, + WorkloadHealth, +} from '../../../types/Health'; + +const toSafeCyFieldName = (fieldName: string): string => { + const alnumString = /^[a-zA-Z0-9]*$/; + const unsafeChar = /[^a-zA-Z0-9]/g; + + if (fieldName.match(alnumString)) { + return fieldName; + } + + return fieldName.replace(unsafeChar, '_'); +}; + +export const decorateGraphData = ( + graphData: GraphElements, + duration: number, +): DecoratedGraphElements => { + const elementsDefaults = { + edges: { + destPrincipal: undefined, + grpc: NaN, + grpcErr: NaN, + grpcPercentErr: NaN, + grpcPercentReq: NaN, + hasTraffic: undefined, + http: NaN, + http3xx: NaN, + http4xx: NaN, + http5xx: NaN, + httpNoResponse: NaN, + httpPercentErr: NaN, + httpPercentReq: NaN, + isMTLS: -1, + protocol: undefined, + responses: undefined, + responseTime: NaN, + sourcePrincipal: undefined, + tcp: NaN, + throughput: NaN, + }, + nodes: { + aggregate: undefined, + aggregateValue: undefined, + app: undefined, + destServices: undefined, + grpcIn: NaN, + grpcInErr: NaN, + grpcOut: NaN, + hasCB: undefined, + hasFaultInjection: undefined, + hasMirroring: undefined, + hasMissingSC: undefined, + hasRequestRouting: undefined, + hasRequestTimeout: undefined, + hasTCPTrafficShifting: undefined, + hasTrafficShifting: undefined, + hasVS: undefined, + healthData: undefined, + health: undefined, + httpIn: NaN, + httpIn3xx: NaN, + httpIn4xx: NaN, + httpIn5xx: NaN, + httpInNoResponse: NaN, + httpOut: NaN, + isBox: undefined, + isDead: undefined, + isIdle: undefined, + isInaccessible: undefined, + isIstio: undefined, + isMisconfigured: undefined, + isOutside: undefined, + isRoot: undefined, + isServiceEntry: undefined, + rank: undefined, + service: undefined, + tcpIn: NaN, + tcpOut: NaN, + version: undefined, + workload: undefined, + }, + }; + // It's not easy to get find/hide to work exactly as users may expect. Because edges represent + // traffic for only one protocol it is best to use 0 defaults for that one protocol, and leave the others + // as NaN. In that way numerical expressions affect only edges for a desired protocol. Because nodes + // can involve traffic from multiple protocols, it seems (for now) best to only set the values explicitly + // supplied in the JSON. + const edgeProtocolDefaults = { + grpc: { + grpc: 0, + grpcErr: 0, + grpcNoResponse: 0, + grpcPercentErr: 0, + grpcPercentReq: 0, + }, + http: { + http: 0, + http3xx: 0, + http4xx: 0, + http5xx: 0, + httpNoResponse: 0, + httpPercentErr: 0, + httpPercentReq: 0, + }, + tcp: { + tcp: 0, + }, + }; + + const propertiesToNumber = ( + object: Record, + keys?: string[], + ) => { + const objectWithNumbers = { ...object }; + const targetKeys = keys ? keys : Object.keys(objectWithNumbers); + for (const key of targetKeys) { + objectWithNumbers[key] = Number(objectWithNumbers[key]); + } + return objectWithNumbers; + }; + + const decoratedGraph: DecoratedGraphElements = {}; + if (graphData) { + if (graphData.nodes) { + decoratedGraph.nodes = graphData.nodes.map((node: GraphNodeWrapper) => { + const decoratedNode: any = { ...node }; + // parse out the traffic data into top level fields for the various protocols. This is done + // to be back compatible with our existing ui code that expects the explicit http and tcp fields. + // We can then set the 'traffic' field undefined because it is not used in the cy element handling. + if (decoratedNode.data.traffic) { + const traffic = decoratedNode.data.traffic; + decoratedNode.data.traffic = undefined; + traffic.forEach((protocol: { rates: Record }) => { + decoratedNode.data = { + ...propertiesToNumber(protocol.rates), + ...decoratedNode.data, + }; + }); + } + // we can do something similar with labels, parse out each to data.label_: + // and then set the field undefined because it is not used in the cy element handling + if (decoratedNode.data.labels) { + const labels = decoratedNode.data.labels; + decoratedNode.data.labels = undefined; + const prefixedLabels: { [key: string]: string } = {}; + for (const key in labels) { + if (labels.hasOwnProperty(key)) { + prefixedLabels[toSafeCyFieldName(`label:${key}`)] = labels[key]; + } + } + decoratedNode.data = { ...prefixedLabels, ...decoratedNode.data }; + } + // node.aggregate is set like aggregate=aggregateValue, split into distinct fields for the ui to use + if (!!decoratedNode.data.aggregate) { + const aggr = decoratedNode.data.aggregate.split('='); + decoratedNode.data.aggregate = aggr[0]; + decoratedNode.data.aggregateValue = aggr[1]; + } + // Calculate health + if (decoratedNode.data.healthData) { + if (Array.isArray(decoratedNode.data.healthData)) { + decoratedNode.data.healthStatus = NA.name; + } else if (decoratedNode.data.healthData.workloadStatus) { + decoratedNode.data.health = WorkloadHealth.fromJson( + decoratedNode.data.namespace, + decoratedNode.data.workload, + decoratedNode.data.healthData, + { + rateInterval: duration, + hasSidecar: true, + hasAmbient: false, + }, + ); + decoratedNode.data.healthStatus = + decoratedNode.data.health.getGlobalStatus().name; + } else if (decoratedNode.data.healthData.workloadStatuses) { + decoratedNode.data.health = AppHealth.fromJson( + decoratedNode.data.namespace, + decoratedNode.data.app, + decoratedNode.data.healthData, + { + rateInterval: duration, + hasSidecar: true, + hasAmbient: false, + }, + ); + decoratedNode.data.healthStatus = + decoratedNode.data.health.getGlobalStatus().name; + } else { + decoratedNode.data.health = ServiceHealth.fromJson( + decoratedNode.data.namespace, + decoratedNode.data.service, + decoratedNode.data.healthData, + { + rateInterval: duration, + hasSidecar: true, + hasAmbient: false, + }, + ); + decoratedNode.data.healthStatus = + decoratedNode.data.health.getGlobalStatus().name; + } + } + const isIstio = isIstioNamespace(decoratedNode.data.namespace) + ? true + : undefined; + // prettier-ignore + decoratedNode.data = { ...elementsDefaults.nodes, ...decoratedNode.data, isIstio: isIstio } as DecoratedGraphNodeData; + // prettier-ignore + return decoratedNode as DecoratedGraphNodeWrapper; + }); + } + if (graphData.edges) { + decoratedGraph.edges = graphData.edges.map((edge: GraphEdgeWrapper) => { + const decoratedEdge: any = { ...edge }; + const { traffic, ...edgeData } = edge.data; + // see comment above about the 'traffic' data handling + if (traffic) { + if (hasProtocolTraffic(traffic)) { + decoratedEdge.data = { + hasTraffic: true, + responses: traffic.responses, + ...edgeProtocolDefaults[traffic.protocol], + ...propertiesToNumber(traffic.rates), + // Base properties that need to be cast as number. + ...propertiesToNumber(edgeData, [ + 'isMtls', + 'responseTime', + 'throughput', + ]), + }; + } + decoratedEdge.data = { + protocol: traffic.protocol, + ...decoratedEdge.data, + }; + } + // prettier-ignore + decoratedEdge.data = { ...elementsDefaults.edges, ...decoratedEdge.data } as DecoratedGraphEdgeData; + // prettier-ignore + return decoratedEdge as DecoratedGraphEdgeWrapper; + }); + } + } + return decoratedGraph; +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/util/GraphGenerator.ts b/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/util/GraphGenerator.ts new file mode 100644 index 0000000000..f4df2f3e7f --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/util/GraphGenerator.ts @@ -0,0 +1,118 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { + EdgeAnimationSpeed, + EdgeModel, + EdgeStyle, + NodeModel, +} from '@patternfly/react-topology'; + +import { DecoratedGraphElements } from '../../../types/Graph'; +import { EdgeData } from '../types/EdgeData'; +import { getNodeShape, getNodeStatus, NodeData } from '../types/NodeData'; +import { assignEdgeHealth, setEdgeOptions } from './EdgeLabels'; +import { setNodeLabel } from './NodeLabels'; + +const DEFAULT_NODE_SIZE = 50; + +export const generateDataModel = ( + graphData: DecoratedGraphElements, + graphSettings: any, +): { edges: EdgeModel[]; nodes: NodeModel[] } => { + const nodeMap: Map = new Map(); + const edges: EdgeModel[] = []; + + function addGroup(data: NodeData): NodeModel { + const group: NodeModel = { + children: [], + collapsed: false, + data: data, + group: true, + id: data.id, + status: getNodeStatus(data), + style: { padding: [35, 35, 35, 35] }, + type: 'group', + }; + setNodeLabel(group, nodeMap, graphSettings); + nodeMap.set(data.id, group); + + return group; + } + + function addNode(data: NodeData): NodeModel { + const node: NodeModel = { + data: data, + height: DEFAULT_NODE_SIZE, + id: data.id, + shape: getNodeShape(data), + status: getNodeStatus(data), + type: 'node', + width: DEFAULT_NODE_SIZE, + }; + setNodeLabel(node, nodeMap, graphSettings); + nodeMap.set(data.id, node); + + return node; + } + + function addEdge(data: EdgeData): EdgeModel { + const edge: EdgeModel = { + animationSpeed: EdgeAnimationSpeed.none, + data: data, + edgeStyle: EdgeStyle.solid, + id: data.id, + source: data.source, + target: data.target, + type: 'edge', + }; + setEdgeOptions(edge, nodeMap, graphSettings); + edges.push(edge); + + return edge; + } + + function addChild(node: NodeModel): void { + const parentId = (node.data as NodeData).parent!; + const parent = nodeMap.get(parentId); + if (parent) { + parent.children?.push(node.id); + } + } + + graphData.nodes?.forEach(n => { + const nd = n.data; + let newNode: NodeModel; + if (nd.isBox) { + newNode = addGroup(nd as NodeData); + } else { + newNode = addNode(nd as NodeData); + } + if (nd.parent) { + addChild(newNode); + } + }); + + // Compute edge healths one time for the graph + assignEdgeHealth(graphData.edges || [], nodeMap, graphSettings); + + graphData.edges?.forEach(e => { + const ed = e.data; + addEdge(ed as EdgeData); + }); + + const nodes = Array.from(nodeMap.values()); + return { nodes: nodes, edges: edges }; +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/util/NodeLabels.tsx b/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/util/NodeLabels.tsx new file mode 100644 index 0000000000..ae281e006f --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/TrafficGraph/util/NodeLabels.tsx @@ -0,0 +1,137 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { NodeModel } from '@patternfly/react-topology'; + +import { PFBadges, PFBadgeType } from '../../../components/Pf/PfBadges'; +import { BoxByType, GraphType, NodeType, UNKNOWN } from '../../../types/Graph'; +import { GraphPFSettings } from '../types/GraphPFSettings'; +import { NodeData } from '../types/NodeData'; +import { NodeMap } from '../types/NodeMap'; + +export const setNodeLabel = ( + node: NodeModel, + nodeMap: NodeMap, + settings: GraphPFSettings, +): void => { + const data = node.data as NodeData; + const app = data.app || ''; + const nodeType = data.nodeType; + const service = data.service || ''; + const version = data.version || ''; + const workload = data.workload || ''; + const isBox = data.isBox; + const isBoxed = data.parent; + let box1Type: string | undefined = ''; + if (isBoxed) { + const box1 = nodeMap.get(data.parent!); + const box1Data = box1?.data as NodeData; + box1Type = box1Data.isBox; + } + const isAppBoxed = box1Type === BoxByType.APP; + // Badges portion of label... + + // PFT provides the ability to add a single Icon (badge) on the label. Given that we can't + // duplicate what we do with Cytoscape, which is to add multiple badges on the label, + // we'll reserve the single icon to be used only to identify traffic sources (i.e. roots). + // Note that a gateway is a special traffic source. + // Other badges will be added as attachments (decorators) on the node, but that requires + // the Node, not the NodeModel, and it;s no longer part of the label, so it's not done here. + + // Content portion of label (i.e. the text)... + const content: string[] = []; + + switch (nodeType) { + case NodeType.AGGREGATE: + content.unshift(data.aggregateValue!); + break; + case NodeType.APP: + if (isAppBoxed) { + if (settings.graphType === GraphType.APP) { + content.unshift(app); + } else if (version && version !== UNKNOWN) { + content.unshift(version); + } else { + content.unshift(workload ? workload : app); + } + } else { + if (settings.graphType === GraphType.APP || version === UNKNOWN) { + content.unshift(app); + } else { + content.unshift(version); + content.unshift(app); + } + } + break; + case NodeType.BOX: + switch (isBox) { + case BoxByType.APP: + content.unshift(app); + break; + case BoxByType.CLUSTER: + content.unshift(data.cluster); + break; + case BoxByType.NAMESPACE: + content.unshift(data.namespace); + break; + default: + content.unshift('error'); + } + break; + case NodeType.SERVICE: + content.unshift(service); + break; + case NodeType.UNKNOWN: + content.unshift(UNKNOWN); + break; + case NodeType.WORKLOAD: + content.unshift(workload); + break; + default: + content.unshift('error'); + } + + // The final label... + + if (isBox) { + let pfBadge: PFBadgeType | undefined; + switch (isBox) { + case BoxByType.APP: + pfBadge = PFBadges.App; + break; + case BoxByType.CLUSTER: + pfBadge = PFBadges.Cluster; + break; + case BoxByType.NAMESPACE: + pfBadge = PFBadges.Namespace; + break; + default: + pfBadge = undefined; + } + + if (pfBadge) { + data.badge = pfBadge.badge; + } + node.label = content.shift(); + if (content.length > 0) { + data.secondaryLabel = content.join(':'); + } + return; + } + + node.label = content.shift(); + + return; +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/WorkloadDetails/PodStatus.tsx b/workspaces/kiali/plugins/kiali/src/pages/WorkloadDetails/PodStatus.tsx new file mode 100644 index 0000000000..9bdc0e5c2e --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/WorkloadDetails/PodStatus.tsx @@ -0,0 +1,77 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React from 'react'; + +import { Tooltip } from '@material-ui/core'; + +import { ValidationStack } from '../../components/Validations/ValidationStack'; +import { createIcon } from '../../config/KialiIcon'; +import { + DEGRADED, + HEALTHY, + isProxyStatusSynced, + mergeStatus, + ProxyStatus, + Status, +} from '../../types/Health'; +import { ObjectCheck, ValidationTypes } from '../../types/IstioObjects'; +import { highestSeverity, validationToHealth } from '../../types/ServiceInfo'; +import { ProxyStatusList } from './ProxyStatusList'; + +type PodStatusProps = { + checks?: ObjectCheck[]; + proxyStatus?: ProxyStatus; +}; + +export const PodStatus: React.FC = (props: PodStatusProps) => { + const proxyStatusSeverity: Status = + props.proxyStatus && !isProxyStatusSynced(props.proxyStatus) + ? DEGRADED + : HEALTHY; + + const showTooltip = (): boolean => { + const validationSeverity: ValidationTypes = highestSeverity( + props.checks || [], + ); + return ( + proxyStatusSeverity.name !== HEALTHY.name || + validationSeverity !== ValidationTypes.Correct + ); + }; + + if (showTooltip()) { + const severityIcon = (): Status => { + const validationSeverity: Status = validationToHealth( + highestSeverity(props.checks ?? []), + ); + return mergeStatus(proxyStatusSeverity, validationSeverity); + }; + + const tooltipContent: React.ReactNode = ( + <> + + + + ); + + return ( + + {createIcon(severityIcon())} + + ); + } + return createIcon(HEALTHY); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/WorkloadDetails/ProxyStatusList.tsx b/workspaces/kiali/plugins/kiali/src/pages/WorkloadDetails/ProxyStatusList.tsx new file mode 100644 index 0000000000..87f2ff49ea --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/WorkloadDetails/ProxyStatusList.tsx @@ -0,0 +1,64 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { PFColors } from '../../components/Pf/PfColors'; +import { kialiStyle } from '../../styles/StyleUtils'; +import { + isProxyStatusComponentSynced, + isProxyStatusSynced, + ProxyStatus, +} from '../../types/Health'; + +type Props = { + status?: ProxyStatus; +}; + +const smallStyle = kialiStyle({ fontSize: '70%', color: PFColors.White }); +const colorStyle = kialiStyle({ fontSize: '1.1rem', color: PFColors.White }); + +export class ProxyStatusList extends React.Component { + statusList = () => { + if (!this.props.status) { + return []; + } + + return [ + { c: 'CDS', s: this.props.status.CDS }, + { c: 'EDS', s: this.props.status.EDS }, + { c: 'LDS', s: this.props.status.LDS }, + { c: 'RDS', s: this.props.status.RDS }, + ].map((value: { c: string; s: string }, _: number) => { + if (!isProxyStatusComponentSynced(value.s)) { + const status = value.s ? value.s : '-'; + return
    {`${value.c}: ${status}`}
    ; + } + return null; + }); + }; + + render() { + if (this.props.status && !isProxyStatusSynced(this.props.status)) { + return ( +
    + Istio Proxy Status + {this.statusList()} +
    + ); + } + return null; + } +} diff --git a/workspaces/kiali/plugins/kiali/src/pages/WorkloadDetails/WorkloadDetailsPage.tsx b/workspaces/kiali/plugins/kiali/src/pages/WorkloadDetails/WorkloadDetailsPage.tsx new file mode 100644 index 0000000000..ba8563a34b --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/WorkloadDetails/WorkloadDetailsPage.tsx @@ -0,0 +1,249 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; +import { useLocation } from 'react-router-dom'; +import { useAsyncFn, useDebounce } from 'react-use'; + +import { Content, EmptyState } from '@backstage/core-components'; +import { useApi } from '@backstage/core-plugin-api'; + +import { CircularProgress, Tab, Tabs } from '@material-ui/core'; + +import { + BreadcrumbView, + getPath, +} from '../../components/BreadcrumbView/BreadcrumbView'; +import { DefaultSecondaryMasthead } from '../../components/DefaultSecondaryMasthead/DefaultSecondaryMasthead'; +import * as FilterHelper from '../../components/FilterList/FilterHelper'; +import { IstioMetrics } from '../../components/Metrics/IstioMetrics'; +import { a11yProps, TabPanel, useStyles } from '../../components/Tab/TabPanel'; +import { TimeDurationComponent } from '../../components/Time/TimeDurationComponent'; +import { getErrorString, kialiApiRef } from '../../services/Api'; +import { KialiAppState, KialiContext } from '../../store'; +import { baseStyle } from '../../styles/StyleUtils'; +import { TimeRange } from '../../types/Common'; +import { WorkloadHealth } from '../../types/Health'; +import { MetricsObjectTypes } from '../../types/Metrics'; +import { Workload, WorkloadQuery } from '../../types/Workload'; +import { WorkloadInfo } from './WorkloadInfo'; +import { WorkloadPodLogs } from './WorkloadPodLogs'; + +export const WorkloadDetailsPage = (props: { entity?: boolean }) => { + const path = getPath(useLocation()); + const namespace = path.namespace; + const workload = path.item; + const kialiClient = useApi(kialiApiRef); + const kialiState = React.useContext(KialiContext) as KialiAppState; + const [workloadItem, setWorkloadItem] = React.useState(); + const [health, setHealth] = React.useState(); + const [error, setError] = React.useState(); + const [duration, setDuration] = React.useState( + FilterHelper.currentDuration(), + ); + const hasPods = workloadItem?.pods?.length; + const [value, setValue] = React.useState(0); + const classes = useStyles(); + + const grids = () => { + const elements = []; + elements.push( + , + ); + return elements; + }; + + const fetchWorkload = async () => { + const query: WorkloadQuery = { + health: 'true', + rateInterval: `${duration.toString()}s`, + validate: 'false', + }; + if (!namespace || !workload) { + setError(`Could not fetch workload: Empty namespace or workload name`); + kialiState.alertUtils?.add( + `Could not fetch workload: Empty namespace or workload name`, + ); + return; + } + kialiClient + .getWorkload(namespace ? namespace : '', workload ? workload : '', query) + .then((workloadResponse: Workload) => { + setWorkloadItem(workloadResponse); + + const wkHealth = WorkloadHealth.fromJson( + namespace ? namespace : '', + workloadResponse.name, + workloadResponse.health, + { + rateInterval: duration, + hasSidecar: workloadResponse.istioSidecar, + hasAmbient: workloadResponse.istioAmbient, + }, + ); + setHealth(wkHealth); + }) + .catch(err => { + setError(`Could not fetch workload: ${getErrorString(err)}`); + kialiState.alertUtils!.add( + `Could not fetch workload: ${getErrorString(err)}`, + ); + }); + }; + + const [{ loading }, refresh] = useAsyncFn( + async () => { + // Check if the config is loaded + await fetchWorkload(); + }, + [], + { loading: true }, + ); + useDebounce(refresh, 10); + + if (loading) { + return ; + } + + const overviewTab = (): React.ReactElement => { + return ( + <> + {workloadItem && ( + + )} + + ); + }; + + const tm: TimeRange = {}; + const logsTab = (): React.ReactElement => { + return ( + <> + {hasPods && namespace && ( + + )} + + ); + }; + + const inboundTab = (): React.ReactElement => { + return ( + <> + {namespace && workload && ( + + )} + + ); + }; + + const outboundTab = (): React.ReactElement => { + return ( + <> + {namespace && workload && ( + + )} + + ); + }; + + const handleChange = ( + _event: any, + newValue: React.SetStateAction, + ) => { + setValue(newValue); + }; + + return ( +
    + + + fetchWorkload()} + /> + {error !== undefined && ( + No Workload found
    } + /> + )} + {error === undefined && ( +
    + + + + + + + + {overviewTab()} + + + {logsTab()} + + + {inboundTab()} + + + {outboundTab()} + +
    + )} + + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/WorkloadDetails/WorkloadInfo.tsx b/workspaces/kiali/plugins/kiali/src/pages/WorkloadDetails/WorkloadInfo.tsx new file mode 100644 index 0000000000..381e1049a6 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/WorkloadDetails/WorkloadInfo.tsx @@ -0,0 +1,360 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React from 'react'; +import { useAsyncFn, useDebounce } from 'react-use'; + +import { useApi } from '@backstage/core-plugin-api'; + +import { CircularProgress, Grid } from '@material-ui/core'; + +import { IstioConfigCard } from '../../components/IstioConfigCard/IstioConfigCard'; +import { isIstioNamespace, serverConfig } from '../../config'; +import { kialiApiRef } from '../../services/Api'; +import { WorkloadHealth } from '../../types/Health'; +import { + IstioConfigItem, + IstioConfigList, + toIstioItems, +} from '../../types/IstioConfigList'; +import { + ContainerInfo, + ObjectCheck, + ObjectValidation, + Pod, + Validations, + ValidationTypes, +} from '../../types/IstioObjects'; +import { DRAWER, ENTITY } from '../../types/types'; +import { Workload } from '../../types/Workload'; +import { WorkloadPods } from './WorkloadPods'; +import { WorkloadDescription } from './WorkloadsDescription'; + +type WorkloadInfoProps = { + entity?: boolean; + duration?: number; + namespace?: string; + workload: Workload; + health?: WorkloadHealth; + view?: string; +}; + +export const WorkloadInfo = (workloadProps: WorkloadInfoProps) => { + const pods = workloadProps.workload.pods || []; + const namespace = workloadProps.namespace ? workloadProps.namespace : ''; + const kialiClient = useApi(kialiApiRef); + const [istioValidations, setIstioValidations] = React.useState< + IstioConfigItem[] | undefined + >(); + const workloadIstioResources = [ + 'gateways', + 'authorizationpolicies', + 'peerauthentications', + 'sidecars', + 'requestauthentications', + 'envoyfilters', + ]; + const labels = workloadProps.workload.labels + ? workloadProps.workload?.labels + : {}; + const wkLabels: string[] = []; + Object.keys(labels).forEach(key => { + const label = key + (labels[key] ? `=${labels[key]}` : ''); + wkLabels.push(label); + }); + const workloadSelector = wkLabels.join(','); + + const wkIstioTypes = [ + { field: 'gateways', validation: 'gateway' }, + { field: 'sidecars', validation: 'sidecar' }, + { field: 'envoyFilters', validation: 'envoyfilter' }, + { field: 'requestAuthentications', validation: 'requestauthentication' }, + { field: 'authorizationPolicies', validation: 'authorizationpolicy' }, + { field: 'peerAuthentications', validation: 'peerauthentication' }, + ]; + + const getValidations = async (istioConfigResponse: IstioConfigList) => { + const istioConfigItems = istioConfigResponse + ? toIstioItems(istioConfigResponse, workloadProps.workload?.cluster || '') + : []; + if (workloadProps.workload) { + if (istioConfigResponse?.validations) { + const typeNames: { [key: string]: string[] } = {}; + wkIstioTypes.forEach(wkIstioType => { + if ( + istioConfigResponse && + istioConfigResponse.validations[wkIstioType.validation] + ) { + typeNames[wkIstioType.validation] = []; + // @ts-ignore + istioConfigResponse[wkIstioType.field]?.forEach(r => + typeNames[wkIstioType.validation].push(r.metadata.name), + ); + } + }); + } + } + + setIstioValidations(istioConfigItems); + }; + + const fetchIstioConfig = async () => { + kialiClient + .getIstioConfig( + namespace, + workloadIstioResources, + true, + '', + workloadSelector, + workloadProps.workload?.cluster, + ) + .then((istioConfigResponse: IstioConfigList) => { + getValidations(istioConfigResponse); + }); + }; + + const [{ loading }, refresh] = useAsyncFn( + async () => { + // Check if the config is loaded + fetchIstioConfig(); + }, + [], + { loading: true }, + ); + + useDebounce(refresh, 10); + if (loading) { + return ; + } + + // All information for validations is fetched in the workload, no need to add another call + const workloadValidations = (workload: Workload): Validations => { + const noIstiosidecar: ObjectCheck = { + message: 'Pod has no Istio sidecar', + severity: ValidationTypes.Warning, + path: '', + }; + const noAppLabel: ObjectCheck = { + message: 'Pod has no app label', + severity: ValidationTypes.Warning, + path: '', + }; + const noVersionLabel: ObjectCheck = { + message: 'Pod has no version label', + severity: ValidationTypes.Warning, + path: '', + }; + const pendingPod: ObjectCheck = { + message: 'Pod is in Pending Phase', + severity: ValidationTypes.Warning, + path: '', + }; + const unknownPod: ObjectCheck = { + message: 'Pod is in Unknown Phase', + severity: ValidationTypes.Warning, + path: '', + }; + const failedPod: ObjectCheck = { + message: 'Pod is in Failed Phase', + severity: ValidationTypes.Error, + path: '', + }; + const failingPodContainer: ObjectCheck = { + message: 'Pod has failing container', + severity: ValidationTypes.Warning, + path: '', + }; + const failingPodIstioContainer: ObjectCheck = { + message: 'Pod has failing Istio container', + severity: ValidationTypes.Warning, + path: '', + }; + const failingPodAppContainer: ObjectCheck = { + message: 'Pod has failing app container', + severity: ValidationTypes.Warning, + path: '', + }; + + const istioLabels = serverConfig.istioLabels; + const istioAnnotations = serverConfig.istioAnnotations; + + const checkPodContainers = ( + containerInfo: ContainerInfo[], + ): ObjectCheck[] => { + const validations: ObjectCheck[] = []; + containerInfo.forEach(c => { + if (!c.isReady && validations.indexOf(failingPodAppContainer) === -1) { + validations.push(failingPodAppContainer); + } + }); + return validations; + }; + + const checkIstioContainers = ( + containerInfo: ContainerInfo[], + ): ObjectCheck[] => { + const validations: ObjectCheck[] = []; + containerInfo.forEach(c => { + if ( + !c.isReady && + validations.indexOf(failingPodIstioContainer) === -1 + ) { + validations.push(failingPodIstioContainer); + } + }); + return validations; + }; + + const addMeshValidations = (pod: Pod): ObjectCheck[] => { + const validations: ObjectCheck[] = []; + if ( + !( + serverConfig.ambientEnabled && + (pod.annotations + ? pod.annotations[istioAnnotations.ambientAnnotation] === + istioAnnotations.ambientAnnotationEnabled + : false) + ) + ) { + validations.push(noIstiosidecar); + } + return validations; + }; + + const getPodValidations = (pod: Pod): ObjectValidation => { + const validations: ObjectValidation = { + name: pod.name, + objectType: 'pod', + valid: true, + checks: [], + }; + + if (!pod.istioContainers || pod.istioContainers.length === 0) { + validations.checks.concat(addMeshValidations(pod)); + } else { + validations.checks.concat(checkIstioContainers(pod.istioContainers)); + } + + if (!pod.containers || pod.containers.length === 0) { + validations.checks.push(failingPodContainer); + } else { + validations.checks.concat(checkPodContainers(pod.containers)); + } + if (!pod.labels) { + validations.checks.push(noAppLabel); + validations.checks.push(noVersionLabel); + } else { + if (!pod.appLabel) { + validations.checks.push(noAppLabel); + } + if (!pod.versionLabel) { + validations.checks.push(noVersionLabel); + } + } + return validations; + }; + + const validations: Validations = {}; + const isWaypoint = + serverConfig.ambientEnabled && + workload.labels && + workload.labels[istioLabels.ambientWaypointLabel] === + istioLabels.ambientWaypointLabelValue; + + if (workload.pods.length > 0) { + validations.pod = {}; + workload.pods.forEach(pod => { + validations.pod[pod.name] = { + name: pod.name, + objectType: 'pod', + valid: true, + checks: [], + }; + if (!isIstioNamespace(namespace) && !isWaypoint) { + validations.pod[pod.name] = getPodValidations(pod); + } + + switch (pod.status) { + case 'Pending': + validations.pod[pod.name].checks.push(pendingPod); + break; + case 'Unknown': + validations.pod[pod.name].checks.push(unknownPod); + break; + case 'Failed': + validations.pod[pod.name].checks.push(failedPod); + break; + default: + // Pod healthy + } + // If statusReason is present + if (pod.statusReason) { + validations.pod[pod.name].checks.push({ + message: pod.statusReason, + severity: ValidationTypes.Warning, + path: '', + }); + } + validations.pod[pod.name].valid = + validations.pod[pod.name].checks.length === 0; + }); + } + return validations; + }; + + const size = + workloadProps.view === ENTITY || workloadProps.view === DRAWER ? 12 : 4; + return ( + <> + {workloadProps.workload && ( + + + + + {workloadProps.view !== DRAWER && ( + <> + + + + + + + + )} + + )} + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/WorkloadDetails/WorkloadPodLogs.tsx b/workspaces/kiali/plugins/kiali/src/pages/WorkloadDetails/WorkloadPodLogs.tsx new file mode 100644 index 0000000000..67fb077557 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/WorkloadDetails/WorkloadPodLogs.tsx @@ -0,0 +1,1245 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; +import { CopyToClipboard } from 'react-copy-to-clipboard'; +import { useAsyncFn, useDebounce } from 'react-use'; + +import { useApi } from '@backstage/core-plugin-api'; + +import { + Button, + Card, + CardContent, + Checkbox, + CircularProgress, + FormControlLabel, + Grid, + Input, + List, + Select, + Toolbar, + Tooltip, +} from '@material-ui/core'; +import MenuItem from '@material-ui/core/MenuItem'; +import { Alert } from '@material-ui/lab'; +import memoize from 'micro-memoize'; +import moment from 'moment'; +import screenfull, { Screenfull } from 'screenfull'; + +import { history, URLParam } from '../../app/History'; +import { AccessLogModal } from '../../components/Envoy/AccessLogModal'; +import { RenderComponentScroll } from '../../components/Nav/Page/RenderComponentScroll'; +import { PFBadge, PFBadges } from '../../components/Pf/PfBadges'; +import { PFColors, PFColorVal } from '../../components/Pf/PfColors'; +import { ToolbarDropdown } from '../../components/ToolbarDropdown/ToolbarDropdown'; +import { KialiIcon } from '../../config/KialiIcon'; +import { kialiApiRef } from '../../services/Api'; +import { kialiStyle } from '../../styles/StyleUtils'; +import { + evalTimeRange, + TimeInMilliseconds, + TimeInSeconds, + TimeRange, +} from '../../types/Common'; +import { AccessLog, LogEntry, Pod, PodLogs } from '../../types/IstioObjects'; +import { Span, TracingQuery } from '../../types/Tracing'; +import { PromisesRegistry } from '../../utils/CancelablePromises'; +import { formatDuration } from '../../utils/tracing/TracingHelper'; + +const appContainerColors = [ + PFColors.Blue300, + PFColors.Green300, + PFColors.Purple100, + PFColors.Orange400, +]; +const proxyContainerColor = PFColors.Gold400; +const spanColor = PFColors.Cyan300; + +type ReduxProps = { + timeRange: TimeRange; +}; + +export type WorkloadPodLogsProps = ReduxProps & { + cluster?: string; + lastRefreshAt: TimeInMilliseconds; + namespace: string; + pods: Pod[]; + workload: string; +}; + +type ContainerOption = { + color: PFColorVal; + displayName: string; + isProxy: boolean; + isSelected: boolean; + name: string; +}; + +type Entry = { + logEntry?: LogEntry; + span?: Span; + timestamp: string; + timestampUnix: TimeInSeconds; +}; + +interface WorkloadPodLogsState { + accessLogModals: Map; + containerOptions?: ContainerOption[]; + entries: Entry[]; + fullscreen: boolean; + hideError?: string; + hideLogValue: string; + isTimeOptionsOpen: boolean; + kebabOpen: boolean; + linesTruncatedContainers: string[]; + loadingLogs: boolean; + loadingLogsError?: string; + logWindowSelections: any[]; + maxLines: number; + podValue?: number; + showClearHideLogButton: boolean; + showClearShowLogButton: boolean; + showError?: string; + showLogValue: string; + showSpans: boolean; + showTimestamps: boolean; + showToolbar: boolean; + useRegex: boolean; +} + +const NoLogsFoundMessage = 'No container logs found for the time period.'; + +const MaxLinesOptions = { + '-1': 'All lines', + '100': '100 lines', + '500': '500 lines', + '1000': '1000 lines', + '3000': '3000 lines', + '5000': '5000 lines', + '10000': '10000 lines', + '25000': '25000 lines', +}; + +const alInfoIcon = kialiStyle({ + display: 'flex', + width: '0.75rem', +}); + +const infoIcons = kialiStyle({ + marginLeft: '0.5em', + marginTop: '30%', + width: '1.5rem', +}); + +const toolbarTail = kialiStyle({ + marginTop: '0.125rem', +}); + +const logsDiv = kialiStyle({ + marginRight: '0.5rem', + overflowX: 'scroll', + overflowY: 'hidden', +}); + +const logsDisplay = kialiStyle({ + fontFamily: 'monospace', + margin: 0, + padding: 0, + resize: 'none', + width: '100%', +}); + +const iconStyle = kialiStyle({ + marginLeft: '0.5rem', +}); + +const checkboxStyle = kialiStyle({ + marginRight: '0rem', + marginLeft: '1rem', +}); + +const noLogsStyle = kialiStyle({ + paddingTop: '0.75rem', + paddingLeft: '0.75rem', +}); + +const logLineStyle = kialiStyle({ + display: 'flex', + lineHeight: '1.5rem', + paddingLeft: '0.75rem', +}); + +const logInfoStyleIcon = kialiStyle({ + paddingLeft: 0, + width: '0.75rem', + height: '0.75rem', + fontFamily: 'monospace', + fontSize: '0.75rem', + padding: '10px 10px 0 5px !important', + minWidth: '0 !important', +}); + +const logMessaageStyle = kialiStyle({ + fontSize: '0.75rem', + paddingRight: '1rem', +}); + +const logsBackground = (enabled: boolean): React.CSSProperties => ({ + backgroundColor: enabled ? PFColors.Black1000 : PFColors.Black500, + display: 'table', +}); + +const logsHeight = ( + showToolbar: boolean, + fullscreen: boolean, + showMaxLinesWarning: boolean, +): React.CSSProperties => { + const toolbarHeight = showToolbar ? '0px' : '49px'; + const maxLinesWarningHeight = showMaxLinesWarning ? '27px' : '0px'; + + return { + height: fullscreen + ? `calc(100vh - 130px + ${toolbarHeight} - ${maxLinesWarningHeight})` + : `calc(var(--kiali-details-pages-tab-content-height) - 155px + ${toolbarHeight} - ${maxLinesWarningHeight})`, + }; +}; + +const formatDate = (timestamp: string): string => { + const entryTimestamp = moment(timestamp).format('YYYY-MM-DD HH:mm:ss.SSS'); + + return entryTimestamp; +}; + +export const WorkloadPodLogs = (props: WorkloadPodLogsProps) => { + const promises: PromisesRegistry = new PromisesRegistry(); + const podOptions = (): string[] => { + const toRet: string[] = []; + if (props.pods.length > 0) { + for (let i = 0; i < props.pods.length; ++i) { + toRet[`${i}`] = props.pods[i].name; + } + } + return toRet; + }; + const kialiClient = useApi(kialiApiRef); + const getContainerOptions = (pod: Pod): ContainerOption[] => { + // sort containers by name, consistently positioning proxy container first. + let containers = [...(pod.istioContainers ?? [])]; + containers.push(...(pod.containers ?? [])); + + containers = containers.sort((c1, c2) => { + if (c1.isProxy !== c2.isProxy) { + return c1.isProxy ? 0 : 1; + } + return c1.name < c2.name ? 0 : 1; + }); + + let appContainerCount = 0; + const containerOptions = containers.map(c => { + const name = c.name; + + if (c.isProxy) { + return { + color: proxyContainerColor, + displayName: name, + isProxy: true, + isSelected: true, + name: name, + }; + } + + const color = + appContainerColors[appContainerCount++ % appContainerColors.length]; + return { + color: color, + displayName: name, + isProxy: false, + isSelected: true, + name: name, + }; + }); + + return containerOptions; + }; + const pod = props.pods[0]; + const initState: WorkloadPodLogsState = { + accessLogModals: new Map(), + containerOptions: getContainerOptions(pod), + entries: [], + fullscreen: false, + hideLogValue: '', + isTimeOptionsOpen: false, + kebabOpen: false, + linesTruncatedContainers: [], + loadingLogs: false, + logWindowSelections: [], + podValue: 0, + maxLines: 100, + showClearHideLogButton: true, + showClearShowLogButton: true, + showSpans: false, + showTimestamps: false, + showToolbar: true, + showLogValue: '', + useRegex: false, + }; + + const [workloadPodLogsState, setWorkloadPodLogsState] = + React.useState(initState); + + const fetchEntries = ( + namespace: string, + podName: string, + containerOptions: ContainerOption[], + showSpans: boolean, + maxLines: number, + timeRange: TimeRange, + cluster?: string, + ): void => { + const now: TimeInMilliseconds = Date.now(); + const timeRangeDates = evalTimeRange(timeRange); + const sinceTime: TimeInSeconds = Math.floor( + timeRangeDates[0].getTime() / 1000, + ); + const endTime: TimeInMilliseconds = timeRangeDates[1].getTime(); + + // to save work on the server-side, only supply duration when time range is in the past + let duration = 0; + + if (endTime < now) { + duration = Math.floor(timeRangeDates[1].getTime() / 1000) - sinceTime; + } + + const selectedContainers = containerOptions.filter(c => c.isSelected); + const podPromises: Promise[] = selectedContainers.map( + c => { + return kialiClient.getPodLogs( + namespace, + podName, + c.name, + maxLines, + sinceTime, + duration, + c.isProxy, + cluster, + ); + }, + ); + + if (showSpans) { + // Convert seconds to microseconds + const params: TracingQuery = { + endMicros: endTime * 1000, + startMicros: sinceTime * 1000000, + }; + + podPromises.unshift( + kialiClient.getWorkloadSpans( + namespace, + props.workload, + params, + props.cluster, + ), + ); + } + + promises + .registerAll('logs', podPromises) + .then(responses => { + let entries = [] as Entry[]; + if (showSpans) { + const spans = showSpans ? (responses[0] as Span[]) : ([] as Span[]); + + entries = spans.map(span => { + const startTimeU = Math.floor(span.startTime / 1000); + + return { + timestamp: moment(startTimeU) + .utc() + .format('YYYY-MM-DD HH:mm:ss.SSS'), + timestampUnix: startTimeU, + span: span, + } as Entry; + }); + responses.shift(); + } + const linesTruncatedContainers: string[] = []; + + for (let i = 0; i < responses.length; i++) { + const response = responses[i] as PodLogs; + const containerLogEntries = response.entries as LogEntry[]; + + if (!containerLogEntries) { + continue; + } + + const color = selectedContainers[i].color; + containerLogEntries.forEach(le => { + le.color = color; + entries.push({ + timestamp: le.timestamp, + timestampUnix: le.timestampUnix, + logEntry: le, + } as Entry); + }); + + if (response.linesTruncated) { + // linesTruncatedContainers.push(new URL(responses[i].responseURL).searchParams.get('container')!); + } + } + + const sortedEntries = entries.sort((a, b) => { + return a.timestampUnix - b.timestampUnix; + }); + + const updatedState = { + ...workloadPodLogsState, + entries: sortedEntries, + linesTruncatedContainers: linesTruncatedContainers, + loadingLogs: false, + showSpans: showSpans, + maxLines: maxLines, + }; + setWorkloadPodLogsState(updatedState); + + return; + }) + .catch(error => { + if (error.isCanceled) { + const updatedState = { + ...workloadPodLogsState, + loadingLogs: false, + }; + setWorkloadPodLogsState(updatedState); + return; + } + + const errorMsg = error.response?.data?.error ?? error.message; + const nowDate = Date.now(); + + const updatedState = { + ...workloadPodLogsState, + loadingLogs: false, + entries: [ + { + timestamp: nowDate.toString(), + timestampUnix: nowDate, + logEntry: { + severity: 'Error', + timestamp: nowDate.toString(), + timestampUnix: nowDate, + message: `Failed to fetch workload logs: ${errorMsg}`, + }, + }, + ], + }; + setWorkloadPodLogsState(updatedState); + }); + }; + + const toggleSpans = (checked: boolean): void => { + const urlParams = new URLSearchParams(history.location.search); + urlParams.set(URLParam.SHOW_SPANS, String(checked)); + history.replace(`${history.location.pathname}?${urlParams.toString()}`); + + const updatedState = { + ...workloadPodLogsState, + showSpans: !workloadPodLogsState.showSpans, + }; + setWorkloadPodLogsState(updatedState); + const podL = props.pods[workloadPodLogsState.podValue!]; + fetchEntries( + props.namespace, + podL.name, + workloadPodLogsState.containerOptions + ? workloadPodLogsState.containerOptions + : [], + updatedState.showSpans, + updatedState.maxLines, + props.timeRange, + props.cluster, + ); + }; + + const toggleSelected = (c: ContainerOption): void => { + c.isSelected = !c.isSelected; + + const updatedState = { + ...workloadPodLogsState, + containerOptions: [...workloadPodLogsState.containerOptions!], + }; + setWorkloadPodLogsState(updatedState); + const podL = props.pods[workloadPodLogsState.podValue!]; + fetchEntries( + props.namespace, + podL.name, + [...workloadPodLogsState.containerOptions!], + updatedState.showSpans, + updatedState.maxLines, + props.timeRange, + props.cluster, + ); + }; + + const getContainerLegend = (): React.ReactNode => { + return ( +
    +
    + + + {workloadPodLogsState.containerOptions!.map((c, i) => { + return ( + toggleSelected(c)} + /> + } + label={ + + {c.displayName} + + } + /> + ); + })} +
    +
    + ); + }; + + // filteredEntries is a memoized function which returns the set of entries that should be visible in the + // logs pane, given the values of show and hide filter, and given the "use regex" configuration. + // When the function is called for the first time with certain combination of parameters, the set of filtered + // entries is calculated, cached and returned. Thereafter, if the function is called with the same values, the + // cached set is returned; otherwise, a new set is re-calculated, re-cached and returned, and the old + // set is discarded. + const filteredEntries = memoize( + ( + entries: Entry[], + showValue: string, + hideValue: string, + useRegex: boolean, + ) => { + let filteredEntriesM = entries; + + if (!!showValue) { + if (useRegex) { + try { + const regexp = RegExp(showValue); + filteredEntriesM = filteredEntriesM.filter( + e => !e.logEntry || regexp.test(e.logEntry.message), + ); + + if (!!workloadPodLogsState.showError) { + const updatedState = { + ...workloadPodLogsState, + showError: undefined, + }; + setWorkloadPodLogsState(updatedState); + } + } catch (e) { + if (e instanceof Error) { + const updatedState = { + ...workloadPodLogsState, + showError: `Show: ${e.message}`, + }; + setWorkloadPodLogsState(updatedState); + } + } + } else { + filteredEntriesM = filteredEntriesM.filter( + e => !e.logEntry || e.logEntry.message.includes(showValue), + ); + } + } + + if (!!hideValue) { + if (useRegex) { + try { + const regexp = RegExp(hideValue); + filteredEntriesM = filteredEntriesM.filter( + e => !e.logEntry || !regexp.test(e.logEntry.message), + ); + + if (!!workloadPodLogsState.hideError) { + const updatedState = { + ...workloadPodLogsState, + hideError: undefined, + }; + setWorkloadPodLogsState(updatedState); + } + } catch (e) { + if (e instanceof Error) { + const updatedState = { + ...workloadPodLogsState, + hideError: `Hide: ${e.message}`, + }; + setWorkloadPodLogsState(updatedState); + } + } + } else { + filteredEntriesM = filteredEntriesM.filter( + e => !e.logEntry || !e.logEntry.message.includes(hideValue), + ); + } + } + + return filteredEntriesM; + }, + ); + + const gotoSpan = (span: Span): void => { + const link = + `/namespaces/${props.namespace}/workloads/${props.workload}` + + `?tab=traces&${URLParam.TRACING_TRACE_ID}=${span.traceID}&${URLParam.TRACING_SPAN_ID}=${span.spanID}`; + history.push(link); + }; + + const entryToString = (entry: Entry): string => { + if (entry.logEntry) { + const le = entry.logEntry; + return workloadPodLogsState.showTimestamps + ? `${formatDate(entry.timestamp)} ${le.message}` + : le.message; + } + + const { duration, operationName } = entry.span!; + return `duration: ${formatDuration( + duration, + )}, operationName: ${operationName}`; + }; + + const addAccessLogModal = (k: string, v: AccessLog): void => { + const accessLogModals = new Map( + workloadPodLogsState.accessLogModals, + ); + accessLogModals.set(k, v); + const updatedState = { + ...workloadPodLogsState, + accessLogModals: accessLogModals, + }; + setWorkloadPodLogsState(updatedState); + }; + + const renderLogLine = ({ + index, + style, + showTimestamps, + }: { + index: number; + style?: React.CSSProperties; + showTimestamps: boolean; + }): React.ReactNode => { + const e = filteredEntries( + workloadPodLogsState.entries, + workloadPodLogsState.showLogValue, + workloadPodLogsState.hideLogValue, + workloadPodLogsState.useRegex, + )[index]; + + if (e.span) { + return ( +
    + {showTimestamps && ( + + {e.timestamp} + + )} + + + +

    + {entryToString(e)} +

    +
    + ); + } + + const le = e.logEntry!; + const messageColor = le.color! ?? PFColors.Color200; + + return !le.accessLog ? ( +
    +

    + {entryToString(e)} +

    +
    + ) : ( +
    + {showTimestamps && ( + + {formatDate(le.timestamp)} + + )} + + + + + +

    + {le.message} +

    +
    + ); + }; + + const getLogsDiv = (): React.ReactNode => { + const toggleToolbar = (): void => { + const updatedState = { + ...workloadPodLogsState, + showToolbar: !workloadPodLogsState.showToolbar, + kebabOpen: false, + }; + setWorkloadPodLogsState(updatedState); + }; + + const toggleShowTimestamps = (): void => { + const updatedState = { + ...workloadPodLogsState, + showTimestamps: !workloadPodLogsState.showTimestamps, + kebabOpen: false, + }; + setWorkloadPodLogsState(updatedState); + }; + + const toggleUseRegex = (): void => { + const updatedState = { + ...workloadPodLogsState, + useRegex: !workloadPodLogsState.useRegex, + kebabOpen: false, + }; + setWorkloadPodLogsState(updatedState); + }; + + const kebabActions = () => ( + + ); + + const logEntries = workloadPodLogsState.entries + ? filteredEntries( + workloadPodLogsState.entries, + workloadPodLogsState.showLogValue, + workloadPodLogsState.hideLogValue, + workloadPodLogsState.useRegex, + ) + : []; + + const entriesToString = (entries: Entry[]): string => { + return entries.map(entry => entryToString(entry)).join('\n'); + }; + + const toggleFullscreen = (): void => { + const screenFullAlias = screenfull as Screenfull; // this casting was necessary + + if (screenFullAlias.isFullscreen) { + screenFullAlias.exit(); + } else { + const element = document.getElementById('logs'); + + if (screenFullAlias.isEnabled) { + if (element) { + screenFullAlias.request(element); + } + } + } + }; + + const hasEntries = (entries: Entry[]): boolean => + !!entries && entries.length > 0; + + const renderLogs = (showTimestamps: boolean): React.ReactElement => { + return ( + <> + {filteredEntries( + workloadPodLogsState.entries, + workloadPodLogsState.showLogValue, + workloadPodLogsState.hideLogValue, + workloadPodLogsState.useRegex, + ).map((_, index) => { + return renderLogLine({ + index: index, + showTimestamps: showTimestamps, + }); + })} + + ); + }; + + return ( +
    + + {getContainerLegend()} + +
    + + + + + + + + + + + {kebabActions()} +
    +
    + + {workloadPodLogsState.linesTruncatedContainers.length > 0 && ( +
    + +
    + )} + +
    0, + ), + ...logsBackground(hasEntries(workloadPodLogsState.entries)), + }} + > + + {logEntries.length === 0 ? ( +
    {NoLogsFoundMessage}
    + ) : ( + renderLogs(workloadPodLogsState.showTimestamps) + )} +
    +
    +
    + ); + }; + + const removeAccessLogModal = (_: string): void => { + const accessLogModals = new Map( + workloadPodLogsState.accessLogModals, + ); + const updatedState = { + ...workloadPodLogsState, + accessLogModals: accessLogModals, + kebabOpen: !workloadPodLogsState.kebabOpen, + }; + setWorkloadPodLogsState(updatedState); + }; + + const getAccessLogModals = (): React.ReactNode[] => { + const modals: React.ReactNode[] = []; + let i = 0; + + workloadPodLogsState.accessLogModals.forEach((v, k) => { + modals.push( + removeAccessLogModal(k)} + />, + ); + }); + + return modals; + }; + + const setPod = (podValue: string): void => { + const podL = props.pods[Number(podValue)]; + const containerNames = getContainerOptions(podL); + + const updatedState = { + ...workloadPodLogsState, + containerOptions: containerNames, + podValue: Number(podValue), + }; + setWorkloadPodLogsState(updatedState); + }; + + const setMaxLines = (maxLines: number): void => { + workloadPodLogsState.maxLines = maxLines; + const updatedState = { + ...workloadPodLogsState, + maxLines: maxLines, + }; + setWorkloadPodLogsState(updatedState); + const podL = props.pods[workloadPodLogsState.podValue!]; + fetchEntries( + props.namespace, + podL.name, + workloadPodLogsState.containerOptions + ? workloadPodLogsState.containerOptions + : [], + updatedState.showSpans, + updatedState.maxLines, + props.timeRange, + props.cluster, + ); + }; + + const checkSubmitShow = (event: React.KeyboardEvent): void => { + if (event.key === 'Enter') { + event.preventDefault(); + + const updatedState = { + ...workloadPodLogsState, + showClearShowLogButton: !!(event.target as HTMLInputElement).value, + showLogValue: (event.target as HTMLInputElement).value, + }; + setWorkloadPodLogsState(updatedState); + } + }; + + const clearShow = (): void => { + // TODO: when TextInput refs are fixed in PF4 then use the ref and remove the direct HTMLElement usage + // this.showInputRef.value = ''; + const htmlInputElement: HTMLInputElement = document.getElementById( + 'log_show', + ) as HTMLInputElement; + if (htmlInputElement !== null) { + htmlInputElement.value = ''; + } + + const updatedState = { + ...workloadPodLogsState, + showError: undefined, + showLogValue: '', + showClearShowLogButton: false, + }; + setWorkloadPodLogsState(updatedState); + }; + + const checkSubmitHide = (event: React.KeyboardEvent): void => { + if (event.key === 'Enter') { + event.preventDefault(); + const updatedState = { + ...workloadPodLogsState, + showClearHideLogButton: !!(event.target as HTMLInputElement).value, + hideLogValue: (event.target as HTMLInputElement).value, + }; + setWorkloadPodLogsState(updatedState); + } + }; + + const clearHide = (): void => { + // TODO: when TextInput refs are fixed in PF4 then use the ref and remove the direct HTMLElement usage + // this.hideInputRef.value = ''; + const htmlInputElement: HTMLInputElement = document.getElementById( + 'log_hide', + ) as HTMLInputElement; + + if (htmlInputElement !== null) { + htmlInputElement.value = ''; + } + + const updatedState = { + ...workloadPodLogsState, + hideError: undefined, + hideLogValue: '', + showClearHideLogButton: false, + }; + setWorkloadPodLogsState(updatedState); + }; + + const [{ loading }, refresh] = useAsyncFn( + async () => { + const podL = props.pods[workloadPodLogsState.podValue!]; + // Check if the config is loaded + fetchEntries( + props.namespace, + podL.name, + workloadPodLogsState.containerOptions + ? workloadPodLogsState.containerOptions + : [], + workloadPodLogsState.showSpans, + workloadPodLogsState.maxLines, + props.timeRange, + props.cluster, + ); + }, + [], + { loading: true }, + ); + useDebounce(refresh, 10); + + if (loading) { + return ; + } + + // @ts-ignore + const maxLines = MaxLinesOptions[workloadPodLogsState.maxLines]; + + // @ts-ignore + return ( + <> + + <> + {workloadPodLogsState.containerOptions && ( + + + + + {workloadPodLogsState.showToolbar && ( + +
    + +
    +
    + setPod(key)} + value={workloadPodLogsState.podValue} + label={ + props.pods[workloadPodLogsState.podValue!]?.name + } + options={podOptions()} + /> +
    + + + {workloadPodLogsState.showClearShowLogButton && ( + + + + )} + + + + {workloadPodLogsState.showClearHideLogButton && ( + + + + )} + + {workloadPodLogsState.showError && ( +
    + {workloadPodLogsState.showError} +
    + )} + {workloadPodLogsState.hideError && ( +
    + {workloadPodLogsState.hideError} +
    + )} + +
    + +
    + +
    +
    +
    + + + toggleSpans(checked) + } + /> + } + label={ + + spans + + } + /> +
    + + setMaxLines(Number(key)) + } + value={workloadPodLogsState.maxLines} + label={maxLines} + options={MaxLinesOptions} + tooltip="Truncate after N log lines" + className={toolbarTail} + /> +
    +
    + )} + {getLogsDiv()} + {getAccessLogModals()} +
    +
    +
    +
    + )} + {workloadPodLogsState.loadingLogsError && ( +
    {workloadPodLogsState.loadingLogsError}
    + )} + +
    + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/WorkloadDetails/WorkloadPods.tsx b/workspaces/kiali/plugins/kiali/src/pages/WorkloadDetails/WorkloadPods.tsx new file mode 100644 index 0000000000..a0b456a486 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/WorkloadDetails/WorkloadPods.tsx @@ -0,0 +1,188 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { EmptyState } from '@backstage/core-components'; + +import { + Card, + CardContent, + CardHeader, + Tooltip, + Typography, +} from '@material-ui/core'; + +import { Labels } from '../../components/Label/Labels'; +import { PFBadge, PFBadges } from '../../components/Pf/PfBadges'; +import { SimpleTable, tRow } from '../../components/SimpleTable'; +import { LocalTime } from '../../components/Time/LocalTime'; +import { KialiIcon } from '../../config/KialiIcon'; +import { cardsHeight, kialiStyle } from '../../styles/StyleUtils'; +import { ObjectValidation, Pod } from '../../types/IstioObjects'; +import { PodStatus } from './PodStatus'; + +type WorkloadPodsProps = { + namespace: string; + pods: Pod[]; + validations: { [key: string]: ObjectValidation }; + workload: string; +}; + +const resourceListStyle = kialiStyle({ + margin: '0 0 0.5rem 0', + $nest: { + '& > ul > li > span': { + float: 'left', + width: '125px', + fontWeight: 700, + }, + }, +}); + +const infoStyle = kialiStyle({ + marginLeft: '0.5rem', +}); + +const iconStyle = kialiStyle({ + display: 'inline-block', +}); + +export const WorkloadPods: React.FC = ( + props: WorkloadPodsProps, +) => { + const columns: any[] = [{ title: 'Name' }, { title: 'Status', width: 10 }]; + + const noPods: React.ReactNode = ( + {`No Pods in workload ${props.workload}`}} + /> + ); + + const rows: tRow = props.pods + .sort((p1: Pod, p2: Pod) => (p1.name < p2.name ? -1 : 1)) + .map((pod, _podIdx) => { + let validation: ObjectValidation = {} as ObjectValidation; + + if (props.validations[pod.name]) { + validation = props.validations[pod.name]; + } + + const podProperties = ( +
    +
      +
    • + Created +
      + +
      +
    • + +
    • + Created By +
      + {pod.createdBy && pod.createdBy.length > 0 + ? pod.createdBy + .map(ref => `${ref.name} (${ref.kind})`) + .join(', ') + : 'Not found'} +
      +
    • + +
    • + Service Account +
      + {pod.serviceAccountName ?? 'Not found'} +
      +
    • + +
    • + Istio Init Container +
      + {pod.istioInitContainers + ? pod.istioInitContainers.map(c => `${c.image}`).join(', ') + : 'Not found'} +
      +
    • + +
    • + Istio Container +
      + {pod.istioContainers + ? pod.istioContainers.map(c => `${c.image}`).join(', ') + : 'Not found'} +
      +
    • + +
    • + Labels +
      + +
      +
    • +
    +
    + ); + + return { + cells: [ + +
    + +
    + {pod.name} + {podProperties}} + > +
    + +
    +
    +
    , + , + ], + }; + }); + + return ( + + + Pods + + } + /> + + + + + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/WorkloadDetails/WorkloadsDescription.tsx b/workspaces/kiali/plugins/kiali/src/pages/WorkloadDetails/WorkloadsDescription.tsx new file mode 100644 index 0000000000..3a7e0657fb --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/WorkloadDetails/WorkloadsDescription.tsx @@ -0,0 +1,298 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { + Card, + CardContent, + CardHeader, + Tooltip, + Typography, +} from '@material-ui/core'; + +import { AmbientLabel } from '../../components/Ambient/AmbientLabel'; +import { DetailDescription } from '../../components/DetailDescription/DetailDescription'; +import { HealthIndicator } from '../../components/Health/HealthIndicator'; +import { Labels } from '../../components/Label/Labels'; +import { renderAPILogo, renderRuntimeLogo } from '../../components/Logos/Logos'; +import { MissingAuthPolicy } from '../../components/MissingAuthPolicy/MissingAuthPolicy'; +import { MissingLabel } from '../../components/MissingLabel/MissingLabel'; +import { MissingSidecar } from '../../components/MissingSidecar/MissingSidecar'; +import { PFBadge, PFBadges } from '../../components/Pf/PfBadges'; +import { TextOrLink } from '../../components/TextOrLink'; +import { LocalTime } from '../../components/Time/LocalTime'; +import { isMultiCluster, serverConfig } from '../../config'; +import { KialiIcon } from '../../config/KialiIcon'; +import { isGateway, isWaypoint } from '../../helpers/LabelFilterHelper'; +import { cardsHeight, kialiStyle } from '../../styles/StyleUtils'; +import * as H from '../../types/Health'; +import { validationKey } from '../../types/IstioConfigList'; +import { Workload } from '../../types/Workload'; +import { hasMissingAuthPolicy } from '../../utils/IstioConfigUtils'; + +type WorkloadDescriptionProps = { + health?: H.Health; + entity?: boolean; + namespace: string; + workload: Workload; + view?: string; +}; + +const resourceListStyle = kialiStyle({ + marginBottom: '0.75rem', + $nest: { + '& > ul > li span': { + float: 'left', + width: '125px', + fontWeight: 700, + }, + }, +}); + +export const iconStyle = kialiStyle({ + display: 'inline-block', +}); + +export const infoStyle = kialiStyle({ + marginLeft: '0.5rem', + verticalAlign: '-0.125rem', + display: 'inline-block', +}); + +export const healthIconStyle = kialiStyle({ + marginLeft: '0.5rem', + verticalAlign: '-0.075rem', +}); + +const additionalItemStyle = kialiStyle({ + display: 'flex', + alignItems: 'center', +}); + +const runtimeInfoStyle = kialiStyle({ + display: 'flex', + alignItems: 'center', + marginTop: '0.5rem', +}); + +export const WorkloadDescription: React.FC = ( + props: WorkloadDescriptionProps, +) => { + const workload = props.workload; + const apps: string[] = []; + const services: string[] = []; + + if (workload.labels[serverConfig.istioLabels.appLabelName]) { + apps.push(workload.labels[serverConfig.istioLabels.appLabelName]); + } + + workload.services?.forEach(s => services.push(s.name)); + + const isTemplateLabels = + workload && + [ + 'Deployment', + 'ReplicaSet', + 'ReplicationController', + 'DeploymentConfig', + 'StatefulSet', + ].indexOf(workload.type) >= 0; + + const runtimes = (workload?.runtimes ?? []) + .map(r => r.name) + .filter(name => name !== ''); + + const workloadProperties = workload ? ( + <> +
    +
      + {workload.istioInjectionAnnotation !== undefined && ( +
    • + Istio Injection + {String(workload.istioInjectionAnnotation)} +
    • + )} + +
    • + Type + {workload.type ? workload.type : 'N/A'} +
    • + +
    • + Created +
      + +
      +
    • + +
    • + Version + {workload.resourceVersion} +
    • + + {workload.additionalDetails.map((additionalItem, idx) => { + return ( +
    • +
      + {additionalItem.title} + {additionalItem.icon && + renderAPILogo(additionalItem.icon, undefined, idx)} +
      + +
    • + ); + })} + + {runtimes.length > 0 && ( +
    • +
      + Runtimes +
      + {runtimes + .map((rt, idx) => renderRuntimeLogo(rt, idx)) + .reduce( + (list: React.ReactNode[], elem) => + list.length > 0 + ? [...list, | , elem] + : [elem], + [], + )} +
      +
      +
    • + )} +
    +
    + + ) : undefined; + + return ( + + + +
    + +
    + + {props.workload.name} + + {workloadProperties ? ( + + {workloadProperties} + + } + > +
    + +
    +
    + ) : undefined} + + + + + + {!props.workload.istioSidecar && + !props.workload.istioAmbient && + !isWaypoint(props.workload.labels) && ( + + )} + + {props.workload.istioAmbient && + !isWaypoint(props.workload.labels) && ( + 0 + ? true + : false + } + /> + )} + + {hasMissingAuthPolicy( + validationKey(props.workload.name, props.namespace), + props.workload.validations, + ) && ( + + )} + + {(!props.workload.appLabel || !props.workload.versionLabel) && + !isWaypoint(props.workload.labels) && ( + + )} +
    + + {props.workload?.cluster && isMultiCluster && ( +
    + {props.workload.cluster} +
    + )} + + } + /> + + + {workload.labels && ( + + )} + + +
    + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/WorkloadList/FiltersAndSorts.tsx b/workspaces/kiali/plugins/kiali/src/pages/WorkloadList/FiltersAndSorts.tsx new file mode 100644 index 0000000000..f82816c8aa --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/WorkloadList/FiltersAndSorts.tsx @@ -0,0 +1,66 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { presenceValues } from '../../components/Filters/CommonFilters'; +import { + ActiveFiltersInfo, + AllFilterTypes, + FILTER_ACTION_APPEND, + FILTER_ACTION_UPDATE, + FilterType, + RunnableFilter, +} from '../../types/Filters'; +import { NamespaceInfo } from '../../types/NamespaceInfo'; + +export const appLabelFilter: FilterType = { + category: 'App Label', + placeholder: 'Filter by App Label Validation', + filterType: AllFilterTypes.select, + action: FILTER_ACTION_UPDATE, + filterValues: presenceValues, +}; + +export const labelFilter: RunnableFilter = { + category: 'Namespace Label', + placeholder: 'Filter by Namespace Label', + filterType: AllFilterTypes.nsLabel, + action: FILTER_ACTION_APPEND, + filterValues: [], + run: (ns: NamespaceInfo, filters: ActiveFiltersInfo) => { + return filters.filters.some(f => { + if (f.value.includes('=')) { + const [k, v] = f.value.split('='); + return v + .split(',') + .some( + val => + !!ns.labels && k in ns.labels && ns.labels[k].startsWith(val), + ); + } + return ( + !!ns.labels && + Object.keys(ns.labels).some(label => label.startsWith(f.value)) + ); + }); + }, +}; + +export const versionLabelFilter: FilterType = { + category: 'Version Label', + placeholder: 'Filter by Version Label Validation', + filterType: AllFilterTypes.select, + action: FILTER_ACTION_UPDATE, + filterValues: presenceValues, +}; diff --git a/workspaces/kiali/plugins/kiali/src/pages/WorkloadList/WorkloadListPage.tsx b/workspaces/kiali/plugins/kiali/src/pages/WorkloadList/WorkloadListPage.tsx new file mode 100644 index 0000000000..f978029eb1 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/pages/WorkloadList/WorkloadListPage.tsx @@ -0,0 +1,189 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; +import { useRef } from 'react'; +import { useAsyncFn, useDebounce } from 'react-use'; + +import { Entity } from '@backstage/catalog-model'; +import { Content } from '@backstage/core-components'; +import { useApi } from '@backstage/core-plugin-api'; + +import { CircularProgress } from '@material-ui/core'; + +import { DefaultSecondaryMasthead } from '../../components/DefaultSecondaryMasthead/DefaultSecondaryMasthead'; +import * as FilterHelper from '../../components/FilterList/FilterHelper'; +import { TimeDurationComponent } from '../../components/Time/TimeDurationComponent'; +import { VirtualList } from '../../components/VirtualList/VirtualList'; +import { isMultiCluster } from '../../config'; +import { useKialiEntityContext } from '../../dynamic/KialiContext'; +import { getEntityNs, nsEqual } from '../../helpers/namespaces'; +import { getErrorString, kialiApiRef } from '../../services/Api'; +import { KialiAppState, KialiContext } from '../../store'; +import { baseStyle } from '../../styles/StyleUtils'; +import { DRAWER, ENTITY } from '../../types/types'; +import { WorkloadListItem } from '../../types/Workload'; +import { NamespaceInfo } from '../Overview/NamespaceInfo'; +import { getNamespaces } from '../Overview/OverviewPage'; + +export const WorkloadListPage = (props: { view?: string; entity?: Entity }) => { + const kialiClient = useApi(kialiApiRef); + const [namespaces, setNamespaces] = React.useState([]); + const [allWorkloads, setWorkloads] = React.useState([]); + const [duration, setDuration] = React.useState( + FilterHelper.currentDuration(), + ); + const kialiState = React.useContext(KialiContext) as KialiAppState; + const kialiContext = useKialiEntityContext(); + + const activeNs = props.entity + ? getEntityNs(props.entity) + : kialiState.namespaces.activeNamespaces.map(ns => ns.name); + const prevActiveNs = useRef(activeNs); + const prevDuration = useRef(duration); + const [loadingData, setLoadingData] = React.useState(true); + + const fetchWorkloads = ( + nss: NamespaceInfo[], + timeDuration: number, + ): Promise => { + return Promise.all( + nss.map(nsInfo => { + return kialiClient + .getWorkloads(nsInfo.name, timeDuration) + .then(workloadsResponse => { + return workloadsResponse; + }); + }), + ) + .then(results => { + let wkList: WorkloadListItem[] = []; + results.forEach(result => { + wkList = Array.from(wkList).concat(result); + }); + setWorkloads(wkList); + }) + .catch(err => { + kialiState.alertUtils?.add( + `Could not fetch workloads: ${getErrorString(err)}`, + ); + }); + }; + + const load = async () => { + if (kialiContext.data) { + setNamespaces(kialiContext.data); + fetchWorkloads(kialiContext.data, duration); + } else { + kialiClient.getNamespaces().then(namespacesResponse => { + const allNamespaces: NamespaceInfo[] = getNamespaces( + namespacesResponse, + namespaces, + ); + const nsl = allNamespaces.filter(ns => activeNs.includes(ns.name)); + setNamespaces(nsl); + fetchWorkloads(nsl, duration); + }); + } + + // Add a delay so it doesn't look like a flash + setTimeout(() => { + setLoadingData(false); + }, 400); + }; + + const [{ loading }, refresh] = useAsyncFn( + async () => { + // Check if the config is loaded + await load(); + }, + [], + { loading: true }, + ); + useDebounce(refresh, 10); + + React.useEffect(() => { + if ( + duration !== prevDuration.current || + !nsEqual(activeNs, prevActiveNs.current) + ) { + setLoadingData(true); + load(); + prevDuration.current = duration; + prevActiveNs.current = activeNs; + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [activeNs, duration]); + + if (loading) { + return ; + } + + const hiddenColumns = isMultiCluster ? [] : ['cluster']; + if (props.view === ENTITY) { + hiddenColumns.push('details'); + } + + const grids = () => { + const elements = []; + elements.push( + , + ); + return elements; + }; + + const mainContent = () => { + return ( + <> + {props.view !== ENTITY && ( + load()} + /> + )} + + + + ); + }; + + return ( +
    + {props.view !== ENTITY && props.view !== DRAWER && ( + {mainContent()} + )} + {(props.view === ENTITY || props.view === DRAWER) && ( +
    + {mainContent()} +
    + )} +
    + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/plugin.test.ts b/workspaces/kiali/plugins/kiali/src/plugin.test.ts new file mode 100644 index 0000000000..e63a429779 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/plugin.test.ts @@ -0,0 +1,22 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { kialiPlugin } from './plugin'; + +describe('kiali', () => { + it('should export plugin', () => { + expect(kialiPlugin).toBeDefined(); + }); +}); diff --git a/workspaces/kiali/plugins/kiali/src/plugin.ts b/workspaces/kiali/plugins/kiali/src/plugin.ts new file mode 100644 index 0000000000..e0ba26aa52 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/plugin.ts @@ -0,0 +1,103 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { + createApiFactory, + createComponentExtension, + createPlugin, + createRoutableExtension, + discoveryApiRef, + identityApiRef, +} from '@backstage/core-plugin-api'; + +import { overviewRouteRef, rootRouteRef, workloadsRouteRef } from './routes'; +import { KialiApiClient, kialiApiRef } from './services/Api'; + +import '@patternfly/patternfly/patternfly.css'; + +export const pluginName = 'kiali'; + +export const kialiPlugin = createPlugin({ + id: pluginName, + routes: { + root: rootRouteRef, + overview: overviewRouteRef, + workloads: workloadsRouteRef, + }, + apis: [ + createApiFactory({ + api: kialiApiRef, + deps: { + discoveryApi: discoveryApiRef, + identityApi: identityApiRef, + }, + factory: ({ discoveryApi, identityApi }) => + new KialiApiClient({ discoveryApi, identityApi }), + }), + ], +}); + +export const KialiPage = kialiPlugin.provide( + createRoutableExtension({ + name: 'KialiPage', + component: () => import('./components/Router').then(m => m.Router), + mountPoint: rootRouteRef, + }), +); + +export const EntityKialiResourcesCard = kialiPlugin.provide( + createComponentExtension({ + name: 'EntityKialiResourcesCard', + component: { + lazy: () => + import('./dynamic/EntityKialiResourcesCard').then( + m => m.EntityKialiResourcesCard, + ), + }, + }), +); + +export const EntityKialiGraphCard = kialiPlugin.provide( + createComponentExtension({ + name: 'EntityKialiGraphCard', + component: { + lazy: () => + import('./dynamic/EntityKialiGraphCard').then( + m => m.EntityKialiGraphCard, + ), + }, + }), +); +/** + * Props of EntityExampleComponent + * + * @public + */ +export type EntityKialiContentProps = { + /** + * Sets the refresh interval in milliseconds. The default value is 10000 (10 seconds) + */ + refreshIntervalMs?: number; +}; + +export const EntityKialiContent: ( + props: EntityKialiContentProps, +) => JSX.Element = kialiPlugin.provide( + createRoutableExtension({ + name: 'EntityKialiContent', + component: () => import('./components/Router').then(m => m.EmbeddedRouter), + mountPoint: rootRouteRef, + }), +); diff --git a/workspaces/kiali/plugins/kiali/src/reducers/HelpDropdown.ts b/workspaces/kiali/plugins/kiali/src/reducers/HelpDropdown.ts new file mode 100644 index 0000000000..5d4b5fb3b3 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/reducers/HelpDropdown.ts @@ -0,0 +1,48 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { getType } from 'typesafe-actions'; + +import { HelpDropdownActions } from '../actions/HelpDropdownActions'; +import { KialiAppAction } from '../actions/KialiAppAction'; +import { StatusState } from '../types/StatusState'; + +export const INITIAL_STATUS_STATE: StatusState = { + status: {}, + externalServices: [], + warningMessages: [], + istioEnvironment: { + isMaistra: false, + istioAPIEnabled: true, + }, +}; + +export const HelpDropdownStateReducer = ( + state: StatusState = INITIAL_STATUS_STATE, + action: KialiAppAction, +): StatusState => { + switch (action.type) { + case getType(HelpDropdownActions.statusRefresh): + return { + ...INITIAL_STATUS_STATE, + status: action.payload.status, + externalServices: action.payload.externalServices, + warningMessages: action.payload.warningMessages, + istioEnvironment: action.payload.istioEnvironment, + }; + default: + return state; + } +}; diff --git a/workspaces/kiali/plugins/kiali/src/reducers/IstioCertsInfoState.ts b/workspaces/kiali/plugins/kiali/src/reducers/IstioCertsInfoState.ts new file mode 100644 index 0000000000..c77ef94ddf --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/reducers/IstioCertsInfoState.ts @@ -0,0 +1,34 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { getType } from 'typesafe-actions'; + +import { IstioCertsInfoActions } from '../actions/IstioCertsInfoActions'; +import { KialiAppAction } from '../actions/KialiAppAction'; +import { CertsInfo } from '../types/CertsInfo'; + +export const INITIAL_ISTIO_CERTS_INFO_STATE: CertsInfo[] = []; + +export const IstioCertsInfoStateReducer = ( + state: CertsInfo[] = INITIAL_ISTIO_CERTS_INFO_STATE, + action: KialiAppAction, +): CertsInfo[] => { + switch (action.type) { + case getType(IstioCertsInfoActions.setinfo): + return action.payload; + default: + return state; + } +}; diff --git a/workspaces/kiali/plugins/kiali/src/reducers/IstioStatusState.ts b/workspaces/kiali/plugins/kiali/src/reducers/IstioStatusState.ts new file mode 100644 index 0000000000..c9336e00d1 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/reducers/IstioStatusState.ts @@ -0,0 +1,35 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { getType } from 'typesafe-actions'; + +import { IstioStatusActions } from '../actions/IstioStatusActions'; +import { KialiAppAction } from '../actions/KialiAppAction'; +import { ComponentStatus } from '../types/IstioStatus'; + +export const INITIAL_ISTIO_STATUS_STATE: ComponentStatus[] = []; + +// This Reducer allows changes to the 'graphDataState' portion of Redux Store +export const IstioStatusStateReducer = ( + state: ComponentStatus[] = INITIAL_ISTIO_STATUS_STATE, + action: KialiAppAction, +): ComponentStatus[] => { + switch (action.type) { + case getType(IstioStatusActions.setinfo): + return action.payload; + default: + return state; + } +}; diff --git a/workspaces/kiali/plugins/kiali/src/reducers/Login.ts b/workspaces/kiali/plugins/kiali/src/reducers/Login.ts new file mode 100644 index 0000000000..f6e9ff4218 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/reducers/Login.ts @@ -0,0 +1,92 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { getType } from 'typesafe-actions'; + +import { LoginActions } from '../actions/LoginActions'; +import { LoginState as LoginStateInterface, LoginStatus } from '../store/Store'; +import { updateState } from '../utils/Reducer'; + +export const INITIAL_LOGIN_STATE: LoginStateInterface = { + landingRoute: undefined, + message: '', + session: undefined, + status: LoginStatus.loggedOut, +}; + +// This Reducer allows changes to the 'loginState' portion of Redux Store +export const LoginReducer = ( + state: LoginStateInterface = INITIAL_LOGIN_STATE, + action: { type: string; payload: any }, +): LoginStateInterface => { + switch (action.type) { + case getType(LoginActions.loginRequest): + return { + ...INITIAL_LOGIN_STATE, + landingRoute: state.landingRoute, + status: LoginStatus.logging, + }; + case getType(LoginActions.loginSuccess): + return { + ...INITIAL_LOGIN_STATE, + ...action.payload, + landingRoute: state.landingRoute, + }; + case getType(LoginActions.loginExtend): + return { + ...INITIAL_LOGIN_STATE, + landingRoute: state.landingRoute, + status: LoginStatus.loggedIn, + session: action.payload.session, + }; + case getType(LoginActions.loginFailure): { + let message = 'Error connecting to Kiali'; + + const response_data = action.payload.error.response.data; + if ( + response_data && + typeof response_data.error === 'string' && + response_data.error.length > 0 + ) { + message = `Login unsuccessful: ${response_data.error}`; + } else if (action.payload.error.response.status === 401) { + message = + 'Unauthorized. The provided credentials are not valid to access Kiali. Please check your credentials and try again.'; + } + + return { + ...INITIAL_LOGIN_STATE, + landingRoute: state.landingRoute, + message: message, + status: LoginStatus.error, + }; + } + case getType(LoginActions.logoutSuccess): + return INITIAL_LOGIN_STATE; + case getType(LoginActions.sessionExpired): + return { + ...INITIAL_LOGIN_STATE, + status: LoginStatus.expired, + message: + 'Your session has expired or was terminated in another window.', + }; + case getType(LoginActions.setLandingRoute): + return updateState(state, { + landingRoute: action.payload, + }); + default: + return state; + } +}; diff --git a/workspaces/kiali/plugins/kiali/src/reducers/MeshTlsState.ts b/workspaces/kiali/plugins/kiali/src/reducers/MeshTlsState.ts new file mode 100644 index 0000000000..43549f4fd0 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/reducers/MeshTlsState.ts @@ -0,0 +1,44 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { getType } from 'typesafe-actions'; + +import { KialiAppAction } from '../actions/KialiAppAction'; +import { MeshTlsActions } from '../actions/MeshTlsActions'; +import { TLSStatus } from '../types/TLSStatus'; + +export const INITIAL_MESH_TLS_STATE: TLSStatus = { + status: '', + autoMTLSEnabled: false, + minTLS: '', +}; + +// This Reducer allows changes to the 'graphDataState' portion of Redux Store +export const MeshTlsStateReducer = ( + state: TLSStatus = INITIAL_MESH_TLS_STATE, + action: KialiAppAction, +): TLSStatus => { + switch (action.type) { + case getType(MeshTlsActions.setinfo): + return { + ...INITIAL_MESH_TLS_STATE, + status: action.payload.status, + autoMTLSEnabled: action.payload.autoMTLSEnabled, + minTLS: action.payload.minTLS, + }; + default: + return state; + } +}; diff --git a/workspaces/kiali/plugins/kiali/src/reducers/MessageCenter.ts b/workspaces/kiali/plugins/kiali/src/reducers/MessageCenter.ts new file mode 100644 index 0000000000..8d3c7f4db4 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/reducers/MessageCenter.ts @@ -0,0 +1,213 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import _ from 'lodash'; +import { getType } from 'typesafe-actions'; + +import { KialiAppAction } from '../actions/KialiAppAction'; +import { LoginActions } from '../actions/LoginActions'; +import { MessageCenterActions } from '../actions/MessageCenterActions'; +import { MessageCenterState } from '../store/Store'; +import { MessageType, NotificationMessage } from '../types/MessageCenter'; +import { updateState } from '../utils/Reducer'; + +export const INITIAL_MESSAGE_CENTER_STATE: MessageCenterState = { + nextId: 0, + groups: [ + { + id: 'systemErrors', + title: 'Open issues', + messages: [], + showActions: false, + hideIfEmpty: true, + }, + { + id: 'default', + title: 'Notifications', + messages: [], + showActions: true, + hideIfEmpty: false, + }, + ], + hidden: true, + expanded: false, + expandedGroupId: 'default', +}; + +const createMessage = ( + id: number, + content: string, + detail: string, + type: MessageType, + count: number, + showNotification: boolean, + created: Date, + showDetail: boolean, + firstTriggered?: Date, +) => { + return { + id, + content, + detail, + type, + count, + show_notification: showNotification, + seen: false, + created: created, + showDetail: showDetail, + firstTriggered, + }; +}; + +// Updates several messages with the same payload, useful for marking messages +// returns the updated state +const updateMessage = ( + state: MessageCenterState, + messageIds: number[], + updater: (message: NotificationMessage) => NotificationMessage, +) => { + const groups = state.groups.map(group => ({ + ...group, + messages: group.messages.map(message => { + if (messageIds.includes(message.id)) { + return updater(message); + } + return message; + }), + })); + return updateState(state, { groups }); +}; + +export const MessageCenterReducer = ( + state: MessageCenterState = INITIAL_MESSAGE_CENTER_STATE, + action: KialiAppAction, +): MessageCenterState => { + switch (action.type) { + case getType(MessageCenterActions.addMessage): { + const { content, detail, groupId, messageType, showNotification } = + action.payload; + const groups = state.groups.map(group => { + if (group.id === groupId) { + const existingMessage = group.messages.find(message => { + // Note, we don't include detail when determining same-ness, just the main content. This is to avoid + // trivial detail differences (like a timestamp). If changing this approach apply the same change below + // for message removal. + return message.content === content; + }); + + // remove the old message from the list + const filteredArray = _.filter(group.messages, message => { + return message.content !== content; + }); + + let count = 1; + let firstTriggered: Date | undefined = undefined; + + if (existingMessage) { + // it is in the list already + firstTriggered = existingMessage.firstTriggered + ? existingMessage.firstTriggered + : existingMessage.created; + + count += existingMessage.count; + } + + const newMessage: NotificationMessage = createMessage( + state.nextId, + content, + detail, + messageType, + count, + showNotification, + new Date(), + false, + firstTriggered, + ); + return { ...group, messages: filteredArray.concat(newMessage) }; + } + return group; + }); + return updateState(state, { groups: groups, nextId: state.nextId + 1 }); + } + + case getType(MessageCenterActions.removeMessage): { + const messageId = action.payload.messageId; + const groups = state.groups.map(group => ({ + ...group, + messages: group.messages.filter(message => { + return !messageId.includes(message.id); + }), + })); + return updateState(state, { groups }); + } + + case getType(MessageCenterActions.toggleMessageDetail): { + return updateMessage(state, action.payload.messageId, message => ({ + ...message, + showDetail: !message.showDetail, + })); + } + + case getType(MessageCenterActions.markAsRead): { + return updateMessage(state, action.payload.messageId, message => ({ + ...message, + seen: true, + show_notification: false, + })); + } + + case getType(MessageCenterActions.hideNotification): { + return updateMessage(state, action.payload.messageId, message => ({ + ...message, + show_notification: false, + })); + } + + case getType(MessageCenterActions.showMessageCenter): + if (state.hidden) { + return updateState(state, { hidden: false }); + } + return state; + + case getType(MessageCenterActions.hideMessageCenter): + if (!state.hidden) { + return updateState(state, { hidden: true }); + } + return state; + + case getType(MessageCenterActions.toggleExpandedMessageCenter): + return updateState(state, { expanded: !state.expanded }); + + case getType(MessageCenterActions.toggleGroup): { + const { groupId } = action.payload; + if (state.expandedGroupId === groupId) { + return updateState(state, { expandedGroupId: undefined }); + } + return updateState(state, { expandedGroupId: groupId }); + } + + case getType(MessageCenterActions.expandGroup): { + const { groupId } = action.payload; + return updateState(state, { expandedGroupId: groupId }); + } + case getType(LoginActions.loginRequest): { + // Let's clear the message center quen user is loggin-in. This ensures + // that messages from a past session won't persist because may be obsolete. + return INITIAL_MESSAGE_CENTER_STATE; + } + default: + return state; + } +}; diff --git a/workspaces/kiali/plugins/kiali/src/reducers/Namespace.ts b/workspaces/kiali/plugins/kiali/src/reducers/Namespace.ts new file mode 100644 index 0000000000..104664538a --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/reducers/Namespace.ts @@ -0,0 +1,110 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { getType } from 'typesafe-actions'; + +import { KialiAppAction } from '../actions/KialiAppAction'; +import { NamespaceActions } from '../actions/NamespaceAction'; +import { NamespaceState } from '../store/Store'; +import { Namespace } from '../types/Namespace'; +import { updateState } from '../utils/Reducer'; + +function filterDuplicateNamespaces(namespaces: Namespace[]): Namespace[] { + const nsMap = new Map(); + namespaces.forEach(ns => nsMap.set(ns.name, ns)); + return Array.from(nsMap.values()); +} + +function namespacesPerCluster(namespaces: Namespace[]): Map { + const clusterMap: Map = new Map(); + namespaces.forEach(namespace => { + const cluster = namespace.cluster; + if (cluster) { + const existingValue = clusterMap.get(cluster) || []; + clusterMap.set(cluster, existingValue.concat(namespace.name)); + } + }); + return clusterMap; +} + +export const INITIAL_NAMESPACE_STATE: NamespaceState = { + activeNamespaces: [], + isFetching: false, + items: [], + lastUpdated: undefined, + filter: '', +}; + +export const NamespaceStateReducer = ( + state: NamespaceState = INITIAL_NAMESPACE_STATE, + action: KialiAppAction, +): NamespaceState => { + switch (action.type) { + case getType(NamespaceActions.toggleActiveNamespace): { + const namespaceIndex = state.activeNamespaces.findIndex( + namespace => namespace.name === action.payload.name, + ); + if (namespaceIndex === -1) { + return updateState(state, { + activeNamespaces: [ + ...state.activeNamespaces, + { name: action.payload.name }, + ], + }); + } + const activeNamespaces = [...state.activeNamespaces]; + activeNamespaces.splice(namespaceIndex, 1); + return updateState(state, { activeNamespaces }); + } + + case getType(NamespaceActions.setActiveNamespaces): + return updateState(state, { + activeNamespaces: filterDuplicateNamespaces(action.payload), + }); + + case getType(NamespaceActions.setFilter): + return updateState(state, { filter: action.payload }); + + case getType(NamespaceActions.requestStarted): + return updateState(state, { + isFetching: true, + }); + + case getType(NamespaceActions.receiveList): { + const names = action.payload.list.map((ns: Namespace) => ns.name); + const validActive = state.activeNamespaces.filter(an => + names.includes(an.name), + ); + let updatedActive = {}; + if (state.activeNamespaces.length !== validActive.length) { + updatedActive = { activeNamespaces: validActive }; + } + return updateState(state, { + isFetching: false, + items: filterDuplicateNamespaces(action.payload.list), + lastUpdated: action.payload.receivedAt, + namespacesPerCluster: namespacesPerCluster(action.payload.list), + ...updatedActive, + }); + } + case getType(NamespaceActions.requestFailed): + return updateState(state, { + isFetching: false, + }); + + default: + return state; + } +}; diff --git a/workspaces/kiali/plugins/kiali/src/reducers/Tracing.ts b/workspaces/kiali/plugins/kiali/src/reducers/Tracing.ts new file mode 100644 index 0000000000..b4497dce1c --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/reducers/Tracing.ts @@ -0,0 +1,18 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { TracingState } from '../store'; + +export const INITIAL_TRACING_STATE: TracingState = {}; diff --git a/workspaces/kiali/plugins/kiali/src/reducers/UserSettingsState.ts b/workspaces/kiali/plugins/kiali/src/reducers/UserSettingsState.ts new file mode 100644 index 0000000000..db75fe2bd3 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/reducers/UserSettingsState.ts @@ -0,0 +1,70 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { getType } from 'typesafe-actions'; + +import { KialiAppAction } from '../actions/KialiAppAction'; +import { UserSettingsActions } from '../actions/UserSettingsActions'; +import { config } from '../config'; +import { UserSettings } from '../store/Store'; +import { updateState } from '../utils/Reducer'; + +export const INITIAL_USER_SETTINGS_STATE: UserSettings = { + duration: config.toolbar.defaultDuration, + timeRange: config.toolbar.defaultTimeRange, + interface: { navCollapse: false }, + refreshInterval: config.toolbar.defaultRefreshInterval, + replayActive: false, + replayQueryTime: 0, +}; + +export const UserSettingsStateReducer = ( + state: UserSettings = INITIAL_USER_SETTINGS_STATE, + action: KialiAppAction, +): UserSettings => { + switch (action.type) { + case getType(UserSettingsActions.navCollapse): + return updateState(state, { + interface: { navCollapse: action.payload.collapse }, + }); + case getType(UserSettingsActions.setDuration): + return updateState(state, { + duration: action.payload, + }); + case getType(UserSettingsActions.setRefreshInterval): { + return updateState(state, { + refreshInterval: action.payload, + }); + } + case getType(UserSettingsActions.setReplayQueryTime): { + return updateState(state, { + replayQueryTime: action.payload, + }); + } + case getType(UserSettingsActions.setTimeRange): { + return updateState(state, { + timeRange: action.payload, + }); + } + case getType(UserSettingsActions.toggleReplayActive): { + return updateState(state, { + replayActive: !state.replayActive, + replayQueryTime: 0, + }); + } + default: + return state; + } +}; diff --git a/workspaces/kiali/plugins/kiali/src/reducers/index.ts b/workspaces/kiali/plugins/kiali/src/reducers/index.ts new file mode 100644 index 0000000000..8f66db57fb --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/reducers/index.ts @@ -0,0 +1,23 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +export * from './Login'; +export * from './MeshTlsState'; +export * from './MessageCenter'; +export * from './Namespace'; +export * from './HelpDropdown'; +export * from './IstioStatusState'; +export * from './IstioCertsInfoState'; +export * from './UserSettingsState'; diff --git a/workspaces/kiali/plugins/kiali/src/routes.ts b/workspaces/kiali/plugins/kiali/src/routes.ts new file mode 100644 index 0000000000..8c2f517147 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/routes.ts @@ -0,0 +1,85 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { + createRouteRef, + createSubRouteRef, + SubRouteRef, +} from '@backstage/core-plugin-api'; + +export const rootRouteRef = createRouteRef({ + id: 'kiali', +}); + +/* Kiali Page Routes */ +export const overviewRouteRef = createSubRouteRef({ + id: 'overview', + path: '/overview', + parent: rootRouteRef, +}); + +export const workloadsRouteRef: SubRouteRef = createSubRouteRef({ + id: 'workloads', + path: '/workloads', + parent: rootRouteRef, +}); + +export const servicesRouteRef: SubRouteRef = createSubRouteRef({ + id: 'services', + path: '/services', + parent: rootRouteRef, +}); + +export const appsRouteRef: SubRouteRef = createSubRouteRef({ + id: 'applications', + path: '/applications', + parent: rootRouteRef, +}); + +export const istioConfigRouteRef = createSubRouteRef({ + id: 'istio', + parent: rootRouteRef, + path: '/istio', +}); + +export const trafficGraphRouteRef = createSubRouteRef({ + id: 'kiali-traffic-graph', + parent: rootRouteRef, + path: '/graph', +}); + +export const workloadsDetailRouteRef = createSubRouteRef({ + id: 'kiali/workloads/details', + parent: rootRouteRef, + path: '/workloads/:namespace/:workload', +}); + +export const servicesDetailRouteRef = createSubRouteRef({ + id: 'kiali/services/details', + parent: rootRouteRef, + path: '/services/:namespace/:service', +}); + +export const appDetailRouteRef = createSubRouteRef({ + id: 'kiali/applications/details', + parent: rootRouteRef, + path: '/applications/:namespace/:app', +}); + +export const istioConfigDetailRouteRef = createSubRouteRef({ + id: 'kiali/istio/details', + parent: rootRouteRef, + path: '/istio/:namespace/:objectType/:object', +}); diff --git a/workspaces/kiali/plugins/kiali/src/services/Api.ts b/workspaces/kiali/plugins/kiali/src/services/Api.ts new file mode 100644 index 0000000000..ae36e54660 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/services/Api.ts @@ -0,0 +1,1110 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { Entity } from '@backstage/catalog-model'; +import { + createApiRef, + DiscoveryApi, + IdentityApi, +} from '@backstage/core-plugin-api'; + +import { AxiosError } from 'axios'; + +import { config } from '../config'; +import { App, AppQuery } from '../types/App'; +import { AppList, AppListQuery } from '../types/AppList'; +import { AuthInfo } from '../types/Auth'; +import { CertsInfo } from '../types/CertsInfo'; +import { DurationInSeconds, HTTP_VERBS, TimeInSeconds } from '../types/Common'; +import { DashboardModel } from '../types/Dashboards'; +import { GrafanaInfo } from '../types/GrafanaInfo'; +import { GraphDefinition, GraphElementsQuery } from '../types/Graph'; +import { + AppHealth, + NamespaceAppHealth, + NamespaceServiceHealth, + NamespaceWorkloadHealth, + ServiceHealth, + WorkloadHealth, +} from '../types/Health'; +import { + IstioConfigDetails, + IstioConfigDetailsQuery, +} from '../types/IstioConfigDetails'; +import { + IstioConfigList, + IstioConfigListQuery, + IstioConfigsMap, +} from '../types/IstioConfigList'; +import { + CanaryUpgradeStatus, + LogLevelQuery, + OutboundTrafficPolicy, + PodLogs, + PodLogsQuery, + ValidationStatus, +} from '../types/IstioObjects'; +import { + ComponentStatus, + IstiodResourceThresholds, +} from '../types/IstioStatus'; +import { IstioMetricsMap } from '../types/Metrics'; +import { IstioMetricsOptions } from '../types/MetricsOptions'; +import { Namespace } from '../types/Namespace'; +import { KialiCrippledFeatures, ServerConfig } from '../types/ServerConfig'; +import { ServiceDetailsInfo, ServiceDetailsQuery } from '../types/ServiceInfo'; +import { ServiceList, ServiceListQuery } from '../types/ServiceList'; +import { StatusState } from '../types/StatusState'; +import { TLSStatus } from '../types/TLSStatus'; +import { Span, TracingQuery } from '../types/Tracing'; +import { + Workload, + WorkloadListItem, + WorkloadNamespaceResponse, + WorkloadQuery, +} from '../types/Workload'; +import { filterNsByAnnotation } from '../utils/entityFilter'; + +export const ANONYMOUS_USER = 'anonymous'; + +export interface Response { + data: T; +} + +interface ClusterParam { + clusterName?: string; +} +type QueryParams = T & ClusterParam; + +/** API URLs */ + +const urls = config.api.urls; + +/** Headers Definitions */ + +const loginHeaders = config.login.headers; + +/** Helpers to Requests */ + +const getHeaders = (proxyUrl?: string): { [key: string]: string } => { + if (proxyUrl) { + return { 'Content-Type': 'application/x-www-form-urlencoded' }; + } + return { ...loginHeaders }; +}; + +/** Create content type correctly for a given request type */ +const getHeadersWithMethod = ( + method: HTTP_VERBS, + proxyUrl?: string, +): { [key: string]: string } => { + const allHeaders = getHeaders(proxyUrl); + if (method === HTTP_VERBS.PATCH) { + allHeaders['Content-Type'] = 'application/json'; + } + return allHeaders; +}; + +/* Backstage Requirement*/ + +export interface KialiApi { + isDevEnv(): boolean; + getAuthInfo(): Promise; + getStatus(): Promise; + getNamespaces(): Promise; + getNamespaceAppHealth( + namespace: string, + duration: DurationInSeconds, + cluster?: string, + queryTime?: TimeInSeconds, + ): Promise; + getNamespaceServiceHealth( + namespace: string, + duration: DurationInSeconds, + cluster?: string, + queryTime?: TimeInSeconds, + ): Promise; + getNamespaceWorkloadHealth( + namespace: string, + duration: DurationInSeconds, + cluster?: string, + queryTime?: TimeInSeconds, + ): Promise; + getServerConfig(): Promise; + getMeshTls(cluster?: string): Promise; + getNamespaceTls(namespace: string, cluster?: string): Promise; + getOutboundTrafficPolicyMode(): Promise; + getCanaryUpgradeStatus(): Promise; + getIstiodResourceThresholds(): Promise; + getConfigValidations(cluster?: string): Promise; + getAllIstioConfigs( + namespaces: string[], + objects: string[], + validate: boolean, + labelSelector: string, + workloadSelector: string, + cluster?: string, + ): Promise; + getNamespaceMetrics( + namespace: string, + params: IstioMetricsOptions, + ): Promise>; + getIstioStatus(cluster?: string): Promise; + getIstioCertsInfo(): Promise; + getWorkload( + namespace: string, + name: string, + params: WorkloadQuery, + cluster?: string, + ): Promise; + getWorkloads( + namespace: string, + duration: number, + ): Promise; + getIstioConfig( + namespace: string, + objects: string[], + validate: boolean, + labelSelector: string, + workloadSelector: string, + cluster?: string, + ): Promise; + getIstioConfigDetail( + namespace: string, + objectType: string, + object: string, + validate: boolean, + cluster?: string, + ): Promise; + setEntity(entity?: Entity): void; + status(): Promise; + getPodLogs( + namespace: string, + name: string, + container?: string, + maxLines?: number, + sinceTime?: number, + duration?: DurationInSeconds, + isProxy?: boolean, + cluster?: string, + ): Promise; + getWorkloadSpans( + namespace: string, + workload: string, + params: TracingQuery, + cluster?: string, + ): Promise; + setPodEnvoyProxyLogLevel( + namespace: string, + name: string, + level: string, + cluster?: string, + ): Promise; + getServices( + namespace: string, + params?: ServiceListQuery, + ): Promise; + getServiceDetail( + namespace: string, + service: string, + validate: boolean, + cluster?: string, + rateInterval?: DurationInSeconds, + ): Promise; + getApps(namespace: string, params: AppListQuery): Promise; + getApp( + namespace: string, + app: string, + params: AppQuery, + cluster?: string, + ): Promise; + getWorkloadDashboard( + namespace: string, + workload: string, + params: IstioMetricsOptions, + cluster?: string, + ): Promise; + getAppDashboard( + namespace: string, + app: string, + params: IstioMetricsOptions, + cluster?: string, + ): Promise; + getServiceDashboard( + namespace: string, + service: string, + params: IstioMetricsOptions, + cluster?: string, + ): Promise; + getGrafanaInfo(): Promise; + getAppSpans( + namespace: string, + app: string, + params: TracingQuery, + cluster?: string, + ): Promise; + getServiceSpans( + namespace: string, + service: string, + params: TracingQuery, + cluster?: string, + ): Promise; + getCrippledFeatures(): Promise; + getGraphElements(params: GraphElementsQuery): Promise; +} + +export const kialiApiRef = createApiRef({ + id: 'plugin.kiali.service', +}); + +export interface ErrorAuth { + title: string; + message: string; + helper: string; +} + +export interface Response { + data: T; +} + +export type Options = { + discoveryApi: DiscoveryApi; + identityApi: IdentityApi; +}; +/* End */ + +export class KialiApiClient implements KialiApi { + private readonly discoveryApi: DiscoveryApi; + private readonly identityApi: IdentityApi; + private kialiUrl?: string; + private entity?: Entity; + + constructor(options: Options) { + this.kialiUrl = ''; + this.discoveryApi = options.discoveryApi; + this.identityApi = options.identityApi; + this.entity = undefined; + } + + private newRequest = async ( + method: HTTP_VERBS, + url: string, + queryParams?: any, + data?: any, + proxy: boolean = true, + customParams: boolean = false, + ) => { + if (this.kialiUrl === '') { + this.kialiUrl = `${await this.discoveryApi.getBaseUrl('kiali')}`; + } + const kialiHeaders = getHeadersWithMethod(method); + let params: string; + // This is because, the arrays are stringified as param=value1,value2 + // but kiali needs param[]=value, param[]=value2 + if (customParams) { + params = this.getCustomParams(queryParams); + } else { + params = new URLSearchParams(queryParams).toString(); + } + const endpoint = queryParams ? `${url}${queryParams && `?${params}`}` : url; + const { token: idToken } = await this.identityApi.getCredentials(); + const dataRequest = data ? data : {}; + dataRequest.endpoint = endpoint; + dataRequest.method = method; + + const jsonResponse = await fetch( + `${this.kialiUrl}/${proxy ? 'proxy' : 'status'}`, + { + method: HTTP_VERBS.POST, + headers: { + 'Content-Type': 'application/json', + ...(idToken && { Authorization: `Bearer ${idToken}` }), + ...kialiHeaders, + }, + body: JSON.stringify(dataRequest), + }, + ); + + return jsonResponse.json() as T; + }; + + getCustomParams = (queryParams: any): string => { + let params = ''; + for (const key in queryParams) { + if (Array.isArray(queryParams[key])) { + for (let i = 0; i < queryParams[key].length; i++) { + params += `${key}[]=${queryParams[key]}&`; + } + } else { + params += `${key}=${queryParams[key]}&`; + } + } + return params.slice(0, -1); + }; + + isDevEnv = () => { + return false; + }; + + status = async (): Promise => { + return this.newRequest( + HTTP_VERBS.GET, + urls.status, + {}, + {}, + false, + ).then(resp => resp); + }; + + getAuthInfo = async (): Promise => { + return this.newRequest( + HTTP_VERBS.GET, + urls.authInfo, + {}, + {}, + ).then(resp => resp); + }; + + getStatus = async (): Promise => { + return this.newRequest( + HTTP_VERBS.GET, + urls.status, + {}, + {}, + ).then(resp => resp); + }; + + getNamespaces = async (): Promise => { + return this.newRequest( + HTTP_VERBS.GET, + urls.namespaces, + {}, + {}, + ).then(resp => filterNsByAnnotation(resp, this.entity)); + }; + + getServerConfig = async (): Promise => { + return this.newRequest( + HTTP_VERBS.GET, + urls.serverConfig, + {}, + {}, + ).then(resp => resp); + }; + + /* HEALTH */ + + getNamespaceAppHealth = ( + namespace: string, + duration: DurationInSeconds, + cluster?: string, + queryTime?: TimeInSeconds, + ): Promise => { + const params: any = { + type: 'app', + }; + if (duration) { + params.rateInterval = `${String(duration)}s`; + } + if (queryTime) { + params.queryTime = String(queryTime); + } + if (cluster) { + params.clusterName = cluster; + } + return this.newRequest( + HTTP_VERBS.GET, + urls.namespaceHealth(namespace), + params, + {}, + ).then(response => { + const ret: NamespaceAppHealth = {}; + Object.keys(response).forEach(k => { + ret[k] = AppHealth.fromJson(namespace, k, response[k], { + rateInterval: duration, + hasSidecar: true, + hasAmbient: false, + }); + }); + return ret; + }); + }; + + getNamespaceServiceHealth = ( + namespace: string, + duration: DurationInSeconds, + cluster?: string, + queryTime?: TimeInSeconds, + ): Promise => { + const params: any = { + type: 'service', + }; + if (duration) { + params.rateInterval = `${String(duration)}s`; + } + if (queryTime) { + params.queryTime = String(queryTime); + } + if (cluster) { + params.clusterName = cluster; + } + return this.newRequest( + HTTP_VERBS.GET, + urls.namespaceHealth(namespace), + params, + {}, + ).then(response => { + const ret: NamespaceServiceHealth = {}; + Object.keys(response).forEach(k => { + ret[k] = ServiceHealth.fromJson(namespace, k, response[k], { + rateInterval: duration, + hasSidecar: true, + hasAmbient: false, + }); + }); + return ret; + }); + }; + + getNamespaceWorkloadHealth = ( + namespace: string, + duration: DurationInSeconds, + cluster?: string, + queryTime?: TimeInSeconds, + ): Promise => { + const params: any = { + type: 'workload', + }; + if (duration) { + params.rateInterval = `${String(duration)}s`; + } + if (queryTime) { + params.queryTime = String(queryTime); + } + if (cluster) { + params.clusterName = cluster; + } + return this.newRequest( + HTTP_VERBS.GET, + urls.namespaceHealth(namespace), + params, + {}, + ).then(response => { + const ret: NamespaceWorkloadHealth = {}; + Object.keys(response).forEach(k => { + ret[k] = WorkloadHealth.fromJson(namespace, k, response[k], { + rateInterval: duration, + hasSidecar: true, + hasAmbient: false, + }); + }); + return ret; + }); + }; + + getNamespaceTls = ( + namespace: string, + cluster?: string, + ): Promise => { + const queryParams: any = {}; + if (cluster) { + queryParams.clusterName = cluster; + } + return this.newRequest( + HTTP_VERBS.GET, + urls.namespaceTls(namespace), + queryParams, + {}, + ).then(resp => resp); + }; + + getMeshTls = (cluster?: string): Promise => { + const queryParams: any = {}; + if (cluster) { + queryParams.clusterName = cluster; + } + return this.newRequest( + HTTP_VERBS.GET, + urls.meshTls(), + queryParams, + {}, + ).then(resp => resp); + }; + + getOutboundTrafficPolicyMode = (): Promise => { + return this.newRequest( + HTTP_VERBS.GET, + urls.outboundTrafficPolicyMode(), + {}, + {}, + ).then(resp => resp); + }; + + getCanaryUpgradeStatus = (): Promise => { + return this.newRequest( + HTTP_VERBS.GET, + urls.canaryUpgradeStatus(), + {}, + {}, + ).then(resp => resp); + }; + + getIstiodResourceThresholds = (): Promise => { + return this.newRequest( + HTTP_VERBS.GET, + urls.istiodResourceThresholds(), + {}, + {}, + ).then(resp => resp); + }; + + getConfigValidations = (cluster?: string): Promise => { + const queryParams: any = {}; + if (cluster) { + queryParams.clusterName = cluster; + } + return this.newRequest( + HTTP_VERBS.GET, + urls.configValidations(), + queryParams, + {}, + ).then(resp => resp); + }; + + getAllIstioConfigs = ( + namespaces: string[], + objects: string[], + validate: boolean, + labelSelector: string, + workloadSelector: string, + cluster?: string, + ): Promise => { + const params: any = + namespaces && namespaces.length > 0 + ? { namespaces: namespaces.join(',') } + : {}; + if (objects && objects.length > 0) { + params.objects = objects.join(','); + } + if (validate) { + params.validate = validate; + } + if (labelSelector) { + params.labelSelector = labelSelector; + } + if (workloadSelector) { + params.workloadSelector = workloadSelector; + } + if (cluster) { + params.clusterName = cluster; + } + return this.newRequest( + HTTP_VERBS.GET, + urls.allIstioConfigs(), + params, + {}, + ).then(resp => resp); + }; + + getIstioConfigDetail = async ( + namespace: string, + objectType: string, + object: string, + validate: boolean, + cluster?: string, + ): Promise => { + const queryParams: QueryParams = {}; + + if (cluster) { + queryParams.clusterName = cluster; + } + + if (validate) { + queryParams.validate = true; + queryParams.help = true; + } + + return this.newRequest( + HTTP_VERBS.GET, + urls.istioConfigDetail(namespace, objectType, object), + queryParams, + {}, + ); + }; + + getNamespaceMetrics = ( + namespace: string, + params: IstioMetricsOptions, + ): Promise> => { + return this.newRequest>( + HTTP_VERBS.GET, + urls.namespaceMetrics(namespace), + params, + {}, + ).then(resp => resp); + }; + + getIstioStatus = (cluster?: string): Promise => { + const queryParams: any = {}; + if (cluster) { + queryParams.clusterName = cluster; + } + return this.newRequest( + HTTP_VERBS.GET, + urls.istioStatus(), + queryParams, + {}, + ).then(resp => resp); + }; + + getIstioCertsInfo = (): Promise => { + return this.newRequest( + HTTP_VERBS.GET, + urls.istioCertsInfo(), + {}, + {}, + ).then(resp => resp); + }; + + setEntity = (entity?: Entity) => { + this.entity = entity; + }; + + getWorkloads = async ( + namespace: string, + duration: number, + ): Promise => { + return this.newRequest( + HTTP_VERBS.GET, + urls.workloads(namespace), + { health: true, istioResources: true, rateInterval: `${duration}s` }, + {}, + ).then(resp => { + return resp.workloads.map(w => { + return { + name: w.name, + namespace: resp.namespace.name, + cluster: w.cluster, + type: w.type, + istioSidecar: w.istioSidecar, + istioAmbient: w.istioAmbient, + additionalDetailSample: undefined, + appLabel: w.appLabel, + versionLabel: w.versionLabel, + labels: w.labels, + istioReferences: w.istioReferences, + notCoveredAuthPolicy: w.notCoveredAuthPolicy, + health: WorkloadHealth.fromJson( + resp.namespace.name, + w.name, + w.health, + { + rateInterval: duration, + hasSidecar: w.istioSidecar, + hasAmbient: w.istioAmbient, + }, + ), + }; + }); + }); + }; + + getWorkload = async ( + namespace: string, + name: string, + params: WorkloadQuery, + cluster?: string, + ): Promise => { + const queryParams: QueryParams = { ...params }; + if (cluster) { + queryParams.clusterName = cluster; + } + return this.newRequest( + HTTP_VERBS.GET, + urls.workload(namespace, name), + queryParams, + {}, + ).then(resp => { + return resp; + }); + }; + + getIstioConfig = async ( + namespace: string, + objects: string[], + validate: boolean, + labelSelector: string, + workloadSelector: string, + cluster?: string, + ): Promise => { + const params: QueryParams = {}; + if (objects && objects.length > 0) { + params.objects = objects.join(','); + } + if (validate) { + params.validate = validate; + } + + if (labelSelector) { + params.labelSelector = labelSelector; + } + + if (workloadSelector) { + params.workloadSelector = workloadSelector; + } + + if (cluster) { + params.clusterName = cluster; + } + + return this.newRequest( + HTTP_VERBS.GET, + urls.istioConfig(namespace), + params, + {}, + ).then(resp => { + return resp; + }); + }; + + getPodLogs = async ( + namespace: string, + name: string, + container?: string, + maxLines?: number, + sinceTime?: number, + duration?: DurationInSeconds, + isProxy?: boolean, + cluster?: string, + ): Promise => { + const params: QueryParams = {}; + + if (container) { + params.container = container; + } + + if (sinceTime) { + params.sinceTime = sinceTime; + } + + if (maxLines && maxLines > 0) { + params.maxLines = maxLines; + } + + if (duration && duration > 0) { + params.duration = `${duration}s`; + } + + if (cluster) { + params.clusterName = cluster; + } + + params.isProxy = !!isProxy; + + return this.newRequest( + HTTP_VERBS.GET, + urls.podLogs(namespace, name), + params, + {}, + ).then(resp => { + return resp; + }); + }; + + setPodEnvoyProxyLogLevel = async ( + namespace: string, + name: string, + level: string, + cluster?: string, + ): Promise => { + const params: QueryParams = { level: level }; + + if (cluster) { + params.clusterName = cluster; + } + + return this.newRequest( + HTTP_VERBS.POST, + urls.podEnvoyProxyLogging(namespace, name), + params, + {}, + ).then(resp => { + return resp; + }); + }; + + getWorkloadSpans = async ( + namespace: string, + workload: string, + params: TracingQuery, + cluster?: string, + ): Promise => { + const queryParams: QueryParams = { ...params }; + + if (cluster) { + queryParams.clusterName = cluster; + } + + return this.newRequest( + HTTP_VERBS.GET, + urls.workloadSpans(namespace, workload), + queryParams, + {}, + ).then(resp => { + return resp; + }); + }; + + getServices = async ( + namespace: string, + params?: ServiceListQuery, + ): Promise => { + return this.newRequest( + HTTP_VERBS.GET, + urls.services(namespace), + params, + {}, + ); + }; + + getServiceDetail = async ( + namespace: string, + service: string, + validate: boolean, + cluster?: string, + rateInterval?: DurationInSeconds, + ): Promise => { + const params: QueryParams = {}; + + if (validate) { + params.validate = true; + } + + if (rateInterval) { + params.rateInterval = `${rateInterval}s`; + } + + if (cluster) { + params.clusterName = cluster; + } + + return this.newRequest( + HTTP_VERBS.GET, + urls.service(namespace, service), + params, + {}, + ).then(r => { + const info: ServiceDetailsInfo = r; + + if (info.health) { + // Default rate interval in backend = 600s + info.health = ServiceHealth.fromJson(namespace, service, info.health, { + rateInterval: rateInterval ?? 600, + hasSidecar: info.istioSidecar, + hasAmbient: info.istioAmbient, + }); + } + return info; + }); + }; + + getApps = async ( + namespace: string, + params: AppListQuery, + ): Promise => { + return this.newRequest( + HTTP_VERBS.GET, + urls.apps(namespace), + params, + {}, + ); + }; + + getApp = async ( + namespace: string, + app: string, + params: AppQuery, + cluster?: string, + ): Promise => { + const queryParams: QueryParams = { ...params }; + + if (cluster) { + queryParams.clusterName = cluster; + } + + return this.newRequest( + HTTP_VERBS.GET, + urls.app(namespace, app), + queryParams, + {}, + ); + }; + + getWorkloadDashboard = async ( + namespace: string, + workload: string, + params: IstioMetricsOptions, + cluster?: string, + ): Promise => { + const queryParams: QueryParams = { ...params }; + + if (cluster) { + queryParams.clusterName = cluster; + } + + return this.newRequest( + HTTP_VERBS.GET, + urls.workloadDashboard(namespace, workload), + queryParams, + {}, + undefined, + true, + ); + }; + + getServiceDashboard = async ( + namespace: string, + service: string, + params: IstioMetricsOptions, + cluster?: string, + ): Promise => { + const queryParams: QueryParams = { ...params }; + + if (cluster) { + queryParams.clusterName = cluster; + } + + return this.newRequest( + HTTP_VERBS.GET, + urls.serviceDashboard(namespace, service), + queryParams, + {}, + undefined, + true, + ); + }; + + getAppDashboard = async ( + namespace: string, + app: string, + params: IstioMetricsOptions, + cluster?: string, + ): Promise => { + const queryParams: QueryParams = { ...params }; + + if (cluster) { + queryParams.clusterName = cluster; + } + + return this.newRequest( + HTTP_VERBS.GET, + urls.appDashboard(namespace, app), + queryParams, + {}, + undefined, + true, + ); + }; + + getGrafanaInfo = async (): Promise => { + return this.newRequest(HTTP_VERBS.GET, urls.grafana); + }; + + getAppSpans = async ( + namespace: string, + app: string, + params: TracingQuery, + cluster?: string, + ): Promise => { + const queryParams: QueryParams = { ...params }; + + if (cluster) { + queryParams.clusterName = cluster; + } + + return this.newRequest( + HTTP_VERBS.GET, + urls.appSpans(namespace, app), + queryParams, + {}, + ); + }; + + getServiceSpans = async ( + namespace: string, + service: string, + params: TracingQuery, + cluster?: string, + ): Promise => { + const queryParams: QueryParams = { ...params }; + + if (cluster) { + queryParams.clusterName = cluster; + } + + return this.newRequest( + HTTP_VERBS.GET, + urls.serviceSpans(namespace, service), + queryParams, + {}, + ); + }; + + getCrippledFeatures = async (): Promise => { + return this.newRequest( + HTTP_VERBS.GET, + urls.crippledFeatures, + ); + }; + + getGraphElements = async ( + params: GraphElementsQuery, + ): Promise => { + return this.newRequest( + HTTP_VERBS.GET, + urls.namespacesGraphElements, + params, + ); + }; +} + +export const getErrorString = (error: AxiosError): string => { + if (error && error.response) { + // @ts-expect-error + if (error.response.data && error.response.data.error) { + // @ts-expect-error + return error.response.data.error; + } + if (error.response.statusText) { + let errorString = error.response.statusText; + if (error.response.status === 401) { + errorString += ': Has your session expired? Try logging in again.'; + } + return errorString; + } + } + return ''; +}; + +export const getErrorDetail = (error: AxiosError): string => { + if (error && error.response) { + // @ts-expect-error + if (error.response.data && error.response.data.detail) { + // @ts-expect-error + return error.response.data.detail; + } + } + return ''; +}; diff --git a/workspaces/kiali/plugins/kiali/src/services/Prometheus.ts b/workspaces/kiali/plugins/kiali/src/services/Prometheus.ts new file mode 100644 index 0000000000..8d3c7ccef9 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/services/Prometheus.ts @@ -0,0 +1,53 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { serverConfig } from '../config/ServerConfig'; +import { DurationInSeconds } from '../types/Common'; + +// The step needs to minimally cover 2 datapoints to get any sort of average. So 2*scrape is the bare +// minimum. We set rateInterval=step which basically gives us the rate() of each disjoint set. +// (note, another approach could be to set rateInterval=step+scrape, the overlap could produce some +// smoothing). The rateInterval should typically not be < step or you're just omitting datapoints. +const defaultDataPoints = 50; +const defaultScrapeInterval = 15; // seconds +const minDataPoints = 2; + +export interface PrometheusRateParams { + rateInterval: string; + step: number; +} + +export const computePrometheusRateParams = ( + duration: DurationInSeconds, + dataPoints?: number, + scrapeInterval?: DurationInSeconds, +): PrometheusRateParams => { + let actualDataPoints = dataPoints || defaultDataPoints; + if (actualDataPoints < minDataPoints) { + actualDataPoints = defaultDataPoints; + } + + const configuredScrapeInterval = + serverConfig && serverConfig.prometheus.globalScrapeInterval; + const actualScrapeInterval = + scrapeInterval || configuredScrapeInterval || defaultScrapeInterval; + const minStep = 2 * actualScrapeInterval; + let step = Math.floor(duration / actualDataPoints); + step = step < minStep ? minStep : step; + return { + step: step, + rateInterval: `${step}s`, + }; +}; diff --git a/workspaces/kiali/plugins/kiali/src/setupTests.ts b/workspaces/kiali/plugins/kiali/src/setupTests.ts new file mode 100644 index 0000000000..83e0161dae --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/setupTests.ts @@ -0,0 +1,18 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import '@testing-library/jest-dom'; +import 'jest-canvas-mock'; +import 'cross-fetch/polyfill'; diff --git a/workspaces/kiali/plugins/kiali/src/store/ConfigStore.ts b/workspaces/kiali/plugins/kiali/src/store/ConfigStore.ts new file mode 100644 index 0000000000..153e7d5a65 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/store/ConfigStore.ts @@ -0,0 +1,44 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ + +import { + INITIAL_ISTIO_CERTS_INFO_STATE, + INITIAL_ISTIO_STATUS_STATE, + INITIAL_LOGIN_STATE, + INITIAL_MESH_TLS_STATE, + INITIAL_MESSAGE_CENTER_STATE, + INITIAL_NAMESPACE_STATE, + INITIAL_STATUS_STATE, + INITIAL_USER_SETTINGS_STATE, +} from '../reducers'; +import { INITIAL_TRACING_STATE } from '../reducers/Tracing'; +import { KialiAppState } from './Store'; + +// Setup the initial state of the Redux store with defaults +// (instead of having things be undefined until they are populated by query) +// Redux 4.0 actually required this +export const initialStore: KialiAppState = { + authentication: INITIAL_LOGIN_STATE, + istioStatus: INITIAL_ISTIO_STATUS_STATE, + istioCertsInfo: INITIAL_ISTIO_CERTS_INFO_STATE, + meshTLSStatus: INITIAL_MESH_TLS_STATE, + messageCenter: INITIAL_MESSAGE_CENTER_STATE, + namespaces: INITIAL_NAMESPACE_STATE, + tracingState: INITIAL_TRACING_STATE, + statusState: INITIAL_STATUS_STATE, + userSettings: INITIAL_USER_SETTINGS_STATE, + dispatch: {}, +}; diff --git a/workspaces/kiali/plugins/kiali/src/store/Context.ts b/workspaces/kiali/plugins/kiali/src/store/Context.ts new file mode 100644 index 0000000000..7ad5ad9dd2 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/store/Context.ts @@ -0,0 +1,18 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { createContext } from 'react'; + +export const KialiContext = createContext({}); diff --git a/workspaces/kiali/plugins/kiali/src/store/KialiProvider.tsx b/workspaces/kiali/plugins/kiali/src/store/KialiProvider.tsx new file mode 100644 index 0000000000..62ca034f73 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/store/KialiProvider.tsx @@ -0,0 +1,290 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import React from 'react'; +import { useAsyncFn, useDebounce } from 'react-use'; + +import { Entity } from '@backstage/catalog-model'; +import { useApi } from '@backstage/core-plugin-api'; + +import { CircularProgress } from '@material-ui/core'; +import axios from 'axios'; + +import { + HelpDropdownActions, + LoginActions, + NamespaceActions, +} from '../actions'; +import { IstioCertsInfoActions } from '../actions/IstioCertsInfoActions'; +import { IstioStatusActions } from '../actions/IstioStatusActions'; +import { MeshTlsActions } from '../actions/MeshTlsActions'; +import { setServerConfig } from '../config/ServerConfig'; +import { KialiHelper } from '../pages/Kiali/KialiHelper'; +import { KialiNoResources } from '../pages/Kiali/KialiNoResources'; +import { + HelpDropdownStateReducer, + IstioCertsInfoStateReducer, + IstioStatusStateReducer, + LoginReducer, + MessageCenterReducer, + NamespaceStateReducer, + UserSettingsStateReducer, +} from '../reducers'; +import { MeshTlsStateReducer } from '../reducers/MeshTlsState'; +import { kialiApiRef } from '../services/Api'; +import { AuthInfo } from '../types/Auth'; +import { MessageType } from '../types/MessageCenter'; +import { AlertUtils } from '../utils/Alertutils'; +import { PromisesRegistry } from '../utils/CancelablePromises'; +import { initialStore } from './ConfigStore'; +import { KialiContext } from './Context'; + +export enum ValidationCategory { + configuration = 'configuration', + authentication = 'authentication', + versionSupported = 'versionSupported', + networking = 'networking', + unknown = 'unknown', +} + +export type KialiChecker = { + verify: boolean; + category: ValidationCategory; + missingAttributes?: string[]; + title?: string; + message?: string; + helper?: string; + authData?: AuthInfo; +}; + +const initialChecker: KialiChecker = { + verify: true, + category: ValidationCategory.unknown, +}; + +interface Props { + children: React.ReactNode; + entity?: Entity; +} + +export const KialiProvider: React.FC = ({ + children, + entity, +}): JSX.Element => { + const promises = new PromisesRegistry(); + const [kialiCheck, setKialiCheck] = + React.useState(initialChecker); + const [notHaveResources, setNotHaveResources] = React.useState< + boolean | undefined + >(undefined); + const [loginState, loginDispatch] = React.useReducer( + LoginReducer, + initialStore.authentication, + ); + const [meshTLSStatusState, meshTLSStatusDispatch] = React.useReducer( + MeshTlsStateReducer, + initialStore.meshTLSStatus, + ); + const [statusState, statusDispatch] = React.useReducer( + HelpDropdownStateReducer, + initialStore.statusState, + ); + const [messageState, messageDispatch] = React.useReducer( + MessageCenterReducer, + initialStore.messageCenter, + ); + const [namespaceState, namespaceDispatch] = React.useReducer( + NamespaceStateReducer, + initialStore.namespaces, + ); + const [userSettingState, userSettingDispatch] = React.useReducer( + UserSettingsStateReducer, + initialStore.userSettings, + ); + const [istioStatusState, istioStatusDispatch] = React.useReducer( + IstioStatusStateReducer, + initialStore.istioStatus, + ); + const [istioCertsState, istioCertsDispatch] = React.useReducer( + IstioCertsInfoStateReducer, + initialStore.istioCertsInfo, + ); + + const kialiClient = useApi(kialiApiRef); + kialiClient.setEntity(entity); + const alertUtils = new AlertUtils(messageDispatch); + + const fetchNamespaces = async () => { + if (!namespaceState || !namespaceState.isFetching) { + namespaceDispatch(NamespaceActions.requestStarted()); + return kialiClient + .getNamespaces() + .then(data => { + namespaceDispatch( + NamespaceActions.receiveList([...data], new Date()), + ); + if (data.length > 0) { + setNotHaveResources(false); + } else { + setNotHaveResources(true); + } + namespaceDispatch(NamespaceActions.setActiveNamespaces([...data])); + }) + .catch(() => namespaceDispatch(NamespaceActions.requestFailed())); + } + return () => {}; + }; + + const fetchPostLogin = async () => { + try { + const getAuthpromise = promises + .register('getAuth', kialiClient.getAuthInfo()) + .then(response => { + loginDispatch(LoginActions.loginSuccess(response.sessionInfo)); + }); + const getStatusPromise = promises + .register('getStatus', kialiClient.getStatus()) + .then(response => { + statusDispatch(HelpDropdownActions.statusRefresh(response)); + }); + const getMeshTLS = promises + .register('getMeshTLS', kialiClient.getMeshTls()) + .then(response => + meshTLSStatusDispatch(MeshTlsActions.setinfo(response)), + ); + const getIstioCerts = promises + .register('getIstioCerts', kialiClient.getIstioCertsInfo()) + .then(resp => istioCertsDispatch(IstioCertsInfoActions.setinfo(resp))); + const getServerConfig = promises + .register('getServerConfig', kialiClient.getServerConfig()) + .then(resp => setServerConfig(resp)); + const getIstioStatus = promises + .register('getIstiostatus', kialiClient.getIstioStatus()) + .then(resp => istioStatusDispatch(IstioStatusActions.setinfo(resp))); + + await Promise.all([ + getAuthpromise, + getStatusPromise, + getServerConfig, + getMeshTLS, + getIstioCerts, + getIstioStatus, + ]); + await fetchNamespaces(); + } catch (err) { + let errDetails: string | undefined = undefined; + if (axios.isAxiosError(err)) { + if (err.request) { + const response = (err.request as XMLHttpRequest).responseText; + if (response.trim().length > 0) { + errDetails = response; + } + } + } + setKialiCheck({ + verify: false, + category: ValidationCategory.unknown, + message: `Error in axios: ${errDetails || err}`, + }); + } + }; + + const fetchKiali = async () => { + try { + const status = await kialiClient.status(); + if ('verify' in status && !status.verify) { + alertUtils.addError('Could not check configuration and authenticate'); + setKialiCheck(status); + } else { + fetchPostLogin(); + } + } catch (err) { + let errDetails: string | undefined = undefined; + if (axios.isAxiosError(err)) { + if (err.request) { + const response = (err.request as XMLHttpRequest).responseText; + if (response.trim().length > 0) { + errDetails = response; + } + } + alertUtils.addError('Could not fetch auth info', err); + } + setKialiCheck({ + verify: false, + category: ValidationCategory.networking, + message: `Could not fetch auth info: ${errDetails || err}`, + }); + } + }; + + const mockAlerts = () => { + alertUtils.addMessage({ + content: + '[Mock]Could not fetch Grafana info. Turning off links to Grafana.', + detail: 'grafana URL is not set in Kiali configuration', + group: 'default', + type: MessageType.INFO, + showNotification: false, + }); + alertUtils.addMessage({ + content: '[Mock]Could not fetch Graph.', + detail: 'Mock error fetching graph', + }); + }; + + const [{ loading }, refresh] = useAsyncFn( + async () => { + // Check if the config is loaded + await fetchKiali(); + if (kialiClient.isDevEnv()) { + mockAlerts(); + } + }, + [], + { loading: true }, + ); + useDebounce(refresh, 10); + + if (loading) { + return ; + } else if (!!notHaveResources) { + return ; + } + + return ( + + + {kialiCheck.verify && children} + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/store/Store.ts b/workspaces/kiali/plugins/kiali/src/store/Store.ts new file mode 100644 index 0000000000..9e81f6ccf0 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/store/Store.ts @@ -0,0 +1,100 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { KialiAppAction } from '../actions/KialiAppAction'; +import { CertsInfo } from '../types/CertsInfo'; +import { RawDate, TimeRange, UserName } from '../types/Common'; +import { ComponentStatus } from '../types/IstioStatus'; +import { NotificationGroup } from '../types/MessageCenter'; +import { Namespace } from '../types/Namespace'; +import { StatusState } from '../types/StatusState'; +import { TLSStatus } from '../types/TLSStatus'; +import { JaegerTrace, TracingInfo } from '../types/TracingInfo'; +import { AlertUtils } from '../utils/Alertutils'; + +export interface NamespaceState { + readonly activeNamespaces: Namespace[]; + readonly filter: string; + readonly items?: Namespace[]; + readonly isFetching: boolean; + readonly lastUpdated?: Date; + readonly namespacesPerCluster?: Map; +} + +export interface MessageCenterState { + nextId: number; // This likely will go away once we have persistence + groups: NotificationGroup[]; + hidden: boolean; + expanded: boolean; + expandedGroupId?: string; +} + +export enum LoginStatus { + logging, + loggedIn, + loggedOut, + error, + expired, +} + +export interface LoginSession { + expiresOn: RawDate; + username: UserName; + kialiCookie: string; +} + +export interface LoginState { + landingRoute?: string; + message: string; + session?: LoginSession; + status: LoginStatus; +} + +export interface InterfaceSettings { + navCollapse: boolean; +} + +export interface UserSettings { + duration: number; + interface: InterfaceSettings; + refreshInterval: number; + replayActive: boolean; + replayQueryTime: number; + timeRange: TimeRange; +} + +export type TracingState = { + info?: TracingInfo; + selectedTrace?: JaegerTrace; +}; + +// This defines the Kiali Global Application State +export interface KialiAppState { + // Global state === across multiple pages + // could also be session state + /** Page Settings */ + authentication: LoginState; + istioStatus: ComponentStatus[]; + istioCertsInfo: CertsInfo[]; + messageCenter: MessageCenterState; + meshTLSStatus: TLSStatus; + namespaces: NamespaceState; + statusState: StatusState; + /** User Settings */ + userSettings: UserSettings; + tracingState: TracingState; + dispatch: { [key: string]: React.Dispatch }; + alertUtils?: AlertUtils; +} diff --git a/workspaces/kiali/plugins/kiali/src/store/index.ts b/workspaces/kiali/plugins/kiali/src/store/index.ts new file mode 100644 index 0000000000..0a7d827171 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/store/index.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +export * from './Context'; +export * from './Store'; diff --git a/workspaces/kiali/plugins/kiali/src/styles/AceEditorStyle.ts b/workspaces/kiali/plugins/kiali/src/styles/AceEditorStyle.ts new file mode 100644 index 0000000000..45fecc967c --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/styles/AceEditorStyle.ts @@ -0,0 +1,61 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { NestedCSSProperties } from 'typestyle/lib/types'; + +import { PFColors } from '../components/Pf/PfColors'; +import { kialiStyle } from './StyleUtils'; + +/* + * 70px is the height of the bottom toolbar (save, reload and cancel buttons) + * 100px is the top margin of the yaml editor (Adjusted with RenderComponentScroll). + * So, substracting 170px from the tab content height. + */ +export const istioAceEditorStyle = kialiStyle({ + '--kiali-yaml-editor-height': + 'calc(var(--kiali-details-pages-tab-content-height) - 170px)', + position: 'relative', + minHeight: '200px', + border: `1px solid ${PFColors.BorderColor200}`, + fontSize: 'var(--kiali-global--font-size) !important', + $nest: { + '& div.ace_gutter-cell.ace_info': { + backgroundImage: 'none', + $nest: { + '&::before': { + content: `'\\E92b'`, + fontFamily: 'pficon', + left: '5px', + position: 'absolute', + }, + }, + }, + }, +} as NestedCSSProperties); + +export const istioValidationErrorStyle = kialiStyle({ + position: 'absolute', + background: 'rgba(204, 0, 0, 0.5)', +}); + +export const istioValidationWarningStyle = kialiStyle({ + position: 'absolute', + background: 'rgba(236, 122, 8, 0.5)', +}); + +export const istioValidationInfoStyle = kialiStyle({ + position: 'absolute', + background: PFColors.ColorLight300, +}); diff --git a/workspaces/kiali/plugins/kiali/src/styles/DropdownStyles.ts b/workspaces/kiali/plugins/kiali/src/styles/DropdownStyles.ts new file mode 100644 index 0000000000..f37cb020e8 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/styles/DropdownStyles.ts @@ -0,0 +1,71 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { NestedCSSProperties } from 'typestyle/lib/types'; + +import { PFColors } from '../components/Pf/PfColors'; +import { kialiStyle } from './StyleUtils'; + +export const containerStyle = kialiStyle({ + overflow: 'auto', +}); + +// this emulates Select component .pf-v5-c-select__menu +export const menuStyle = kialiStyle({ + fontSize: 'var(--kiali-global--font-size)', +}); + +// this emulates Select component .pf-v5-c-select__menu but w/o cursor manipulation +export const menuEntryStyle = kialiStyle({ + display: 'inline-block', + width: '100%', +}); + +// this emulates Select component .pf-v5-c-select__menu-group-title but with less bottom padding to conserve space +export const titleStyle = kialiStyle({ + padding: '0.5rem 1rem 0 1rem', + fontWeight: 700, + color: PFColors.Color200, +}); + +const itemStyle: NestedCSSProperties = { + alignItems: 'center', + whiteSpace: 'nowrap', + margin: 0, + padding: '0.375rem 1rem', + display: 'inline-block', +}; + +// this emulates Select component .pf-v5-c-select__menu-item but with less vertical padding to conserve space +export const itemStyleWithoutInfo = kialiStyle(itemStyle); + +// this emulates Select component .pf-v5-c-select__menu-item but with less vertical padding to conserve space +export const itemStyleWithInfo = kialiStyle({ + ...itemStyle, + padding: '0.375rem 0 0.375rem 1rem', +}); + +export const infoStyle = kialiStyle({ + marginLeft: '0.375rem', +}); + +export const groupMenuStyle = kialiStyle({ + textAlign: 'left', +}); + +export const kebabToggleStyle = kialiStyle({ + paddingLeft: '0.5rem', + paddingRight: '0.5rem', +}); diff --git a/workspaces/kiali/plugins/kiali/src/styles/HealthStyle.ts b/workspaces/kiali/plugins/kiali/src/styles/HealthStyle.ts new file mode 100644 index 0000000000..b68cf48778 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/styles/HealthStyle.ts @@ -0,0 +1,32 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { PFColors } from '../components/Pf/PfColors'; +import { kialiStyle } from './StyleUtils'; + +export const healthIndicatorStyle = kialiStyle({ + $nest: { + '& .pf-v5-c-tooltip__content': { + borderWidth: '1px', + textAlign: 'left', + }, + + '& .pf-v5-c-content ul': { + marginBottom: 'var(--pf-v5-c-content--ul--MarginTop)', + marginTop: 0, + color: PFColors.Color100, + }, + }, +}); diff --git a/workspaces/kiali/plugins/kiali/src/styles/StyleUtils.ts b/workspaces/kiali/plugins/kiali/src/styles/StyleUtils.ts new file mode 100644 index 0000000000..1ff8084406 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/styles/StyleUtils.ts @@ -0,0 +1,58 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { Theme } from '@material-ui/core'; +import { useTheme } from '@material-ui/core/styles'; +import { style } from 'typestyle'; +import { NestedCSSProperties } from 'typestyle/lib/types'; + +const cssPrefix = process.env.CSS_PREFIX ?? 'kiali'; + +export const cardsHeight = '300px'; +/** + * Add prefix to CSS classname (mandatory in some plugins like OSSMC) + * Default prefix value is kiali if the environment variable CSS_PREFIX is not defined + */ +export const kialiStyle = (styleProps: NestedCSSProperties) => { + return style({ + $debugName: cssPrefix, + ...styleProps, + }); +}; + +export const baseStyle = kialiStyle({ + display: 'contents', + overflow: 'visible', +}); + +export const linkStyle = kialiStyle({ + color: '#06c', + cursor: 'pointer', +}); + +export const useLinkStyle = () => { + const theme = useTheme(); + + return kialiStyle({ + color: theme.palette.type === 'dark' ? '#9CC9FF' : '#06c', + cursor: 'pointer', + }); +}; + +export const getChipStyle = (theme: Theme) => { + return { + backgroundColor: theme.palette.type === 'dark' ? '#3d5061' : '#e7f1fa', + }; +}; diff --git a/workspaces/kiali/plugins/kiali/src/styles/TabStyles.ts b/workspaces/kiali/plugins/kiali/src/styles/TabStyles.ts new file mode 100644 index 0000000000..4715951f3c --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/styles/TabStyles.ts @@ -0,0 +1,39 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { PFColors } from '../components/Pf/PfColors'; +import { kialiStyle } from './StyleUtils'; + +export const basicTabStyle = kialiStyle({ + $nest: { + '& .pf-v5-c-tabs__list': { + marginLeft: '20px', + }, + + '& .pf-v5-c-tab-content': { + overflowY: 'auto', + height: '600px', + }, + }, +}); + +export const traceTabStyle = kialiStyle({ + $nest: { + '& .pf-v5-c-tabs__list': { + backgroundColor: PFColors.BackgroundColor100, + borderBottom: `1px solid ${PFColors.BorderColor100}`, + }, + }, +}); diff --git a/workspaces/kiali/plugins/kiali/src/types/AceValidations.ts b/workspaces/kiali/plugins/kiali/src/types/AceValidations.ts new file mode 100644 index 0000000000..ab98f76159 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/AceValidations.ts @@ -0,0 +1,365 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { IMarker } from 'react-ace'; +import { Annotation } from 'react-ace/types'; + +import { YAMLException } from 'js-yaml'; + +import { + istioValidationErrorStyle, + istioValidationInfoStyle, + istioValidationWarningStyle, +} from '../styles/AceEditorStyle'; +import { HelpMessage, ObjectCheck, ObjectValidation } from './IstioObjects'; + +export const jsYaml = require('js-yaml'); + +export interface AceValidations { + markers: Array; + annotations: Array; +} + +interface AceCheck { + marker: IMarker; + annotation: Annotation; +} + +interface AceMarker { + startRow: number; + startCol: number; + endRow: number; + endCol: number; + position: number; +} + +interface YamlPosition { + position: number; + row: number; + col: number; +} + +const numRows = (yaml: string): number => { + let rows = 0; + for (let i = 0; i < yaml.length; i++) { + if (yaml.charAt(i) === '\n') { + rows++; + } + } + return rows; +}; + +const posToRowCol = (yaml: string, pos: number): YamlPosition => { + const rowCol: YamlPosition = { + position: pos, + row: 0, + col: 0, + }; + let lastNL = -1; + for (let i = 0; i < pos; i++) { + if (yaml.charAt(i) === '\n') { + rowCol.row++; + lastNL = i; + } + } + rowCol.col = lastNL > -1 ? pos - (lastNL + 1) : pos; + return rowCol; +}; + +export const rowColToPos = (yaml: string, row: number, col: number): number => { + let currentRow = 0; + let currentCol = 0; + const pos = -1; + for (let i = 0; i < yaml.length; i++) { + if (yaml.charAt(i) === '\n') { + currentRow++; + currentCol = -1; + } else { + currentCol++; + } + if (currentRow === row && currentCol === col) { + // If col == 0, pos is NL char, so returned pos should be first char after NL + return col === 0 ? i + 1 : i; + } + } + return pos; +}; + +export const parseLine = (yaml: string, row: number): string => { + let i = 0; + let j = 0; + + for (i; i < yaml.length; i++) { + if (yaml.charAt(i) === '\n') { + j = j + 1; + } + + if (j === row) break; + } + + return yaml.substring(i + 1, yaml.indexOf('\n', i + 1)); +}; + +/* + Find a token inside a yaml based string. + Returns the row/col coordinates of the token. + It manages special cases where a token is an array. + */ +const parseMarker = ( + yaml: string, + startsFrom: number, + token: string, + isArray: boolean, + arrayIndex?: number, +): AceMarker => { + const aceMarker: AceMarker = { + startRow: 0, + startCol: 0, + endRow: 0, + endCol: 0, + position: -1, + }; + + let tokenPos = startsFrom; + + // Find start of the spec part first, this should skip the whole metadata part + if (startsFrom < 0) { + tokenPos = yaml.indexOf('spec:', tokenPos); + } + + // Find initial token position + tokenPos = yaml.indexOf(token, tokenPos); + if (tokenPos < 0) { + return aceMarker; + } + + const maxRows = numRows(yaml); + + // Array should find first '-' token to situate pos + if (isArray && arrayIndex !== undefined) { + tokenPos = yaml.indexOf('-', tokenPos); + // We should find the right '-' under the same col of the yaml + const firstArrayRowCol = posToRowCol(yaml, tokenPos); + let row = firstArrayRowCol.row; + const col = firstArrayRowCol.col; + let arrayIndexPos = tokenPos; + let indexRow = 0; + // Iterate to find next '-' token according arrayIndex + while (row < maxRows && indexRow < arrayIndex) { + row++; + const checkPos = rowColToPos(yaml, row, col); + if (yaml.charAt(checkPos) === '-') { + arrayIndexPos = checkPos; + indexRow++; + } + } + const arrayRowCol = posToRowCol(yaml, arrayIndexPos); + aceMarker.position = arrayIndexPos + 1; // Increase the index to not repeat same finding on next iteration + aceMarker.startRow = arrayRowCol.row; + aceMarker.startCol = arrayRowCol.col; + } else { + const tokenRowCol = posToRowCol(yaml, tokenPos); + aceMarker.position = tokenPos + token.length; // Increase the index to not repeat same finding on next iteration + aceMarker.startRow = tokenRowCol.row; + aceMarker.startCol = tokenRowCol.col; + } + + // Once start is calculated, we should calculate the end of the element iterating by rows + for (let row = aceMarker.startRow + 1; row < maxRows + 1; row++) { + // It searches by row and column, starting from the beginning of the line + for (let col = 0; col <= aceMarker.startCol; col++) { + const endTokenPos = rowColToPos(yaml, row, col); + // We need to differentiate if token is an array or not to mark the end of the mark + if ( + yaml.charAt(endTokenPos) !== ' ' && + (isArray || yaml.charAt(endTokenPos) !== '-') + ) { + aceMarker.endRow = row; + aceMarker.endCol = 0; + return aceMarker; + } + } + } + return aceMarker; +}; + +export const parseHelpAnnotations = ( + yaml: string, + helpMessages: HelpMessage[], +): Annotation[] => { + const annotations: Annotation[] = []; + const lastPosition = -1; + + helpMessages.forEach(hm => { + const marker = parseMarker( + yaml, + lastPosition, + hm.objectField.substring(hm.objectField.lastIndexOf('.') + 1), + false, + ); + + const annotation = { + row: marker.startRow, + column: marker.startCol, + type: 'info', + text: 'This field has help information. Check the side panel for more information.', + }; + + if (marker.position !== -1) { + annotations.push(annotation); + } + }); + + return annotations; +}; + +const getSeverityClassName = (severity: string) => { + switch (severity) { + case 'error': + return istioValidationErrorStyle; + case 'warning': + return istioValidationWarningStyle; + case 'info': + default: + return istioValidationInfoStyle; + } +}; + +const parseCheck = (yaml: string, check: ObjectCheck): AceCheck => { + const severity = + check.severity === 'error' || check.severity === 'warning' + ? check.severity + : 'info'; + const marker: IMarker = { + startRow: 0, + startCol: 0, + endRow: 0, + endCol: 0, + className: getSeverityClassName(severity), + type: 'fullLine', + }; + const annotation = { + row: 0, + column: 0, + type: severity, + text: (check.code ? `${check.code} ` : '') + check.message, + }; + let aceMarker = { + startRow: 0, + startCol: 0, + endRow: 0, + endCol: 0, + position: -1, + }; + /* + Potential paths: + - + - spec/hosts + - spec/host + - spec/[]/route + - spec/[]/route[nDestination] + - spec/[]/route[]/weight/ + - spec/[nRoute]/route[nDestination]/destination + */ + if (check.path.length > 0) { + const tokens: string[] = check.path.split('/'); + // It skips the first 'spec' token + if (tokens.length > 1) { + for (let i = 1; i < tokens.length; i++) { + const token = tokens[i]; + // Check if token has an array or not + if (token.indexOf('[') > -1 && token.indexOf(']') > -1) { + const startPos = token.indexOf('['); + const endPos = token.indexOf(']'); + const arrayIndex = +token.substr(startPos + 1, endPos - startPos - 1); + const subtoken = token.substr(0, startPos); + aceMarker = parseMarker( + yaml, + aceMarker.position, + subtoken, + true, + arrayIndex, + ); + } else { + aceMarker = parseMarker(yaml, aceMarker.position, token, false); + } + } + } + } + + marker.startRow = aceMarker.startRow; + marker.startCol = aceMarker.startCol; + // React Ace editor has a flip in the marker indexes + marker.endRow = aceMarker.endRow > 0 ? aceMarker.endRow - 1 : 0; + marker.endCol = aceMarker.endCol; + annotation.row = marker.startRow; + return { marker: marker, annotation: annotation }; +}; + +export const parseKialiValidations = ( + yamlInput: string, + kialiValidations?: ObjectValidation, +): AceValidations => { + const aceValidations: AceValidations = { + markers: [], + annotations: [], + }; + + if ( + !kialiValidations || + yamlInput.length === 0 || + Object.keys(kialiValidations).length === 0 + ) { + return aceValidations; + } + + kialiValidations.checks.forEach(check => { + const aceCheck = parseCheck(yamlInput, check); + aceValidations.markers.push(aceCheck.marker); + aceValidations.annotations.push(aceCheck.annotation); + }); + return aceValidations; +}; + +export const parseYamlValidations = (yamlInput: string): AceValidations => { + const parsedValidations: AceValidations = { + markers: [], + annotations: [], + }; + try { + jsYaml.safeLoadAll(yamlInput); + } catch (e) { + if (e instanceof YAMLException) { + const row = e.mark && e.mark.line ? e.mark.line : 0; + const col = e.mark && e.mark.column ? e.mark.column : 0; + const message = e.message ? e.message : ''; + parsedValidations.markers.push({ + startRow: row, + startCol: 0, + endRow: row + 1, + endCol: 0, + className: istioValidationErrorStyle, + type: 'fullLine', + }); + parsedValidations.annotations.push({ + row: row, + column: col, + type: 'error', + text: message, + }); + } + } + return parsedValidations; +}; diff --git a/workspaces/kiali/plugins/kiali/src/types/App.ts b/workspaces/kiali/plugins/kiali/src/types/App.ts new file mode 100644 index 0000000000..29dbce1b73 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/App.ts @@ -0,0 +1,47 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { AppHealthResponse } from '../types/Health'; +import { Namespace } from './Namespace'; +import { Runtime } from './Workload'; + +export interface AppId { + app: string; + cluster?: string; + namespace: string; +} + +export interface AppWorkload { + istioSidecar: boolean; + istioAmbient: boolean; + labels: { [key: string]: string }; + serviceAccountNames: string[]; + workloadName: string; +} + +export interface App { + cluster?: string; + health: AppHealthResponse; + name: string; + namespace: Namespace; + runtimes: Runtime[]; + serviceNames: string[]; + workloads: AppWorkload[]; +} + +export interface AppQuery { + health: 'true' | 'false'; + rateInterval: string; +} diff --git a/workspaces/kiali/plugins/kiali/src/types/AppList.ts b/workspaces/kiali/plugins/kiali/src/types/AppList.ts new file mode 100644 index 0000000000..5c7066625f --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/AppList.ts @@ -0,0 +1,43 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { AppHealth } from './Health'; +import { ObjectReference } from './IstioObjects'; +import { Namespace } from './Namespace'; + +export interface AppOverview { + cluster?: string; + health: AppHealth; + istioAmbient: boolean; + istioReferences: ObjectReference[]; + istioSidecar: boolean; + labels: { [key: string]: string }; + name: string; +} + +export interface AppListItem extends AppOverview { + namespace: string; +} + +export interface AppList { + applications: AppOverview[]; + namespace: Namespace; +} + +export interface AppListQuery { + health: 'true' | 'false'; + istioResources: 'true' | 'false'; + rateInterval: string; +} diff --git a/workspaces/kiali/plugins/kiali/src/types/Auth.ts b/workspaces/kiali/plugins/kiali/src/types/Auth.ts new file mode 100644 index 0000000000..4c2e69845d --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/Auth.ts @@ -0,0 +1,50 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +export interface AuthConfig { + authorizationEndpoint?: string; + logoutEndpoint?: string; + logoutRedirect?: string; + strategy: AuthStrategy; +} + +export type AuthInfo = { + sessionInfo: SessionInfo; +} & AuthConfig; + +export enum AuthStrategy { + anonymous = 'anonymous', + openshift = 'openshift', + token = 'token', + openid = 'openid', + header = 'header', +} + +// Stores the result of a computation: +// hold = stop all computation and wait for a side-effect, such as a redirect +// continue = continue... +// success = authentication was a success, session is available +// failure = authentication failed, session is undefined but error is available +export enum AuthResult { + HOLD = 'hold', + CONTINUE = 'continue', + SUCCESS = 'success', + FAILURE = 'failure', +} + +export interface SessionInfo { + username?: string; + expiresOn?: string; +} diff --git a/workspaces/kiali/plugins/kiali/src/types/CertsInfo.ts b/workspaces/kiali/plugins/kiali/src/types/CertsInfo.ts new file mode 100644 index 0000000000..3510a5ae61 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/CertsInfo.ts @@ -0,0 +1,26 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +export interface CertsInfo { + secretName: string; + secretNamespace: string; + dnsNames: String[]; + issuer: string; + subject: string; + notBefore: string; + notAfter: string; + error: string; + accessible: boolean; +} diff --git a/workspaces/kiali/plugins/kiali/src/types/Common.ts b/workspaces/kiali/plugins/kiali/src/types/Common.ts new file mode 100644 index 0000000000..bf876a7eaa --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/Common.ts @@ -0,0 +1,134 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { defaultMetricsDuration } from '../components/Metrics/Helper'; + +export type AppenderString = string; + +export type UserName = string; +export type Password = string; +export type RawDate = string; + +export type KioskMode = string; + +export enum HTTP_VERBS { + DELETE = 'DELETE', + GET = 'get', + PATCH = 'patch', + POST = 'post', + PUT = 'put', +} + +export const PF_THEME_DARK = 'pf-v5-theme-dark'; +export const KIALI_THEME = 'kiali-theme'; + +export const enum Theme { + LIGHT = 'Light', + DARK = 'Dark', +} + +export type TargetKind = 'app' | 'service' | 'workload'; + +export const MILLISECONDS = 1000; + +export const UNIT_TIME = { + SECOND: 1, + MINUTE: 60, + HOUR: 3600, + DAY: 24 * 3600, +}; + +export type TimeInMilliseconds = number; +export type TimeInSeconds = number; + +export type IntervalInMilliseconds = number; +export type DurationInSeconds = number; + +export type BoundsInMilliseconds = { + from?: TimeInMilliseconds; + to?: TimeInMilliseconds; +}; + +// Redux doesn't work well with type composition +export type TimeRange = { + from?: TimeInMilliseconds; + to?: TimeInMilliseconds; + rangeDuration?: DurationInSeconds; +}; + +export const boundsToDuration = ( + bounds: BoundsInMilliseconds, +): DurationInSeconds => { + return Math.floor( + ((bounds.to || new Date().getTime()) - + (bounds.from || new Date().getTime())) / + 1000, + ); +}; + +export const durationToBounds = ( + duration: DurationInSeconds, +): BoundsInMilliseconds => { + return { + from: new Date().getTime() - duration * 1000, + }; +}; + +export const isEqualTimeRange = (t1: TimeRange, t2: TimeRange): boolean => { + if (t1.from && t2.from && t1.from !== t2.from) { + return false; + } + if (t1.to && t2.to && t1.to !== t2.to) { + return false; + } + if ( + t1.rangeDuration && + t2.rangeDuration && + t1.rangeDuration !== t2.rangeDuration + ) { + return false; + } + return true; +}; + +// Type-guarding TimeRange: executes first callback when range is a duration, or second callback when it's a bounded range, mapping to a value +export function guardTimeRange( + range: TimeRange, + ifDuration: (d: DurationInSeconds) => T, + ifBounded: (b: BoundsInMilliseconds) => T, +): T { + if (range.from) { + const b: BoundsInMilliseconds = { + from: range.from, + }; + if (range.to) { + b.to = range.to; + } + return ifBounded(b); + } + if (range.rangeDuration) { + return ifDuration(range.rangeDuration); + } + // It shouldn't reach here a TimeRange should have DurationInSeconds or BoundsInMilliseconds + return ifDuration(defaultMetricsDuration); +} + +export const evalTimeRange = (range: TimeRange): [Date, Date] => { + const bounds = guardTimeRange(range, durationToBounds, b => b); + return [ + bounds.from ? new Date(bounds.from) : new Date(), + bounds.to ? new Date(bounds.to) : new Date(), + ]; +}; diff --git a/workspaces/kiali/plugins/kiali/src/types/Dashboards.ts b/workspaces/kiali/plugins/kiali/src/types/Dashboards.ts new file mode 100644 index 0000000000..f836876d3e --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/Dashboards.ts @@ -0,0 +1,62 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { LabelDisplayName, Metric, PromLabel } from './Metrics'; + +export interface DashboardModel { + title: string; + charts: ChartModel[]; + aggregations: AggregationModel[]; + externalLinks: ExternalLink[]; + rows: number; +} + +export type SpanValue = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12; +export type ChartType = 'area' | 'line' | 'bar' | 'scatter'; +export type XAxisType = 'time' | 'series'; + +export interface ChartModel { + name: string; + unit: string; + spans: SpanValue; + rowSpans?: SpanValue; + chartType?: ChartType; + min?: number; + max?: number; + metrics: Metric[]; + error?: string; + startCollapsed: boolean; + xAxis?: XAxisType; +} + +export interface AggregationModel { + label: PromLabel; + displayName: LabelDisplayName; + singleSelection: boolean; +} + +export interface ExternalLink { + url: string; + name: string; + variables: ExternalLinkVariables; +} + +export interface ExternalLinkVariables { + app?: string; + namespace?: string; + service?: string; + version?: string; + workload?: string; +} diff --git a/workspaces/kiali/plugins/kiali/src/types/ErrorMsg.ts b/workspaces/kiali/plugins/kiali/src/types/ErrorMsg.ts new file mode 100644 index 0000000000..8b2c515085 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/ErrorMsg.ts @@ -0,0 +1,19 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +export type ErrorMsg = { + title: string; + description: string; +}; diff --git a/workspaces/kiali/plugins/kiali/src/types/ErrorRate/ErrorRate.ts b/workspaces/kiali/plugins/kiali/src/types/ErrorRate/ErrorRate.ts new file mode 100644 index 0000000000..619e248acf --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/ErrorRate/ErrorRate.ts @@ -0,0 +1,224 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { + getRequestErrorsStatus, + HEALTHY, + NA, + RATIO_NA, + RequestHealth, + RequestType, + ThresholdStatus, +} from '../Health'; +import { RateHealth } from '../HealthAnnotation'; +import { ToleranceConfig } from '../ServerConfig'; +import { ErrorRatio, Rate, RequestTolerance } from './types'; +import { + checkExpr, + emptyRate, + getErrorCodeRate, + getRateHealthConfig, +} from './utils'; + +export const generateRateForTolerance = ( + tol: RequestTolerance, + requests: { [key: string]: { [key: string]: number } }, +) => { + for (const [protocol, req] of Object.entries(requests)) { + if (checkExpr(tol!.tolerance!.protocol, protocol)) { + for (const [code, value] of Object.entries(req)) { + if (!Object.keys(tol.requests).includes(protocol)) { + tol.requests[protocol] = emptyRate(); + } + (tol.requests[protocol] as Rate).requestRate += Number(value); + if (checkExpr(tol!.tolerance!.code, code)) { + (tol.requests[protocol] as Rate).errorRate += Number(value); + } + } + } + if (Object.keys(tol.requests).includes(protocol)) { + if ((tol.requests[protocol] as Rate).requestRate === 0) { + (tol.requests[protocol] as Rate).errorRatio = -1; + } else { + (tol.requests[protocol] as Rate).errorRatio = + (tol.requests[protocol] as Rate).errorRate / + (tol.requests[protocol] as Rate).requestRate; + } + } + } +}; + +// Aggregate the results +export const aggregate = ( + request: RequestType, + tolerances?: ToleranceConfig[], +): RequestTolerance[] => { + const result: RequestTolerance[] = []; + if (request && tolerances) { + for (const tol of Object.values(tolerances)) { + const newReqTol: RequestTolerance = { tolerance: tol, requests: {} }; + generateRateForTolerance(newReqTol, request); + result.push(newReqTol); + } + } + return result; +}; + +// Sum the inbound and outbound request for calculating the global status +export const sumRequests = ( + inbound: RequestType, + outbound: RequestType, +): RequestType => { + const result: RequestType = {}; + // init result with a deep clone of inbound + for (const [protocol, req] of Object.entries(inbound)) { + result[protocol] = {}; + for (const [code, rate] of Object.entries(req)) { + result[protocol][code] = rate; + } + } + for (const [protocol, req] of Object.entries(outbound)) { + if (!Object.keys(result).includes(protocol)) { + result[protocol] = {}; + } + for (const [code, rate] of Object.entries(req)) { + if (!Object.keys(result[protocol]).includes(code)) { + result[protocol][code] = 0; + } + result[protocol][code] += rate; + } + } + return result; +}; + +const getAggregate = ( + requests: RequestHealth, + conf: ToleranceConfig[], +): { + global: RequestTolerance[]; + inbound: RequestTolerance[]; + outbound: RequestTolerance[]; +} => { + // Get all tolerances where direction is inbound + const inboundTolerances = conf?.filter(tol => + checkExpr(tol.direction, 'inbound'), + ); + // Get all tolerances where direction is outbound + const outboundTolerances = conf?.filter(tol => + checkExpr(tol.direction, 'outbound'), + ); + + return { + global: aggregate(sumRequests(requests.inbound, requests.outbound), conf), + inbound: aggregate(requests.inbound, inboundTolerances), + outbound: aggregate(requests.outbound, outboundTolerances), + }; +}; + +export const calculateStatus = ( + requestTolerances: RequestTolerance[], +): { + status: ThresholdStatus; + protocol: string; + toleranceConfig?: ToleranceConfig; +} => { + const result: { + status: ThresholdStatus; + protocol: string; + toleranceConfig?: ToleranceConfig; + } = { + status: { + value: RATIO_NA, + status: NA, + }, + protocol: '', + toleranceConfig: undefined, + }; + + for (const reqTol of Object.values(requestTolerances)) { + for (const [protocol, rate] of Object.entries(reqTol.requests)) { + const tolerance = + reqTol.tolerance && checkExpr(reqTol!.tolerance!.protocol, protocol) + ? reqTol.tolerance + : undefined; + // Calculate the status for the tolerance provided + const auxStatus = getRequestErrorsStatus( + (rate as Rate).errorRatio, + tolerance, + ); + // Check the priority of the status + if (auxStatus.status.priority > result.status.status.priority) { + result.status = auxStatus; + result.protocol = protocol; + result.toleranceConfig = reqTol.tolerance; + } + } + } + return result; +}; + +export const calculateErrorRate = ( + ns: string, + name: string, + kind: string, + requests: RequestHealth, +): { errorRatio: ErrorRatio; config: ToleranceConfig[] } => { + // Get the first configuration that match with the case + const rateAnnotation = new RateHealth(requests.healthAnnotations); + const conf = + rateAnnotation.toleranceConfig || + getRateHealthConfig(ns, name, kind)?.tolerance; + + // Get aggregate + const status = getAggregate(requests, conf); + const globalStatus = calculateStatus(status.global); + + if (globalStatus.status.status !== HEALTHY) { + return { + errorRatio: { + global: globalStatus, + inbound: calculateStatus(status.inbound), + outbound: calculateStatus(status.outbound), + }, + config: conf, + }; + } + const result = { + errorRatio: { + global: globalStatus, + inbound: calculateStatus(status.inbound), + outbound: calculateStatus(status.outbound), + }, + config: conf, + }; + + // IF status is HEALTHY return errorCodes + if ( + result.errorRatio.inbound.status.status === HEALTHY || + result.errorRatio.outbound.status.status === HEALTHY + ) { + const valuesErrorCodes = getErrorCodeRate(requests); + result.errorRatio.inbound.status.value = + result.errorRatio.inbound.status.status === HEALTHY + ? valuesErrorCodes.inbound + : result.errorRatio.inbound.status.value; + result.errorRatio.outbound.status.value = + result.errorRatio.outbound.status.status === HEALTHY + ? valuesErrorCodes.outbound + : result.errorRatio.outbound.status.value; + } + // In that case we want to keep values + return result; +}; diff --git a/workspaces/kiali/plugins/kiali/src/types/ErrorRate/index.ts b/workspaces/kiali/plugins/kiali/src/types/ErrorRate/index.ts new file mode 100644 index 0000000000..bf6a615d7a --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/ErrorRate/index.ts @@ -0,0 +1,34 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { + aggregate, + calculateErrorRate, + calculateStatus, + sumRequests, +} from './ErrorRate'; +import { DEFAULTCONF, getRateHealthConfig } from './utils'; + +export { calculateErrorRate, DEFAULTCONF }; + +/* + +Export for testing + +*/ +export const getRateHealthConfigTEST = getRateHealthConfig; +export const calculateStatusTEST = calculateStatus; +export const aggregateTEST = aggregate; +export const sumRequestsTEST = sumRequests; diff --git a/workspaces/kiali/plugins/kiali/src/types/ErrorRate/types.ts b/workspaces/kiali/plugins/kiali/src/types/ErrorRate/types.ts new file mode 100644 index 0000000000..80b5579bb5 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/ErrorRate/types.ts @@ -0,0 +1,64 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { ThresholdStatus } from '../Health'; +import { ToleranceConfig } from '../ServerConfig'; + +/* +Error Ratio for: + - Global: Inbound and Outbound requests + - Inbound Requests + - Outbound Requests + */ +export interface ErrorRatio { + global: { + status: ThresholdStatus; + protocol?: string; + toleranceConfig?: ToleranceConfig; + }; + inbound: { + status: ThresholdStatus; + protocol?: string; + toleranceConfig?: ToleranceConfig; + }; + outbound: { + status: ThresholdStatus; + protocol?: string; + toleranceConfig?: ToleranceConfig; + }; +} + +/* +Rate Interface: +- The number of requests in t seconds requested by the user +- The number of requests with error code +- The ratio % of errors +*/ + +export interface Rate { + requestRate: number; + errorRate: number; + errorRatio: number; +} + +/* +RequestTolerance interface +- Tolerance configuration applied +- Requests error rate calculation for the tolerance Configuration where key is the protocol +*/ +export interface RequestTolerance { + tolerance: ToleranceConfig; + requests: { [key: string]: Rate | number }; +} diff --git a/workspaces/kiali/plugins/kiali/src/types/ErrorRate/utils.ts b/workspaces/kiali/plugins/kiali/src/types/ErrorRate/utils.ts new file mode 100644 index 0000000000..155de7a2c9 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/ErrorRate/utils.ts @@ -0,0 +1,171 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { serverConfig } from '../../config'; +import { ResponseDetail, Responses } from '../Graph'; +import { RequestHealth, RequestType } from '../Health'; +import { + HealthAnnotationConfig, + HealthAnnotationType, +} from '../HealthAnnotation'; +import { + RateHealthConfig, + RegexConfig, + ToleranceConfig, +} from '../ServerConfig'; +import { generateRateForTolerance } from './ErrorRate'; +import { Rate, RequestTolerance } from './types'; + +export const emptyRate = (): Rate => { + return { requestRate: 0, errorRate: 0, errorRatio: 0 }; +}; + +export const DEFAULTCONF = { + http: new RegExp('^[4|5]\\d\\d$'), + grpc: new RegExp('^[1-9]$|^1[0-6]$'), +}; + +export const requestsErrorRateCode = (requests: RequestType): number => { + const rate: Rate = emptyRate(); + for (const [protocol, req] of Object.entries(requests)) { + for (const [code, value] of Object.entries(req)) { + rate.requestRate += value; + if ( + Object.keys(DEFAULTCONF).includes(protocol) && + (DEFAULTCONF as any)[protocol].test(code) + ) { + rate.errorRate += value; + } + } + } + return rate.requestRate === 0 + ? -1 + : (rate.errorRate / rate.requestRate) * 100; +}; + +export const getHealthRateAnnotation = ( + config?: HealthAnnotationType, +): string | undefined => { + return config && HealthAnnotationConfig.HEALTH_RATE in config + ? config[HealthAnnotationConfig.HEALTH_RATE] + : undefined; +}; + +export const getErrorCodeRate = ( + requests: RequestHealth, +): { inbound: number; outbound: number } => { + return { + inbound: requestsErrorRateCode(requests.inbound), + outbound: requestsErrorRateCode(requests.outbound), + }; +}; + +/* +Cached this method to avoid use regexp in next calculations to improve performance + */ +export const checkExpr = ( + value: RegexConfig | undefined, + testV: string, +): boolean => { + let reg = value; + if (!reg) { + return true; + } + if (typeof value === 'string') { + reg = new RegExp(value); + } + return (reg as RegExp).test(testV); +}; + +// Cache the configuration to avoid multiple calls to regExp +export const configCache: { [key: string]: RateHealthConfig } = {}; + +export const getRateHealthConfig = ( + ns: string, + name: string, + kind: string, +): RateHealthConfig => { + const key = `${ns}_${kind}_${name}`; + // If we have the configuration cached then return it + if (configCache[key]) { + return configCache[key]; + } + if (serverConfig.healthConfig && serverConfig.healthConfig.rate) { + for (const rate of serverConfig.healthConfig.rate) { + if ( + checkExpr(rate.namespace, ns) && + checkExpr(rate.name, name) && + checkExpr(rate.kind, kind) + ) { + configCache[key] = rate; + return rate; + } + } + } + return serverConfig.healthConfig.rate[ + serverConfig.healthConfig.rate.length - 1 + ]; +}; + +/* +For Responses object like { "200": { flags: { "-": 1.2, "XXX": 3.1}, hosts: ...} } Transform to RequestType + +Return object like: {"http": { "200": 4.3}} +*/ +export const transformEdgeResponses = ( + requests: Responses, + protocol: string, +): RequestType => { + const prot: { [key: string]: number } = {}; + const result: RequestType = {}; + result[protocol] = prot; + for (const [code, responseDetail] of Object.entries(requests)) { + const percentRate = Object.values( + (responseDetail as ResponseDetail).flags, + ).reduce((acc, value) => String(Number(acc) + Number(value))); + result[protocol][code] = Number(percentRate); + } + + return result; +}; + +/* + For requests type like { "http": { "200": 3.2, "501": 2.3 } ...} and a Tolerance Configuration to apply calculate the RequestToleranceGraph[] + + Return an array object where each item is a type RequestToleranceGraph by tolerance configuration passed by parameter + + Sample: + + [{ + tolerance: TOLERANCE CONFIGURATION, + requests: {"http": 4.3} + }] + where this requests are the sum of rates where match the tolerance configuration. + +*/ +export const aggregate = ( + request: RequestType, + tolerances?: ToleranceConfig[], +): RequestTolerance[] => { + const result: RequestTolerance[] = []; + if (request && tolerances) { + for (const tol of Object.values(tolerances)) { + const newReqTol: RequestTolerance = { tolerance: tol, requests: {} }; + generateRateForTolerance(newReqTol, request); + result.push(newReqTol); + } + } + return result; +}; diff --git a/workspaces/kiali/plugins/kiali/src/types/Filters.ts b/workspaces/kiali/plugins/kiali/src/types/Filters.ts new file mode 100644 index 0000000000..9199bcadc2 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/Filters.ts @@ -0,0 +1,85 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +export enum TextInputTypes { + text = 'text', + date = 'date', + datetimeLocal = 'datetime-local', + email = 'email', + month = 'month', + number = 'number', + password = 'password', + search = 'search', + tel = 'tel', + time = 'time', + url = 'url', +} + +// FilterValue maps a Patternfly property. Modify with care. +export interface FilterValue { + id: string; + title: string; +} + +export enum NonInputTypes { + typeAhead = 'typeahead', + select = 'select', + label = 'label', + nsLabel = 'nsLabel', +} + +export const AllFilterTypes = { + ...TextInputTypes, + ...NonInputTypes, +}; + +// FilterType maps a Patternfly property. Modify with care. +export interface FilterType { + category: string; // unique filter category name, should be suitable for display or URL query parameter + placeholder: string; + filterType: NonInputTypes | TextInputTypes; + action: string; + filterValues: FilterValue[]; + loader?: () => Promise; +} + +export interface RunnableFilter extends FilterType { + run: (item: T, filters: ActiveFiltersInfo) => boolean; +} + +export const FILTER_ACTION_APPEND = 'append'; +export const FILTER_ACTION_UPDATE = 'update'; + +export interface ActiveFilter { + category: string; + value: string; +} + +export type LabelOperation = 'and' | 'or'; +export const ID_LABEL_OPERATION = 'opLabel'; +export const DEFAULT_LABEL_OPERATION: LabelOperation = 'or'; + +export interface ActiveFiltersInfo { + filters: ActiveFilter[]; + op: LabelOperation; +} + +export interface ToggleType { + label: string; + name: string; + isChecked: boolean; +} + +export type ActiveTogglesInfo = Map; diff --git a/workspaces/kiali/plugins/kiali/src/types/GrafanaInfo.ts b/workspaces/kiali/plugins/kiali/src/types/GrafanaInfo.ts new file mode 100644 index 0000000000..ce77a06f1d --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/GrafanaInfo.ts @@ -0,0 +1,32 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { ExternalLink } from './Dashboards'; + +export const ISTIO_MESH_DASHBOARD = 'Istio Mesh Dashboard'; +export const ISTIO_CONTROL_PLANE_DASHBOARD = 'Istio Control Plane Dashboard'; +export const ISTIO_PERFORMANCE_DASHBOARD = 'Istio Performance Dashboard'; +export const ISTIO_WASM_EXTENSION_DASHBOARD = 'Istio Wasm Extension Dashboard'; + +export const ISTIO_DASHBOARDS: string[] = [ + ISTIO_MESH_DASHBOARD, + ISTIO_CONTROL_PLANE_DASHBOARD, + ISTIO_PERFORMANCE_DASHBOARD, + ISTIO_WASM_EXTENSION_DASHBOARD, +]; + +export interface GrafanaInfo { + externalLinks: ExternalLink[]; +} diff --git a/workspaces/kiali/plugins/kiali/src/types/Graph.ts b/workspaces/kiali/plugins/kiali/src/types/Graph.ts new file mode 100644 index 0000000000..5b6e0b9b0e --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/Graph.ts @@ -0,0 +1,638 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { AppenderString, DurationInSeconds, TimeInSeconds } from './Common'; +import { Health } from './Health'; +import { HealthAnnotationType } from './HealthAnnotation'; +import { Namespace } from './Namespace'; + +export interface Layout { + name: string; +} + +export const SUMMARY_PANEL_CHART_WIDTH = 250; +export type SummaryType = 'graph' | 'node' | 'edge' | 'box'; +export interface SummaryData { + isPF?: boolean; + summaryType: SummaryType; + summaryTarget: any; +} + +export enum Protocol { + GRPC = 'grpc', + HTTP = 'http', + TCP = 'tcp', +} + +export interface SummaryPanelPropType { + data: SummaryData; + duration: DurationInSeconds; + graphType: GraphType; + injectServiceNodes: boolean; + kiosk: string; + namespaces: Namespace[]; + queryTime: TimeInSeconds; + rateInterval: string; + step: number; + trafficRates: TrafficRate[]; +} + +export enum EdgeMode { + ALL = 'all', + NONE = 'none', + UNHEALTHY = 'unhealthy', +} + +export enum EdgeLabelMode { + RESPONSE_TIME_GROUP = 'responseTime', + RESPONSE_TIME_AVERAGE = 'avg', + RESPONSE_TIME_P50 = 'rt50', + RESPONSE_TIME_P95 = 'rt95', + RESPONSE_TIME_P99 = 'rt99', + THROUGHPUT_GROUP = 'throughput', + THROUGHPUT_REQUEST = 'throughputRequest', + THROUGHPUT_RESPONSE = 'throughputResponse', + TRAFFIC_DISTRIBUTION = 'trafficDistribution', + TRAFFIC_RATE = 'trafficRate', +} + +export const isResponseTimeMode = (mode: EdgeLabelMode): boolean => { + return ( + mode === EdgeLabelMode.RESPONSE_TIME_GROUP || + mode === EdgeLabelMode.RESPONSE_TIME_AVERAGE || + mode === EdgeLabelMode.RESPONSE_TIME_P50 || + mode === EdgeLabelMode.RESPONSE_TIME_P95 || + mode === EdgeLabelMode.RESPONSE_TIME_P99 + ); +}; + +export const isThroughputMode = (mode: EdgeLabelMode): boolean => { + return ( + mode === EdgeLabelMode.THROUGHPUT_GROUP || + mode === EdgeLabelMode.THROUGHPUT_REQUEST || + mode === EdgeLabelMode.THROUGHPUT_RESPONSE + ); +}; + +export enum RankMode { + RANK_BY_INBOUND_EDGES = 'inboundEdges', + RANK_BY_OUTBOUND_EDGES = 'outboundEdges', +} + +export type RankResult = { + // Number of discrete rankings, N for the current scoring. N in [0..100]. 0 indicates no active rankings. + upperBound: number; +}; + +export const numLabels = (modes: EdgeLabelMode[]): number => { + return modes.filter( + m => + m !== EdgeLabelMode.RESPONSE_TIME_GROUP && + m !== EdgeLabelMode.THROUGHPUT_GROUP, + ).length; +}; + +export enum TrafficRate { + GRPC_GROUP = 'grpc', + GRPC_RECEIVED = 'grpcReceived', // response_messages + GRPC_REQUEST = 'grpcRequest', + GRPC_SENT = 'grpcSent', // request_messages + GRPC_TOTAL = 'grpcTotal', // sent_bytes + received_bytes + HTTP_GROUP = 'http', + HTTP_REQUEST = 'httpRequest', + TCP_GROUP = 'tcp', + TCP_RECEIVED = 'tcpReceived', // received_bytes + TCP_SENT = 'tcpSent', // sent_bytes + TCP_TOTAL = 'tcpTotal', // sent_bytes + received_bytes +} + +export const DefaultTrafficRates: TrafficRate[] = [ + TrafficRate.GRPC_GROUP, + TrafficRate.GRPC_REQUEST, + TrafficRate.HTTP_GROUP, + TrafficRate.HTTP_REQUEST, + TrafficRate.TCP_GROUP, + TrafficRate.TCP_SENT, +]; + +export const isGrpcRate = (rate: TrafficRate): boolean => { + return ( + rate === TrafficRate.GRPC_GROUP || + rate === TrafficRate.GRPC_RECEIVED || + rate === TrafficRate.GRPC_REQUEST || + rate === TrafficRate.GRPC_SENT || + rate === TrafficRate.GRPC_TOTAL + ); +}; + +export const toGrpcRate = (rate: string): TrafficRate | undefined => { + switch (rate) { + case 'received': + return TrafficRate.GRPC_RECEIVED; + case 'requests': + case 'request': + return TrafficRate.GRPC_REQUEST; + case 'sent': + return TrafficRate.GRPC_SENT; + case 'total': + return TrafficRate.GRPC_TOTAL; + default: + return undefined; + } +}; + +export const isHttpRate = (rate: TrafficRate): boolean => { + return rate === TrafficRate.HTTP_GROUP || rate === TrafficRate.HTTP_REQUEST; +}; + +export const toHttpRate = (rate: string): TrafficRate | undefined => { + switch (rate) { + case 'requests': + case 'request': + return TrafficRate.HTTP_REQUEST; + default: + return undefined; + } +}; + +export const isTcpRate = (rate: TrafficRate): boolean => { + return ( + rate === TrafficRate.TCP_GROUP || + rate === TrafficRate.TCP_RECEIVED || + rate === TrafficRate.TCP_SENT || + rate === TrafficRate.TCP_TOTAL + ); +}; + +export const toTcpRate = (rate: string): TrafficRate | undefined => { + switch (rate) { + case 'received': + return TrafficRate.TCP_RECEIVED; + case 'sent': + return TrafficRate.TCP_SENT; + case 'total': + return TrafficRate.TCP_TOTAL; + default: + return undefined; + } +}; + +export enum GraphType { + APP = 'app', + SERVICE = 'service', + VERSIONED_APP = 'versionedApp', + WORKLOAD = 'workload', +} + +export enum BoxByType { + APP = 'app', + CLUSTER = 'cluster', + NAMESPACE = 'namespace', +} + +export enum NodeType { + AGGREGATE = 'aggregate', + APP = 'app', + BOX = 'box', + SERVICE = 'service', + UNKNOWN = 'unknown', + WORKLOAD = 'workload', +} + +export const CLUSTER_DEFAULT = 'Kubernetes'; // Istio default cluster, typically indicates a single-cluster env +export const UNKNOWN = 'unknown'; + +export interface NodeParamsType { + aggregate?: string; + aggregateValue?: string; + app: string; + namespace: Namespace; + nodeType: NodeType; + service: string; + version?: string; + workload: string; + cluster?: string; +} + +// This data is stored in the _global scratch area in the cy graph +// for use by code that needs access to it. +// We can add more props to this scratch data as the need arises. +export const CytoscapeGlobalScratchNamespace = '_global'; +export type CytoscapeGlobalScratchData = { + activeNamespaces: Namespace[]; + edgeLabels: EdgeLabelMode[]; + forceLabels: boolean; + graphType: GraphType; + homeCluster: string; + showOutOfMesh: boolean; + showSecurity: boolean; + showVirtualServices: boolean; + trafficRates: TrafficRate[]; +}; + +export interface CytoscapeBaseEvent { + summaryType: SummaryType; // what the summary panel should show + summaryTarget: any; // the cytoscape element that was the target of the event +} + +export interface GraphEvent extends CytoscapeBaseEvent { + isPF?: boolean; +} + +// Graph Structures + +type PercentageOfTrafficByFlag = { + [flag: string]: string; +}; + +type PercentageOfTrafficByHost = { + [host: string]: string; +}; + +export type ResponseDetail = { + flags: PercentageOfTrafficByFlag; + hosts: PercentageOfTrafficByHost; +}; + +export type Responses = { + [responseCode: string]: ResponseDetail; +}; + +type ValidProtocols = 'http' | 'grpc' | 'tcp'; + +export type ProtocolNoTraffic = { + protocol: ValidProtocols; +}; + +export type ProtocolTrafficHttp = { + protocol: 'http'; + rates: { + http: string; + httpPercentErr?: string; + }; + responses: Responses; +}; + +export type ProtocolTrafficGrpc = { + protocol: 'grpc'; + rates: { + grpc: string; + grpcPercentErr?: string; + }; + responses: Responses; +}; + +export type ProtocolTrafficTcp = { + protocol: 'tcp'; + rates: { + tcp: string; + }; + responses: Responses; +}; + +export type ProtocolWithTraffic = + | ProtocolTrafficHttp + | ProtocolTrafficTcp + | ProtocolTrafficGrpc; +export type ProtocolTraffic = ProtocolWithTraffic | ProtocolNoTraffic; + +export const hasProtocolTraffic = ( + protocolTraffic: ProtocolTraffic, +): protocolTraffic is ProtocolWithTraffic => { + return ( + (protocolTraffic as ProtocolWithTraffic).rates !== undefined && + (protocolTraffic as ProtocolWithTraffic).responses !== undefined + ); +}; + +export const prettyProtocol = (protocol: ValidProtocols): string => { + switch (protocol.toLocaleLowerCase('en-US')) { + case 'http': + return 'HTTP'; + case 'tcp': + return 'TCP'; + default: + return 'gRPC'; + } +}; + +export interface DestService { + cluster: string; + namespace: string; + name: string; +} + +export interface DestService { + cluster: string; + namespace: string; + name: string; +} + +export interface SEInfo { + hosts: string[]; + location: string; + namespace: string; // namespace represents where the ServiceEntry object is defined and not necessarily the namespace of the node. +} + +export interface WEInfo { + name: string; +} + +export interface GraphRequestsHealth { + inbound: { [idx: string]: { [idx: string]: number } }; + outbound: { [idx: string]: { [idx: string]: number } }; + healthAnnotations: { [idx: string]: string }; +} + +export interface GraphWorkloadStatus { + name: string; + desiredReplicas: number; + currentReplicas: number; + availableReplicas: number; + syncedProxies: number; +} + +export interface GraphNodeAppHealth { + workloadStatuses: GraphWorkloadStatus[]; + requests: GraphRequestsHealth; +} + +export interface GraphNodeWorkloadHealth { + workloadStatus: GraphWorkloadStatus; + requests: GraphRequestsHealth; +} + +export interface GraphNodeServiceHealth { + requests: GraphRequestsHealth; +} + +export type GraphNodeHealthData = + | GraphNodeAppHealth + | GraphNodeWorkloadHealth + | GraphNodeServiceHealth + | [] + | null; + +// Node data expected from server +export interface GraphNodeData { + // required + cluster: string; + id: string; + namespace: string; + nodeType: NodeType; + + // optional + aggregate?: string; + aggregateValue?: string; + app?: string; + destServices?: DestService[]; + hasCB?: boolean; + hasFaultInjection?: boolean; + hasHealthConfig?: HealthAnnotationType; + hasMirroring?: boolean; + hasRequestRouting?: boolean; + hasRequestTimeout?: boolean; + hasTCPTrafficShifting?: boolean; + hasTrafficShifting?: boolean; + hasVS?: { + hostnames?: string[]; + }; + hasWorkloadEntry?: WEInfo[]; + healthData?: GraphNodeHealthData; + isBox?: string; + isDead?: boolean; + isIdle?: boolean; + isInaccessible?: boolean; + isGateway?: { + ingressInfo?: { + hostnames?: string[]; + }; + egressInfo?: { + hostnames?: string[]; + }; + gatewayAPIInfo?: { + hostnames?: string[]; + }; + }; + isK8sGatewayAPI?: boolean; + isMisconfigured?: string; + isOutOfMesh?: boolean; + isOutside?: boolean; + isRoot?: boolean; + isServiceEntry?: SEInfo; + labels?: { [key: string]: string }; + parent?: string; + service?: string; + traffic?: ProtocolTraffic[]; + version?: string; + workload?: string; +} + +// Edge data expected from server +export interface GraphEdgeData { + id: string; + source: string; + target: string; + destPrincipal?: string; + responseTime?: number; + sourcePrincipal?: string; + traffic?: ProtocolTraffic; + isMTLS?: number; +} + +export interface GraphElementsQuery { + appenders?: AppenderString; + boxBy?: string; + duration?: string; + graphType?: GraphType; + includeIdleEdges?: boolean; + injectServiceNodes?: boolean; + namespaces?: string; + queryTime?: string; + rateGrpc?: string; + rateHttp?: string; + rateTcp?: string; + responseTime?: string; + throughputType?: string; + waypoints?: boolean; +} + +export interface GraphNodeWrapper { + data: GraphNodeData; +} + +export interface GraphEdgeWrapper { + data: GraphEdgeData; +} + +export interface GraphElements { + nodes?: GraphNodeWrapper[]; + edges?: GraphEdgeWrapper[]; +} + +export interface GraphDefinition { + duration: number; + elements: GraphElements; + graphType: GraphType; + timestamp: number; +} + +// Node data after decorating at fetch-time (what is mainly used by ui code) +export interface DecoratedGraphNodeData extends GraphNodeData { + grpcIn: number; + grpcInErr: number; + grpcInNoResponse: number; + grpcOut: number; + health: Health; + healthStatus: string; // status name + httpIn: number; + httpIn3xx: number; + httpIn4xx: number; + httpIn5xx: number; + httpInNoResponse: number; + httpOut: number; + tcpIn: number; + tcpOut: number; + + traffic: never; + + // computed values... + + // true if has istio namespace + isIstio?: boolean; + // assigned when node ranking is enabled. relative importance from most to least important [1..100]. Multiple nodes can have same rank. + rank?: number; +} + +// Edge data after decorating at fetch-time (what is mainly used by ui code) +export interface DecoratedGraphEdgeData extends GraphEdgeData { + grpc: number; + grpcErr: number; + grpcNoResponse: number; + grpcPercentErr: number; + grpcPercentReq: number; + http: number; + http3xx: number; + http4xx: number; + http5xx: number; + httpNoResponse: number; + httpPercentErr: number; + httpPercentReq: number; + protocol: ValidProtocols; + responses: Responses; + tcp: number; + + // During the decoration process, we make non-optional some number attributes (giving them a default value) + // computed, true if traffic rate > 0 + hasTraffic?: boolean; + // Default value -1 + isMTLS: number; + // Default value NaN + responseTime: number; + // Default value NaN + throughput: number; + + // computed values... + + // assigned when graph is updated, the edge health depends on the node health, traffic, and config + healthStatus?: string; // status name +} + +export interface DecoratedGraphNodeWrapper { + data: DecoratedGraphNodeData; +} + +export interface DecoratedGraphEdgeWrapper { + data: DecoratedGraphEdgeData; +} + +export interface DecoratedGraphElements { + nodes?: DecoratedGraphNodeWrapper[]; + edges?: DecoratedGraphEdgeWrapper[]; +} + +export const EdgeAttr = { + destPrincipal: 'destPrincipal', + grpc: 'grpc', + grpcErr: 'grpcErr', + grpcNoResponse: 'grpcNoResponse', + grpcPercentErr: 'grpcPercentErr', + grpcPercentReq: 'grpcPercentReq', + hasTraffic: 'hasTraffic', + healthStatus: 'healthStatus', + http: 'http', + http3xx: 'http3xx', + http4xx: 'http4xx', + http5xx: 'http5xx', + httpNoResponse: 'httpNoResponse', + httpPercentErr: 'httpPercentErr', + httpPercentReq: 'httpPercentReq', + id: 'id', + isMTLS: 'isMTLS', + protocol: 'protocol', + responses: 'responses', + responseTime: 'responseTime', + sourcePrincipal: 'sourcePrincipal', + tcp: 'tcp', + throughput: 'throughput', +}; + +export const NodeAttr = { + aggregate: 'aggregate', + aggregateValue: 'aggregateValue', + app: 'app', + cluster: 'cluster', + destServices: 'destServices', + grpcIn: 'grpcIn', + grpcInErr: 'grpcInErr', + grpcInNoResponse: 'grpcInNoResponse', + grpcOut: 'grpcOut', + hasCB: 'hasCB', + hasFaultInjection: 'hasFaultInjection', + hasMirroring: 'hasMirroring', + hasRequestRouting: 'hasRequestRouting', + hasRequestTimeout: 'hasRequestTimeout', + hasTCPTrafficShifting: 'hasTCPTrafficShifting', + hasTrafficShifting: 'hasTrafficShifting', + hasVS: 'hasVS', + hasWorkloadEntry: 'hasWorkloadEntry', + health: 'health', + healthStatus: 'healthStatus', + httpIn: 'httpIn', + httpIn3xx: 'httpIn3xx', + httpIn4xx: 'httpIn4xx', + httpIn5xx: 'httpIn5xx', + httpInNoResponse: 'httpInNoResponse', + httpOut: 'httpOut', + id: 'id', + isBox: 'isBox', + isDead: 'isDead', + isIdle: 'isIdle', + isInaccessible: 'isInaccessible', + isIstio: 'isIstio', + isMisconfigured: 'isMisconfigured', + isOutOfMesh: 'isOutOfMesh', + isOutside: 'isOutside', + isRoot: 'isRoot', + isServiceEntry: 'isServiceEntry', + namespace: 'namespace', + nodeType: 'nodeType', + rank: 'rank', + service: 'service', + tcpIn: 'tcpIn', + tcpOut: 'tcpOut', + version: 'version', + workload: 'workload', +}; diff --git a/workspaces/kiali/plugins/kiali/src/types/Health.ts b/workspaces/kiali/plugins/kiali/src/types/Health.ts new file mode 100644 index 0000000000..a0a515bc51 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/Health.ts @@ -0,0 +1,662 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { + CheckCircleIcon, + ExclamationCircleIcon, + ExclamationTriangleIcon, + MinusCircleIcon, + UnknownIcon, +} from '@patternfly/react-icons'; +import { SVGIconProps } from '@patternfly/react-icons/dist/js/createIcon'; + +import { PFColors } from '../components/Pf/PfColors'; +import { serverConfig } from '../config'; +import { getName } from '../utils/RateIntervals'; +import { calculateErrorRate } from './ErrorRate'; +import { HealthAnnotationType } from './HealthAnnotation'; +import { ToleranceConfig } from './ServerConfig'; + +interface HealthConfig { + items: HealthItem[]; + statusConfig?: HealthItemConfig; +} + +export interface HealthItem { + status: Status; + title: string; + text?: string; + children?: HealthSubItem[]; +} + +export interface HealthItemConfig { + status: Status; + title: string; + text?: string; + value: number; + threshold?: ToleranceConfig; +} + +export interface HealthSubItem { + status: Status; + text: string; + value?: number; +} + +export interface WorkloadStatus { + name: string; + desiredReplicas: number; + currentReplicas: number; + availableReplicas: number; + syncedProxies: number; +} + +export interface AppHealthResponse { + workloadStatuses: WorkloadStatus[]; + requests: RequestHealth; +} + +export interface WorkloadHealthResponse { + workloadStatus: WorkloadStatus; + requests: RequestHealth; +} + +export const TRAFFICSTATUS = 'Traffic Status'; + +const createTrafficTitle = (time: string) => { + return `${TRAFFICSTATUS} (Last ${time})`; +}; + +/* +RequestType interface +- where the structure is type {: {:value ...} ...} + +Example: { "http": {"200": 2, "404": 1 ...} ... } +*/ +export interface RequestType { + [key: string]: { [key: string]: number }; +} +export interface RequestHealth { + inbound: RequestType; + outbound: RequestType; + healthAnnotations: HealthAnnotationType; +} + +export interface Status { + name: string; + color: string; + priority: number; + icon: React.ComponentClass; + class: string; +} + +export interface ProxyStatus { + CDS: string; + EDS: string; + LDS: string; + RDS: string; +} + +export const FAILURE: Status = { + name: 'Failure', + color: PFColors.Danger, + priority: 4, + icon: ExclamationCircleIcon, + class: 'icon-failure', +}; +export const DEGRADED: Status = { + name: 'Degraded', + color: PFColors.Warning, + priority: 3, + icon: ExclamationTriangleIcon, + class: 'icon-degraded', +}; +export const NOT_READY: Status = { + name: 'Not Ready', + color: PFColors.InfoBackground, + priority: 2, + icon: MinusCircleIcon, + class: 'icon-idle', +}; +export const HEALTHY: Status = { + name: 'Healthy', + color: PFColors.Success, + priority: 1, + icon: CheckCircleIcon, + class: 'icon-healthy', +}; +export const NA: Status = { + name: 'No health information', + color: PFColors.Color200, + priority: 0, + icon: UnknownIcon, + class: 'icon-na', +}; + +interface Thresholds { + degraded: number; + failure: number; + unit: string; +} + +export interface ThresholdStatus { + value: number; + status: Status; + violation?: string; +} + +export const POD_STATUS = 'Pod Status'; + +// Use -1 rather than NaN to allow straigthforward comparison +export const RATIO_NA = -1; + +export const ratioCheck = ( + availableReplicas: number, + currentReplicas: number, + desiredReplicas: number, + syncedProxies: number, +): Status => { + /* + NOT READY STATE + */ + // User has scaled down a workload, then desired replicas will be 0 and it's not an error condition + if (desiredReplicas === 0) { + return NOT_READY; + } + + /* + DEGRADED STATE + */ + // When a workload has available pods but less than desired defined by user it should be marked as degraded + if ( + desiredReplicas > 0 && + currentReplicas > 0 && + availableReplicas > 0 && + (currentReplicas < desiredReplicas || availableReplicas < desiredReplicas) + ) { + return DEGRADED; + } + + /* + FAILURE STATE + */ + // When availableReplicas is 0 but user has marked a desired > 0, that's an error condition + if (desiredReplicas > 0 && availableReplicas === 0) { + return FAILURE; + } + + // Pending Pods means problems + if ( + desiredReplicas === availableReplicas && + availableReplicas !== currentReplicas + ) { + return FAILURE; + } + + // When there are proxies that are not sync, degrade + if (syncedProxies >= 0 && syncedProxies < desiredReplicas) { + return DEGRADED; + } + + /* + HEALTHY STATE + */ + if ( + desiredReplicas === currentReplicas && + currentReplicas === availableReplicas && + availableReplicas === desiredReplicas + ) { + return HEALTHY; + } + + // Other combination could mean a degraded situation + return DEGRADED; +}; + +export const proxyStatusMessage = ( + syncedProxies: number, + desiredReplicas: number, +): string => { + if (syncedProxies < desiredReplicas) { + const unsynced = desiredReplicas - syncedProxies; + return ` (${unsynced}${unsynced !== 1 ? ' proxies' : ' proxy'} unsynced)`; + } + return ''; +}; + +export const isProxyStatusComponentSynced = ( + componentStatus: string, +): boolean => { + return componentStatus === 'Synced'; +}; + +export const isProxyStatusSynced = (status: ProxyStatus): boolean => { + return ( + isProxyStatusComponentSynced(status.CDS) && + isProxyStatusComponentSynced(status.EDS) && + isProxyStatusComponentSynced(status.LDS) && + isProxyStatusComponentSynced(status.RDS) + ); +}; + +export const mergeStatus = (s1: Status, s2: Status): Status => { + return s1.priority > s2.priority ? s1 : s2; +}; + +export const ascendingThresholdCheck = ( + value: number, + thresholds: Thresholds, +): ThresholdStatus => { + if (value > 0) { + if (value >= thresholds.failure) { + return { + value: value, + status: FAILURE, + violation: `${value.toFixed(2)}${thresholds.unit}>=${ + thresholds.failure + }${thresholds.unit}`, + }; + } else if (value >= thresholds.degraded) { + return { + value: value, + status: DEGRADED, + violation: `${value.toFixed(2)}${thresholds.unit}>=${ + thresholds.degraded + }${thresholds.unit}`, + }; + } + } + + return { value: value, status: HEALTHY }; +}; + +export const getRequestErrorsStatus = ( + ratio: number, + tolerance?: ToleranceConfig, +): ThresholdStatus => { + if (tolerance && ratio >= 0) { + const thresholds = { + degraded: tolerance.degraded, + failure: tolerance.failure, + unit: '%', + }; + return ascendingThresholdCheck(100 * ratio, thresholds); + } + + return { + value: RATIO_NA, + status: NA, + }; +}; + +export const getRequestErrorsSubItem = ( + thresholdStatus: ThresholdStatus, + prefix: string, +): HealthSubItem => { + return { + status: thresholdStatus.status, + text: `${prefix}:${ + thresholdStatus.status === NA + ? 'No requests' + : `${thresholdStatus.value.toFixed(2)}%` + }`, + value: thresholdStatus.status === NA ? 0 : thresholdStatus.value, + }; +}; + +export abstract class Health { + constructor(public health: HealthConfig) {} + + getGlobalStatus(): Status { + return this.health.items + .map(i => i.status) + .reduce((prev, cur) => mergeStatus(prev, cur), NA); + } + + getStatusConfig(): ToleranceConfig | undefined { + // Check if the config applied is the kiali defaults one + const tolConfDefault = + serverConfig.healthConfig.rate[serverConfig.healthConfig.rate.length - 1] + ?.tolerance; + if (tolConfDefault) { + for (const tol of tolConfDefault) { + // Check if the tolerance applied is one of kiali defaults + if ( + this.health.statusConfig && + tol === this.health.statusConfig.threshold + ) { + // In the case is a kiali's default return undefined + return undefined; + } + } + } + // Otherwise return the threshold configuration that kiali used to calculate the status + return this.health.statusConfig?.threshold; + } + + getTrafficStatus(): HealthItem | undefined { + for (let i = 0; i < this.health.items.length; i++) { + const item = this.health.items[i]; + if (item.title.startsWith(TRAFFICSTATUS)) { + return item; + } + } + return undefined; + } + + getWorkloadStatus(): HealthItem | undefined { + for (let i = 0; i < this.health.items.length; i++) { + const item = this.health.items[i]; + if (item.title.startsWith(POD_STATUS)) { + return item; + } + } + return undefined; + } +} + +interface HealthContext { + rateInterval: number; + hasSidecar: boolean; + hasAmbient: boolean; +} + +export class ServiceHealth extends Health { + public static fromJson = ( + ns: string, + srv: string, + json: any, + ctx: HealthContext, + ) => new ServiceHealth(ns, srv, json.requests, ctx); + + private static computeItems( + ns: string, + srv: string, + requests: RequestHealth, + ctx: HealthContext, + ): HealthConfig { + const items: HealthItem[] = []; + let statusConfig: HealthItemConfig | undefined = undefined; + if (ctx.hasSidecar) { + // Request errors + const reqError = calculateErrorRate(ns, srv, 'service', requests); + const reqErrorsText = + reqError.errorRatio.global.status.status === NA + ? 'No requests' + : `${reqError.errorRatio.global.status.value.toFixed(2)}%`; + const item: HealthItem = { + title: createTrafficTitle( + getName(ctx.rateInterval).toLocaleLowerCase('en-US'), + ), + status: reqError.errorRatio.global.status.status, + children: [ + { + text: `Inbound: ${reqErrorsText}`, + status: reqError.errorRatio.global.status.status, + value: reqError.errorRatio.global.status.value, + }, + ], + }; + items.push(item); + statusConfig = { + title: createTrafficTitle( + getName(ctx.rateInterval).toLocaleLowerCase('en-US'), + ), + status: reqError.errorRatio.global.status.status, + threshold: reqError.errorRatio.global.toleranceConfig, + value: reqError.errorRatio.global.status.value, + }; + } else { + items.push({ + title: TRAFFICSTATUS, + status: NA, + text: 'No Istio sidecar', + }); + } + return { items, statusConfig }; + } + + constructor( + ns: string, + srv: string, + public requests: RequestHealth, + ctx: HealthContext, + ) { + super(ServiceHealth.computeItems(ns, srv, requests, ctx)); + } +} + +export class AppHealth extends Health { + public static fromJson = ( + ns: string, + app: string, + json: any, + ctx: HealthContext, + ) => new AppHealth(ns, app, json.workloadStatuses, json.requests, ctx); + + private static computeItems( + ns: string, + app: string, + workloadStatuses: WorkloadStatus[], + requests: RequestHealth, + ctx: HealthContext, + ): HealthConfig { + const items: HealthItem[] = []; + let statusConfig: HealthItemConfig | undefined = undefined; + { + // Pods + const children: HealthSubItem[] = workloadStatuses.map(d => { + const status = ratioCheck( + d.availableReplicas, + d.currentReplicas, + d.desiredReplicas, + d.syncedProxies, + ); + let proxyMessage = ''; + if (d.syncedProxies >= 0) { + proxyMessage = proxyStatusMessage(d.syncedProxies, d.desiredReplicas); + } + return { + text: `${d.name}: ${d.availableReplicas} / ${d.desiredReplicas}${proxyMessage}`, + status: status, + }; + }); + const podsStatus = children + .map(i => i.status) + .reduce((prev, cur) => mergeStatus(prev, cur), NA); + const item: HealthItem = { + title: POD_STATUS, + status: podsStatus, + children: children, + }; + items.push(item); + } + + // Request errors + if (ctx.hasSidecar) { + const reqError = calculateErrorRate(ns, app, 'app', requests); + const reqIn = reqError.errorRatio.inbound.status; + const reqOut = reqError.errorRatio.outbound.status; + const both = mergeStatus(reqIn.status, reqOut.status); + const item: HealthItem = { + title: createTrafficTitle( + getName(ctx.rateInterval).toLocaleLowerCase('en-US'), + ), + status: both, + children: [ + getRequestErrorsSubItem(reqIn, 'Inbound'), + getRequestErrorsSubItem(reqOut, 'Outbound'), + ], + }; + statusConfig = { + title: createTrafficTitle( + getName(ctx.rateInterval).toLocaleLowerCase('en-US'), + ), + status: reqError.errorRatio.global.status.status, + threshold: reqError.errorRatio.global.toleranceConfig, + value: reqError.errorRatio.global.status.value, + }; + items.push(item); + } + return { items, statusConfig }; + } + + constructor( + ns: string, + app: string, + workloadStatuses: WorkloadStatus[], + public requests: RequestHealth, + ctx: HealthContext, + ) { + super(AppHealth.computeItems(ns, app, workloadStatuses, requests, ctx)); + } +} + +export class WorkloadHealth extends Health { + public static fromJson = ( + ns: string, + workload: string, + json: any, + ctx: HealthContext, + ) => + new WorkloadHealth(ns, workload, json.workloadStatus, json.requests, ctx); + + private static computeItems( + ns: string, + workload: string, + workloadStatus: WorkloadStatus, + requests: RequestHealth, + ctx: HealthContext, + ): HealthConfig { + const items: HealthItem[] = []; + let statusConfig: HealthItemConfig | undefined = undefined; + if (workloadStatus) { + // Pods + const podsStatus = ratioCheck( + workloadStatus.availableReplicas, + workloadStatus.currentReplicas, + workloadStatus.desiredReplicas, + workloadStatus.syncedProxies, + ); + const item: HealthItem = { + title: POD_STATUS, + status: podsStatus, + children: [ + { + text: `${workloadStatus.name}: ${workloadStatus.availableReplicas} / ${workloadStatus.desiredReplicas}`, + status: podsStatus, + }, + ], + }; + if (podsStatus !== NA && podsStatus !== HEALTHY) { + item.children = [ + { + status: podsStatus, + text: `${workloadStatus.desiredReplicas} desired pod${ + workloadStatus.desiredReplicas !== 1 ? 's' : '' + }`, + }, + { + status: podsStatus, + text: `${workloadStatus.currentReplicas} current pod${ + workloadStatus.currentReplicas !== 1 ? 's' : '' + }`, + }, + { + status: podsStatus, + text: `${workloadStatus.availableReplicas} available pod${ + workloadStatus.availableReplicas !== 1 ? 's' : '' + }`, + }, + ]; + + if (workloadStatus.syncedProxies >= 0) { + item.children.push({ + status: podsStatus, + text: `${workloadStatus.syncedProxies} synced prox${ + workloadStatus.availableReplicas !== 1 ? 'ies' : 'y' + }`, + }); + } + } + items.push(item); + } + // Request errors + if (ctx.hasSidecar) { + const reqError = calculateErrorRate(ns, workload, 'workload', requests); + const reqIn = reqError.errorRatio.inbound.status; + const reqOut = reqError.errorRatio.outbound.status; + const both = mergeStatus(reqIn.status, reqOut.status); + const item: HealthItem = { + title: createTrafficTitle( + getName(ctx.rateInterval).toLocaleLowerCase('en-US'), + ), + status: both, + children: [ + getRequestErrorsSubItem(reqIn, 'Inbound'), + getRequestErrorsSubItem(reqOut, 'Outbound'), + ], + }; + items.push(item); + + statusConfig = { + title: createTrafficTitle( + getName(ctx.rateInterval).toLocaleLowerCase('en-US'), + ), + status: reqError.errorRatio.global.status.status, + threshold: reqError.errorRatio.global.toleranceConfig, + value: reqError.errorRatio.global.status.value, + }; + } + return { items, statusConfig }; + } + + constructor( + ns: string, + workload: string, + workloadStatus: WorkloadStatus, + public requests: RequestHealth, + ctx: HealthContext, + ) { + super( + WorkloadHealth.computeItems(ns, workload, workloadStatus, requests, ctx), + ); + } +} + +export const healthNotAvailable = (): AppHealth => { + return new AppHealth( + '', + '', + [], + { inbound: {}, outbound: {}, healthAnnotations: {} }, + { rateInterval: 60, hasSidecar: true, hasAmbient: false }, + ); +}; + +export type NamespaceAppHealth = { [app: string]: AppHealth }; +export type NamespaceServiceHealth = { [service: string]: ServiceHealth }; +export type NamespaceWorkloadHealth = { [workload: string]: WorkloadHealth }; + +export type WithAppHealth = T & { health: AppHealth }; +export type WithServiceHealth = T & { health: ServiceHealth }; +export type WithWorkloadHealth = T & { health: WorkloadHealth }; + +export type WithHealth = + | WithAppHealth + | WithServiceHealth + | WithWorkloadHealth; +// @ts-expect-error +export const hasHealth = (val: T): val is WithHealth => !!val.health; diff --git a/workspaces/kiali/plugins/kiali/src/types/HealthAnnotation.ts b/workspaces/kiali/plugins/kiali/src/types/HealthAnnotation.ts new file mode 100644 index 0000000000..b4ad95a4ac --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/HealthAnnotation.ts @@ -0,0 +1,102 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { ToleranceConfig } from './ServerConfig'; + +export enum HealthAnnotationConfig { + HEALTH_RATE = 'health.kiali.io/rate', +} + +/* +Health Annotation +- Map key-value with annotations related with health configuration +*/ +export type HealthAnnotationType = { [key: string]: string }; + +export class HealthAnnotation { + healthAnnotations: HealthAnnotationType; + + constructor(annotations: HealthAnnotationType) { + this.healthAnnotations = annotations; + } +} + +const isNumeric = (val: string): boolean => { + return !isNaN(Number(val)); +}; + +export class RateHealth extends HealthAnnotation { + annotation: string; + isValid: boolean; + toleranceConfig?: ToleranceConfig[]; + + constructor(annotations: HealthAnnotationType) { + super(annotations); + this.annotation = annotations[HealthAnnotationConfig.HEALTH_RATE] || ''; + if (this.annotation && this.annotation.length > 0) { + this.isValid = this.validate(); + this.toleranceConfig = this.isValid + ? this.getToleranceConfig() + : undefined; + } else { + this.isValid = false; + } + } + + validate = () => { + return !this.annotation + .split(';') + .some(annotate => this.isNotValidAnnotation(annotate)); + }; + + getToleranceConfig = (): ToleranceConfig[] => { + const configs: ToleranceConfig[] = []; + if (this.isValid) { + this.annotation.split(';').forEach(annotate => { + const splits = annotate.split(','); + configs.push({ + code: this.convertRegex(splits[0], true), + degraded: Number(splits[1]), + failure: Number(splits[2]), + protocol: this.convertRegex(splits[3]), + direction: this.convertRegex(splits[4]), + }); + }); + } + return configs; + }; + + private convertRegex = (str: string, code: boolean = false): RegExp => { + if (code) { + return new RegExp(str.replace(/x|X/g, '\\d')); + } + return new RegExp(str); + }; + + private isNotValidAnnotation = (annotation: string): boolean => { + const splits = annotation.split(','); + // Be sure annotation type 4xx,10,20,htpp,inbound + if (splits.length !== 5) { + return true; + } + // validate Thresholds are numbers and degraded is lower than failure + if (!(isNumeric(splits[1]) && isNumeric(splits[2]))) { + return true; + } + const degraded = Number(splits[1]); + const failure = Number(splits[2]); + return degraded > failure ? true : false; + }; +} diff --git a/workspaces/kiali/plugins/kiali/src/types/IstioConfigDetails.ts b/workspaces/kiali/plugins/kiali/src/types/IstioConfigDetails.ts new file mode 100644 index 0000000000..7828364cdd --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/IstioConfigDetails.ts @@ -0,0 +1,140 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ + +import { AceOptions } from 'react-ace/types'; + +import { + AuthorizationPolicy, + DestinationRule, + EnvoyFilter, + Gateway, + HelpMessage, + IstioObject, + K8sGateway, + K8sGRPCRoute, + K8sHTTPRoute, + K8sReferenceGrant, + K8sTCPRoute, + K8sTLSRoute, + ObjectValidation, + PeerAuthentication, + References, + RequestAuthentication, + ServiceEntry, + Sidecar, + Telemetry, + VirtualService, + WasmPlugin, + WorkloadEntry, + WorkloadGroup, +} from './IstioObjects'; +import { Namespace } from './Namespace'; +import { ResourcePermissions } from './Permissions'; + +export interface IstioConfigId { + namespace: string; + objectType: string; + object: string; +} + +export interface IstioConfigDetails { + authorizationPolicy: AuthorizationPolicy; + cluster?: string; + destinationRule: DestinationRule; + envoyFilter: EnvoyFilter; + gateway: Gateway; + help?: HelpMessage[]; + k8sGRPCRoute: K8sGRPCRoute; + k8sGateway: K8sGateway; + k8sHTTPRoute: K8sHTTPRoute; + k8sReferenceGrant: K8sReferenceGrant; + k8sTCPRoute: K8sTCPRoute; + k8sTLSRoute: K8sTLSRoute; + namespace: Namespace; + peerAuthentication: PeerAuthentication; + permissions: ResourcePermissions; + references?: References; + requestAuthentication: RequestAuthentication; + serviceEntry: ServiceEntry; + sidecar: Sidecar; + telemetry: Telemetry; + validation: ObjectValidation; + virtualService: VirtualService; + wasmPlugin: WasmPlugin; + workloadEntry: WorkloadEntry; + workloadGroup: WorkloadGroup; +} + +export const aceOptions: AceOptions = { + showPrintMargin: false, + autoScrollEditorIntoView: true, +}; + +export const safeDumpOptions = { + styles: { + '!!null': 'canonical', // dump null as ~ + }, +}; + +export interface ParsedSearch { + type?: string; + name?: string; +} + +export interface IstioPermissions { + [namespace: string]: { + [type: string]: ResourcePermissions; + }; +} + +// Helper function to compare two IstioConfigDetails iterating over its IstioObject children. +// When an IstioObject child has changed (resourceVersion is different) it will return a tuple with +// boolean: true if resourceVersion has changed in newer version +// string: IstioObject child +// string: resourceVersion of newer version +export const compareResourceVersion = ( + oldIstioConfigDetails: IstioConfigDetails, + newIstioConfigDetails: IstioConfigDetails, +): [boolean, string, string] => { + const keys = Object.keys(oldIstioConfigDetails); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + const oldIstioObject = oldIstioConfigDetails[ + key as keyof IstioConfigDetails + ] as IstioObject; + const newIstioObject = newIstioConfigDetails[ + key as keyof IstioConfigDetails + ] as IstioObject; + if ( + oldIstioObject && + newIstioObject && + oldIstioObject.metadata && + newIstioObject.metadata && + oldIstioObject.metadata.resourceVersion && + newIstioObject.metadata.resourceVersion && + oldIstioObject.metadata.resourceVersion !== + newIstioObject.metadata.resourceVersion + ) { + return [true, key, newIstioObject.metadata.resourceVersion]; + } + } + return [false, '', '']; +}; + +export interface IstioConfigDetailsQuery { + help?: boolean; + validate?: boolean; +} diff --git a/workspaces/kiali/plugins/kiali/src/types/IstioConfigList.ts b/workspaces/kiali/plugins/kiali/src/types/IstioConfigList.ts new file mode 100644 index 0000000000..fae5a21577 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/IstioConfigList.ts @@ -0,0 +1,560 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { + AuthorizationPolicy, + DestinationRule, + EnvoyFilter, + Gateway, + K8sGateway, + K8sGRPCRoute, + K8sHTTPRoute, + K8sReferenceGrant, + K8sTCPRoute, + K8sTLSRoute, + ObjectValidation, + PeerAuthentication, + RequestAuthentication, + ServiceEntry, + Sidecar, + Telemetry, + Validations, + VirtualService, + WasmPlugin, + WorkloadEntry, + WorkloadGroup, +} from './IstioObjects'; +import { Namespace } from './Namespace'; +import { ResourcePermissions } from './Permissions'; + +export interface IstioConfigItem { + authorizationPolicy?: AuthorizationPolicy; + cluster?: string; + creationTimestamp?: string; + destinationRule?: DestinationRule; + envoyFilter?: EnvoyFilter; + gateway?: Gateway; + k8sGRPCRoute?: K8sGRPCRoute; + k8sGateway?: K8sGateway; + k8sHTTPRoute?: K8sHTTPRoute; + k8sReferenceGrant?: K8sReferenceGrant; + k8sTCPRoute?: K8sTCPRoute; + k8sTLSRoute?: K8sTLSRoute; + name: string; + namespace: string; + peerAuthentication?: PeerAuthentication; + requestAuthentication?: RequestAuthentication; + resourceVersion?: string; + serviceEntry?: ServiceEntry; + sidecar?: Sidecar; + telemetry?: Telemetry; + type: string; + validation?: ObjectValidation; + virtualService?: VirtualService; + wasmPlugin?: WasmPlugin; + workloadEntry?: WorkloadEntry; + workloadGroup?: WorkloadGroup; +} + +export declare type IstioConfigsMap = { [key: string]: IstioConfigList }; + +export interface IstioConfigList { + namespace: Namespace; + gateways: Gateway[]; + k8sGateways: K8sGateway[]; + k8sHTTPRoutes: K8sHTTPRoute[]; + virtualServices: VirtualService[]; + destinationRules: DestinationRule[]; + serviceEntries: ServiceEntry[]; + workloadEntries: WorkloadEntry[]; + workloadGroups: WorkloadGroup[]; + envoyFilters: EnvoyFilter[]; + authorizationPolicies: AuthorizationPolicy[]; + sidecars: Sidecar[]; + wasmPlugins: WasmPlugin[]; + telemetries: Telemetry[]; + peerAuthentications: PeerAuthentication[]; + requestAuthentications: RequestAuthentication[]; + permissions: { [key: string]: ResourcePermissions }; + validations: Validations; +} + +export interface IstioConfigListQuery { + labelSelector?: string; + objects?: string; + validate?: boolean; + workloadSelector?: string; +} + +export const dicIstioType = { + Sidecar: 'sidecars', + Gateway: 'gateways', + K8sGateway: 'k8sgateways', + K8sHTTPRoute: 'k8shttproutes', + VirtualService: 'virtualservices', + DestinationRule: 'destinationrules', + ServiceEntry: 'serviceentries', + AuthorizationPolicy: 'authorizationpolicies', + PeerAuthentication: 'peerauthentications', + RequestAuthentication: 'requestauthentications', + WorkloadEntry: 'workloadentries', + WorkloadGroup: 'workloadgroups', + EnvoyFilter: 'envoyfilters', + WasmPlugin: 'wasmPlugins', + Telemetry: 'telemetries', + + gateways: 'Gateway', + k8sgateways: 'K8sGateway', + k8shttproutes: 'K8sHTTPRoute', + virtualservices: 'VirtualService', + destinationrules: 'DestinationRule', + serviceentries: 'ServiceEntry', + authorizationpolicies: 'AuthorizationPolicy', + sidecars: 'Sidecar', + peerauthentications: 'PeerAuthentication', + requestauthentications: 'RequestAuthentication', + workloadentries: 'WorkloadEntry', + workloadgroups: 'WorkloadGroup', + envoyfilters: 'EnvoyFilter', + telemetries: 'Telemetry', + wasmplugins: 'WasmPlugin', + + gateway: 'Gateway', + k8sgateway: 'K8sGateway', + k8shttproute: 'K8sHTTPRoute', + virtualservice: 'VirtualService', + destinationrule: 'DestinationRule', + serviceentry: 'ServiceEntry', + authorizationpolicy: 'AuthorizationPolicy', + sidecar: 'Sidecar', + wasmplugin: 'WasmPlugin', + telemetry: 'Telemetry', + peerauthentication: 'PeerAuthentication', + requestauthentication: 'RequestAuthentication', + workloadentry: 'WorkloadEntry', + workloadgroup: 'WorkloadGroup', + envoyfilter: 'EnvoyFilter', +}; + +export function validationKey(name: string, namespace?: string): string { + if (namespace !== undefined) { + return `${name}.${namespace}`; + } + return name; +} + +const includeName = (name: string, names: string[]) => { + for (let i = 0; i < names.length; i++) { + if (name.includes(names[i])) { + return true; + } + } + return false; +}; + +export const filterByName = ( + unfiltered: IstioConfigList, + names: string[], +): IstioConfigList => { + if (names && names.length === 0) { + return unfiltered; + } + return { + namespace: unfiltered.namespace, + gateways: unfiltered.gateways.filter(gw => + includeName(gw.metadata.name, names), + ), + k8sGateways: unfiltered.k8sGateways.filter(gw => + includeName(gw.metadata.name, names), + ), + k8sHTTPRoutes: unfiltered.k8sHTTPRoutes.filter(route => + includeName(route.metadata.name, names), + ), + virtualServices: unfiltered.virtualServices.filter(vs => + includeName(vs.metadata.name, names), + ), + destinationRules: unfiltered.destinationRules.filter(dr => + includeName(dr.metadata.name, names), + ), + serviceEntries: unfiltered.serviceEntries.filter(se => + includeName(se.metadata.name, names), + ), + authorizationPolicies: unfiltered.authorizationPolicies.filter(rc => + includeName(rc.metadata.name, names), + ), + sidecars: unfiltered.sidecars.filter(sc => + includeName(sc.metadata.name, names), + ), + peerAuthentications: unfiltered.peerAuthentications.filter(pa => + includeName(pa.metadata.name, names), + ), + requestAuthentications: unfiltered.requestAuthentications.filter(ra => + includeName(ra.metadata.name, names), + ), + workloadEntries: unfiltered.workloadEntries.filter(we => + includeName(we.metadata.name, names), + ), + workloadGroups: unfiltered.workloadGroups.filter(wg => + includeName(wg.metadata.name, names), + ), + envoyFilters: unfiltered.envoyFilters.filter(ef => + includeName(ef.metadata.name, names), + ), + wasmPlugins: unfiltered.wasmPlugins.filter(wp => + includeName(wp.metadata.name, names), + ), + telemetries: unfiltered.telemetries.filter(tm => + includeName(tm.metadata.name, names), + ), + validations: unfiltered.validations, + permissions: unfiltered.permissions, + }; +}; + +export const filterByConfigValidation = ( + unfiltered: IstioConfigItem[], + configFilters: string[], +): IstioConfigItem[] => { + if (configFilters && configFilters.length === 0) { + return unfiltered; + } + const filtered: IstioConfigItem[] = []; + + const filterByValid = configFilters.indexOf('Valid') > -1; + const filterByNotValid = configFilters.indexOf('Not Valid') > -1; + const filterByNotValidated = configFilters.indexOf('Not Validated') > -1; + const filterByWarning = configFilters.indexOf('Warning') > -1; + if ( + filterByValid && + filterByNotValid && + filterByNotValidated && + filterByWarning + ) { + return unfiltered; + } + + unfiltered.forEach(item => { + if (filterByValid && item.validation && item.validation.valid) { + filtered.push(item); + } + if (filterByNotValid && item.validation && !item.validation.valid) { + filtered.push(item); + } + if (filterByNotValidated && !item.validation) { + filtered.push(item); + } + if ( + filterByWarning && + item.validation && + item.validation.checks.filter(i => i.severity === 'warning').length > 0 + ) { + filtered.push(item); + } + }); + return filtered; +}; + +export const toIstioItems = ( + istioConfigList: IstioConfigList, + cluster?: string, +): IstioConfigItem[] => { + const istioItems: IstioConfigItem[] = []; + + const hasValidations = (type: string, name: string, namespace: string) => + istioConfigList.validations[type] && + istioConfigList.validations[type][validationKey(name, namespace)]; + + const nonItems = ['validations', 'permissions', 'namespace', 'cluster']; + + Object.keys(istioConfigList).forEach(field => { + if (nonItems.indexOf(field) > -1) { + // These items do not belong to the IstioConfigItem[] + return; + } + // @ts-expect-error + const typeNameProto = dicIstioType[field.toLocaleLowerCase('en-US')]; // ex. serviceEntries -> ServiceEntry + const typeName = typeNameProto?.toLocaleLowerCase('en-US'); // ex. ServiceEntry -> serviceentry + const entryName = + typeNameProto?.charAt(0).toLocaleLowerCase('en-US') + + typeNameProto?.slice(1); + // @ts-expect-error + let entries = istioConfigList[field]; + if (entries && !(entries instanceof Array)) { + // VirtualServices, DestinationRules + entries = entries.items; + } + + if (!entries) { + return; + } + // @ts-expect-error + entries.forEach(entry => { + const item = { + namespace: istioConfigList.namespace.name, + cluster: cluster, + type: typeName, + name: entry.metadata.name, + creationTimestamp: entry.metadata.creationTimestamp, + resourceVersion: entry.metadata.resourceVersion, + validation: hasValidations( + typeName, + entry.metadata.name, + entry.metadata.namespace, + ) + ? istioConfigList.validations[typeName][ + validationKey(entry.metadata.name, entry.metadata.namespace) + ] + : undefined, + }; + // @ts-expect-error + item[entryName] = entry; + istioItems.push(item); + }); + }); + + return istioItems; +}; + +export const vsToIstioItems = ( + vss: VirtualService[], + validations: Validations, + cluster?: string, +): IstioConfigItem[] => { + const istioItems: IstioConfigItem[] = []; + const hasValidations = (vKey: string) => + validations.virtualservice && validations.virtualservice[vKey]; + + const typeNameProto = dicIstioType.virtualservices; // ex. serviceEntries -> ServiceEntry + const typeName = typeNameProto.toLocaleLowerCase('en-US'); // ex. ServiceEntry -> serviceentry + const entryName = + typeNameProto.charAt(0).toLocaleLowerCase('en-US') + typeNameProto.slice(1); + + vss.forEach(vs => { + const vKey = validationKey(vs.metadata.name, vs.metadata.namespace); + const item = { + cluster: cluster, + namespace: vs.metadata.namespace || '', + type: typeName, + name: vs.metadata.name, + creationTimestamp: vs.metadata.creationTimestamp, + resourceVersion: vs.metadata.resourceVersion, + validation: hasValidations(vKey) + ? validations.virtualservice[vKey] + : undefined, + }; + // @ts-expect-error + item[entryName] = vs; + istioItems.push(item); + }); + return istioItems; +}; + +export const drToIstioItems = ( + drs: DestinationRule[], + validations: Validations, + cluster?: string, +): IstioConfigItem[] => { + const istioItems: IstioConfigItem[] = []; + const hasValidations = (vKey: string) => + validations.destinationrule && validations.destinationrule[vKey]; + + const typeNameProto = dicIstioType.destinationrules; // ex. serviceEntries -> ServiceEntry + const typeName = typeNameProto.toLocaleLowerCase('en-US'); // ex. ServiceEntry -> serviceentry + const entryName = + typeNameProto.charAt(0).toLocaleLowerCase('en-US') + typeNameProto.slice(1); + + drs.forEach(dr => { + const vKey = validationKey(dr.metadata.name, dr.metadata.namespace); + const item = { + cluster: cluster, + namespace: dr.metadata.namespace || '', + type: typeName, + name: dr.metadata.name, + creationTimestamp: dr.metadata.creationTimestamp, + resourceVersion: dr.metadata.resourceVersion, + validation: hasValidations(vKey) + ? validations.destinationrule[vKey] + : undefined, + }; + // @ts-expect-error + item[entryName] = dr; + istioItems.push(item); + }); + return istioItems; +}; + +export const gwToIstioItems = ( + gws: Gateway[], + vss: VirtualService[], + validations: Validations, + cluster?: string, +): IstioConfigItem[] => { + const istioItems: IstioConfigItem[] = []; + const hasValidations = (vKey: string) => + validations.gateway && validations.gateway[vKey]; + const vsGateways = new Set(); + + const typeNameProto = dicIstioType.gateways; // ex. serviceEntries -> ServiceEntry + const typeName = typeNameProto.toLocaleLowerCase('en-US'); // ex. ServiceEntry -> serviceentry + const entryName = + typeNameProto.charAt(0).toLocaleLowerCase('en-US') + typeNameProto.slice(1); + + vss.forEach(vs => { + vs.spec.gateways?.forEach(vsGatewayName => { + if (vsGatewayName.indexOf('/') < 0) { + vsGateways.add(`${vs.metadata.namespace}/${vsGatewayName}`); + } else { + vsGateways.add(vsGatewayName); + } + }); + }); + + gws.forEach(gw => { + if (vsGateways.has(`${gw.metadata.namespace}/${gw.metadata.name}`)) { + const vKey = validationKey(gw.metadata.name, gw.metadata.namespace); + const item = { + cluster: cluster, + namespace: gw.metadata.namespace || '', + type: typeName, + name: gw.metadata.name, + creationTimestamp: gw.metadata.creationTimestamp, + resourceVersion: gw.metadata.resourceVersion, + validation: hasValidations(vKey) + ? validations.gateway[vKey] + : undefined, + }; + // @ts-expect-error + item[entryName] = gw; + istioItems.push(item); + } + }); + return istioItems; +}; + +export const k8sGwToIstioItems = ( + gws: K8sGateway[], + k8srs: K8sHTTPRoute[], + validations: Validations, + cluster?: string, +): IstioConfigItem[] => { + const istioItems: IstioConfigItem[] = []; + const hasValidations = (vKey: string) => + validations.k8sgateway && validations.k8sgateway[vKey]; + const k8sGateways = new Set(); + + const typeNameProto = dicIstioType.k8sgateways; // ex. serviceEntries -> ServiceEntry + const typeName = typeNameProto.toLocaleLowerCase('en-US'); // ex. ServiceEntry -> serviceentry + const entryName = + typeNameProto.charAt(0).toLocaleLowerCase('en-US') + typeNameProto.slice(1); + + k8srs.forEach(k8sr => { + k8sr.spec.parentRefs?.forEach(parentRef => { + if (!parentRef.namespace) { + k8sGateways.add(`${k8sr.metadata.namespace}/${parentRef.name}`); + } else { + k8sGateways.add(`${parentRef.namespace}/${parentRef.name}`); + } + }); + }); + + gws.forEach(gw => { + if (k8sGateways.has(`${gw.metadata.namespace}/${gw.metadata.name}`)) { + const vKey = validationKey(gw.metadata.name, gw.metadata.namespace); + const item = { + cluster: cluster, + namespace: gw.metadata.namespace || '', + type: typeName, + name: gw.metadata.name, + creationTimestamp: gw.metadata.creationTimestamp, + resourceVersion: gw.metadata.resourceVersion, + validation: hasValidations(vKey) + ? validations.k8sgateway[vKey] + : undefined, + }; + // @ts-expect-error + item[entryName] = gw; + istioItems.push(item); + } + }); + return istioItems; +}; + +export const seToIstioItems = ( + see: ServiceEntry[], + validations: Validations, + cluster?: string, +): IstioConfigItem[] => { + const istioItems: IstioConfigItem[] = []; + const hasValidations = (vKey: string) => + validations.serviceentry && validations.serviceentry[vKey]; + + const typeNameProto = dicIstioType.serviceentries; // ex. serviceEntries -> ServiceEntry + const typeName = typeNameProto.toLocaleLowerCase('en-US'); // ex. ServiceEntry -> serviceentry + const entryName = + typeNameProto.charAt(0).toLocaleLowerCase('en-US') + typeNameProto.slice(1); + + see.forEach(se => { + const vKey = validationKey(se.metadata.name, se.metadata.namespace); + const item = { + cluster: cluster, + namespace: se.metadata.namespace || '', + type: typeName, + name: se.metadata.name, + creationTimestamp: se.metadata.creationTimestamp, + resourceVersion: se.metadata.resourceVersion, + validation: hasValidations(vKey) + ? validations.serviceentry[vKey] + : undefined, + }; + // @ts-expect-error + item[entryName] = se; + istioItems.push(item); + }); + return istioItems; +}; + +export const k8sHTTPRouteToIstioItems = ( + routes: K8sHTTPRoute[], + validations: Validations, + cluster?: string, +): IstioConfigItem[] => { + const istioItems: IstioConfigItem[] = []; + const hasValidations = (vKey: string) => + validations.k8shttproute && validations.k8shttproute[vKey]; + + const typeNameProto = dicIstioType.k8shttproutes; // ex. serviceEntries -> ServiceEntry + const typeName = typeNameProto.toLocaleLowerCase('en-US'); // ex. ServiceEntry -> serviceentry + const entryName = + typeNameProto.charAt(0).toLocaleLowerCase('en-US') + typeNameProto.slice(1); + + routes.forEach(route => { + const vKey = validationKey(route.metadata.name, route.metadata.namespace); + const item = { + cluster: cluster, + namespace: route.metadata.namespace || '', + type: typeName, + name: route.metadata.name, + creationTimestamp: route.metadata.creationTimestamp, + resourceVersion: route.metadata.resourceVersion, + validation: hasValidations(vKey) + ? validations.k8shttproute[vKey] + : undefined, + }; + // @ts-expect-error + item[entryName] = route; + istioItems.push(item); + }); + return istioItems; +}; diff --git a/workspaces/kiali/plugins/kiali/src/types/IstioObjects.ts b/workspaces/kiali/plugins/kiali/src/types/IstioObjects.ts new file mode 100644 index 0000000000..18b3526b4d --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/IstioObjects.ts @@ -0,0 +1,1485 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { + KIALI_RELATED_LABEL, + KIALI_WIZARD_LABEL, +} from '../components/IstioWizards/WizardActions'; +import { PFColorVal } from '../components/Pf/PfColors'; +import { TimeInSeconds } from './Common'; +import { ProxyStatus } from './Health'; +import { Namespace } from './Namespace'; +import { ServicePort } from './ServiceInfo'; + +// Common types + +export interface HelpMessage { + objectField: string; + message: string; +} + +export interface K8sInitializer { + name?: string; +} + +export interface K8sStatus { + status?: string; + message?: string; + reason?: string; +} + +export interface K8sInitializers { + pending?: K8sInitializer[]; + result?: K8sStatus; +} + +export interface K8sMetadata { + name: string; + generateName?: string; + namespace?: string; + selfLink?: string; + uid?: string; + resourceVersion?: string; + generation?: number; + creationTimestamp?: string; + deletionTimestamp?: string; + deletionGracePeriodSeconds?: number; + labels?: { [key: string]: string }; + annotations?: { [key: string]: string }; + ownerReferences?: K8sOwnerReference[]; + initializers?: K8sInitializers[]; + finalizers?: string[]; + clusterName?: string; +} + +export interface IstioObject { + kind?: string; + apiVersion?: string; + metadata: K8sMetadata; + status?: IstioStatus; +} + +export interface IstioStatus { + validationMessages?: ValidationMessage[]; + conditions?: StatusCondition[]; +} + +export interface ValidationMessage { + description?: string; + documentationUrl: string; + level?: string; + type: ValidationMessageType; +} + +export interface StatusCondition { + type: string; + status: boolean; + message: string; +} + +export interface ValidationMessageType { + code: string; +} + +// validations are grouped per 'objectType' first in the first map and 'name' in the inner map +export type Validations = { + [key1: string]: { [key2: string]: ObjectValidation }; +}; + +export enum ValidationTypes { + Error = 'error', + Warning = 'warning', + Correct = 'correct', + Info = 'info', +} + +export const IstioLevelToSeverity = { + UNKNOWN: ValidationTypes.Info, + ERROR: ValidationTypes.Error, + WARNING: ValidationTypes.Warning, + INFO: ValidationTypes.Info, +}; + +export interface ObjectValidation { + name: string; + objectType: string; + valid: boolean; + checks: ObjectCheck[]; + references?: ObjectReference[]; +} + +export interface ObjectCheck { + code?: string; + message: string; + severity: ValidationTypes; + path: string; +} + +export interface ObjectReference { + objectType: string; + name: string; + namespace: string; +} + +export interface PodReference { + name: string; + kind: string; +} + +export interface References { + objectReferences: ObjectReference[]; + serviceReferences: ServiceReference[]; + workloadReferences: WorkloadReference[]; +} + +export interface ServiceReference { + name: string; + namespace: string; +} + +export interface ValidationStatus { + errors: number; + objectCount?: number; + warnings: number; +} + +export interface WorkloadReference { + name: string; + namespace: string; +} + +export interface ContainerInfo { + name: string; + image: string; + isProxy: boolean; + isReady: boolean; +} + +// 1.6 +export interface Port { + number: number; + protocol: string; + name: string; + targetPort?: number; +} + +export interface Pod { + name: string; + annotations?: { [key: string]: string }; + labels?: { [key: string]: string }; + createdAt: string; + createdBy: PodReference[]; + containers?: ContainerInfo[]; + istioContainers?: ContainerInfo[]; + istioInitContainers?: ContainerInfo[]; + serviceAccountName: string; + status: string; + statusMessage?: string; + statusReason?: string; + appLabel: boolean; + versionLabel: boolean; + proxyStatus?: ProxyStatus; +} + +// models Engarde Istio proxy AccessLog +export type AccessLog = { + // Authority is the request authority header %REQ(:AUTHORITY)% + authority: string; + // BytesReceived in response to the request %BYTES_RECEIVED% + bytes_received: string; + // BytesSent as part of the request body %BYTES_SENT% + bytes_sent: string; + // Duration of the request %DURATION% + duration: string; + // ForwardedFor is the X-Forwarded-For header value %REQ(FORWARDED-FOR)% + forwarded_for: string; + // Method is the HTTP method %REQ(:METHOD)% + method: string; + // Protocol can either be HTTP or TCP %PROTOCOL% + protocol: string; + // RequestId is the envoy generated X-REQUEST-ID header "%REQ(X-REQUEST-ID)%" + request_id: string; + // ResponseFlags provide any additional details about the response or connection, if any. %RESPONSE_FLAGS% + response_flags: string; + // StatusCode is the response status code %RESPONSE_CODE% + status_code: string; + // TcpServiceTime is the time the tcp request took + tcp_service_time: string; + // Timestamp is the Start Time %START_TIME% + timestamp: string; + // UpstreamService is the upstream host the request is intended for %UPSTREAM_HOST% + upstream_service: string; + // UpstreamServiceTime is the time taken to reach target host %RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)% + upstream_service_time: string; + // UpstreamCluster is the upstream envoy cluster being reached %UPSTREAM_CLUSTER% + upstream_cluster: string; + // UpstreamLocal is the local address of the upstream connection %UPSTREAM_LOCAL_ADDRESS% + upstream_local: string; + // DownstreamLocal is the local address of the downstream connection %DOWNSTREAM_LOCAL_ADDRESS% + downstream_local: string; + // DownstreamRemote is the remote address of the downstream connection %DOWNSTREAM_REMOTE_ADDRESS% + downstream_remote: string; + // RequestedServer is the String value set on ssl connection socket for Server Name Indication (SNI) %REQUESTED_SERVER_NAME% + requested_server: string; + // RouteName is the name of the VirtualService route which matched this request %ROUTE_NAME% + route_name: string; + // UpstreamFailureReason is the upstream transport failure reason %UPSTREAM_TRANSPORT_FAILURE_REASON% + upstream_failure_reason: string; + // UriParam is the params field of the request path + uri_param: string; + // UriPath is the base request path + uri_path: string; + // UserAgent is the request User Agent field %REQ(USER-AGENT)%" + user_agent: string; + // The following fields are unused/ignored + // + // MixerStatus is the dynamic metadata information for the mixer status %DYNAMIC_METADATA(mixer:status)% + // mixer_status: string; + // OriginalMessage is the original raw log line. + // original_message: string; + // ParseError provides a string value if a parse error occured. + // parse_error: string; +}; + +export type LogEntry = { + accessLog?: AccessLog; + color?: PFColorVal; + message: string; + severity: string; + timestamp: string; + timestampUnix: TimeInSeconds; +}; + +export interface PodLogs { + entries: LogEntry[]; + linesTruncated?: boolean; +} + +export interface PodLogsQuery { + container?: string; + duration?: string; + isProxy?: boolean; + maxLines?: number; + sinceTime?: number; +} + +export interface LogLevelQuery { + level: string; +} + +export interface EnvoyProxyDump { + configDump?: EnvoyConfigDump; + bootstrap?: BootstrapSummary; + clusters?: ClusterSummary[]; + listeners?: ListenerSummary[]; + routes?: RouteSummary[]; +} + +export interface EnvoyConfigDump { + configs: any[]; +} + +export type EnvoySummary = ClusterSummary | RouteSummary | ListenerSummary; + +export interface ClusterSummary { + service_fqdn: Host; + port: number; + subset: string; + direction: string; + type: number; + destination_rule: string; +} + +export interface ListenerSummary { + address: string; + port: number; + match: string; + destination: string; +} + +export interface RouteSummary { + name: string; + domains: Host; + match: string; + virtual_service: string; +} + +export interface BootstrapSummary { + bootstrap: any; +} + +export interface Service { + name: string; + createdAt: string; + resourceVersion: string; + namespace: Namespace; + labels?: { [key: string]: string }; + type: string; + ip: string; + ports?: ServicePort[]; +} + +export interface Host { + service: string; + namespace: string; + cluster?: string; +} + +export interface IstioService { + name?: string; + namespace?: string; + domain?: string; + service?: string; + labels?: { [key: string]: string }; +} + +// 1.6 +export interface L4MatchAttributes { + destinationSubnets?: string[]; + port?: number; + sourceLabels?: { [key: string]: string }; + gateways?: string[]; + sourceName?: string; +} + +// 1.6 +export interface TLSMatchAttributes { + sniHosts: string[]; + destinationSubnets?: string[]; + port?: number; + sourceLabels?: { [key: string]: string }; + gateways?: string[]; + sourceName?: string; +} + +// 1.6 +export interface StringMatch { + exact?: string; + prefix?: string; + regex?: string; +} + +// 1.6 +export interface HeaderOperations { + set?: { [key: string]: string }; + add?: { [key: string]: string }; + remove?: string[]; +} + +// 1.6 +export interface Headers { + request?: HeaderOperations; + response?: HeaderOperations; +} + +// 1.6 +export interface HTTPRouteDestination { + destination: Destination; + weight?: number; + headers?: Headers; +} + +// 1.6 +export interface RouteDestination { + destination: Destination; + weight?: number; +} + +// 1.6 +export interface HTTPRedirect { + uri?: string; + authority?: string; + redirectCode?: number; +} + +// 1.6 +export interface Delegate { + name?: string; + namespace?: string; +} + +// 1.6 +export interface HTTPRewrite { + uri?: string; + authority?: string; +} + +// 1.6 +export interface HTTPRetry { + attempts: number; + perTryTimeout?: string; + retryOn?: string; + retryRemoteLocalities?: boolean; +} + +// 1.6 +export interface HTTPFaultInjection { + delay?: Delay; + abort?: Abort; +} + +// 1.6 +export interface Percent { + value: number; +} + +// 1.6 +export interface Delay { + fixedDelay: string; + percentage?: Percent; +} + +// 1.6 +export interface Abort { + httpStatus: number; + percentage?: Percent; +} + +// 1.6 +export interface CorsPolicy { + allowOrigin?: StringMatch[]; + allowMethods?: string[]; + allowHeaders?: string[]; + exposeHeaders?: string[]; + maxAge?: string; + allowCredentials?: string; +} + +// Destination Rule + +export interface HTTPCookie { + name: string; + path?: string; + ttl: string; +} + +// 1.6 +export interface ConsistentHashLB { + httpHeaderName?: string | null; + httpCookie?: HTTPCookie | null; + useSourceIp?: boolean | null; + httpQueryParameterName?: string | null; + minimumRingSize?: number; +} + +// 1.6 +export interface Distribute { + from?: string; + to?: { [key: string]: number }; +} + +// 1.6 +export interface Failover { + from?: string; + to?: string; +} + +// 1.6 +export interface LocalityLoadBalancerSetting { + distribute?: Distribute[]; + failover?: Failover[]; + enabled?: boolean; +} + +// 1.6 +export interface LoadBalancerSettings { + simple?: string | null; + consistentHash?: ConsistentHashLB | null; + localityLbSetting?: LocalityLoadBalancerSetting | null; +} + +// 1.6 +export interface TcpKeepalive { + probes?: number; + time?: string; + interval?: string; +} + +// 1.6 +export interface ConnectionPoolSettingsTCPSettings { + maxConnections?: number; + connectTimeout?: string; + tcpKeepalive?: TcpKeepalive; +} + +// 1.6 +export interface ConnectionPoolSettingsHTTPSettings { + http1MaxPendingRequests?: number; + http2MaxRequests?: number; + maxRequestsPerConnection?: number; + maxRetries?: number; + idleTimeout?: string; + h2UpgradePolicy?: string; +} + +// 1.6 +export interface ConnectionPoolSettings { + tcp?: ConnectionPoolSettingsTCPSettings; + http?: ConnectionPoolSettingsHTTPSettings; +} + +// 1.6 +export interface OutlierDetection { + consecutiveErrors?: number; + consecutive5xxErrors?: number; + interval?: string; + baseEjectionTime?: string; + maxEjectionPercent?: number; + minHealthPercent?: number; +} + +// 1.6 +export interface ClientTLSSettings { + mode: string; + clientCertificate?: string | null; + privateKey?: string | null; + caCertificates?: string | null; + subjectAltNames?: string[] | null; + sni?: string | null; +} + +// 1.6 +export interface PortTrafficPolicy { + port?: PortSelector; + loadBalancer?: LoadBalancerSettings; + connectionPool?: ConnectionPoolSettings; + outlierDetection?: OutlierDetection; + tls?: ClientTLSSettings; +} + +// 1.6 +export interface TrafficPolicy { + loadBalancer?: LoadBalancerSettings | null; + connectionPool?: ConnectionPoolSettings; + outlierDetection?: OutlierDetection; + tls?: ClientTLSSettings | null; + portLevelSettings?: PortTrafficPolicy[]; +} + +// 1.6 +export interface Subset { + name: string; + labels?: { [key: string]: string }; + trafficPolicy?: TrafficPolicy; +} + +// 1.6 +export interface DestinationRuleSpec { + host?: string; + trafficPolicy?: TrafficPolicy | null; + subsets?: Subset[]; + exportTo?: string[]; +} + +// 1.6 +export interface DestinationRule extends IstioObject { + spec: DestinationRuleSpec; +} + +export class DestinationRuleC implements DestinationRule { + metadata: K8sMetadata = { name: '' }; + spec: DestinationRuleSpec = {}; + + constructor(dr: DestinationRule) { + Object.assign(this, dr); + } + + static fromDrArray(drs: DestinationRule[]) { + return drs.map(item => new DestinationRuleC(item)); + } + + hasPeerAuthentication(): string { + if ( + !!this.metadata && + !!this.metadata.annotations && + this.metadata.annotations[KIALI_RELATED_LABEL] !== undefined + ) { + const anno = this.metadata.annotations[KIALI_RELATED_LABEL]; + const parts = anno.split('/'); + if (parts.length > 1) { + return parts[1]; + } + } + return ''; + } +} + +// Virtual Service + +// 1.6 +export interface PortSelector { + name?: string; + number: number; +} + +// 1.6 +export interface Destination { + host: string; + subset?: string; + port?: PortSelector; +} + +// 1.6 +export interface HTTPMatchRequest { + name?: string; + uri?: StringMatch; + scheme?: StringMatch; + method?: StringMatch; + authority?: StringMatch; + headers?: { [key: string]: StringMatch }; + port?: PortSelector; + sourceLabels?: { [key: string]: string }; + gateways?: string[]; + queryParams?: { [key: string]: StringMatch }; + ignoreUriCase?: boolean; + withoutHeaders?: { [key: string]: StringMatch }; + sourceNamespace?: string; +} + +// 1.6 +export interface HTTPRoute { + name?: string; + match?: HTTPMatchRequest[]; + route?: HTTPRouteDestination[]; + redirect?: HTTPRedirect; + delegate?: Delegate; + rewrite?: HTTPRewrite; + timeout?: string; + retries?: HTTPRetry; + fault?: HTTPFaultInjection; + mirror?: Destination; + mirrorPercentage?: Percent; + corsPolicy?: CorsPolicy; + headers?: Headers; +} + +// 1.6 +export interface TCPRoute { + match?: L4MatchAttributes[]; + route?: RouteDestination[]; +} + +// 1.6 +export interface TLSRoute { + match?: TLSMatchAttributes[]; + route?: RouteDestination[]; +} + +// 1.6 +export interface VirtualServiceSpec { + hosts?: string[]; + gateways?: string[] | null; + http?: HTTPRoute[]; + tls?: TLSRoute[]; + tcp?: TCPRoute[]; + exportTo?: string[] | null; +} + +// 1.6 +export interface VirtualService extends IstioObject { + spec: VirtualServiceSpec; +} + +export function getWizardUpdateLabel( + vs: VirtualService | VirtualService[] | null, + k8sr: K8sHTTPRoute | K8sHTTPRoute[] | null, +) { + let label = getVirtualServiceUpdateLabel(vs); + if (label === '') { + label = getK8sHTTPRouteUpdateLabel(k8sr); + } + return label; +} + +export function getVirtualServiceUpdateLabel( + vs: VirtualService | VirtualService[] | null, +) { + if (!vs) { + return ''; + } + + let virtualService: VirtualService | null = null; + if ('length' in vs) { + if (vs.length === 1) { + virtualService = vs[0]; + } + } else { + virtualService = vs; + } + + if ( + virtualService && + virtualService.metadata.labels && + virtualService.metadata.labels[KIALI_WIZARD_LABEL] + ) { + return virtualService.metadata.labels[KIALI_WIZARD_LABEL]; + } + return ''; +} + +export function getK8sHTTPRouteUpdateLabel( + k8sr: K8sHTTPRoute | K8sHTTPRoute[] | null, +) { + if (!k8sr) { + return ''; + } + + let k8sHTTPRoute: K8sHTTPRoute | null = null; + if ('length' in k8sr) { + if (k8sr.length === 1) { + k8sHTTPRoute = k8sr[0]; + } + } else { + k8sHTTPRoute = k8sr; + } + + if ( + k8sHTTPRoute && + k8sHTTPRoute.metadata.labels && + k8sHTTPRoute.metadata.labels[KIALI_WIZARD_LABEL] + ) { + return k8sHTTPRoute.metadata.labels[KIALI_WIZARD_LABEL]; + } + return ''; +} + +export interface K8sOwnerReference { + apiVersion: string; + kind: string; + name: string; + uid: string; + controller?: boolean; + blockOwnerDeletion?: boolean; +} + +// 1.6 +export interface GatewaySpec { + servers?: Server[]; + selector?: { [key: string]: string }; +} + +// 1.6 +export interface Gateway extends IstioObject { + spec: GatewaySpec; +} + +export function getGatewaysAsList(gws: Gateway[]): string[] { + return gws + .map(gateway => `${gateway.metadata.namespace}/${gateway.metadata.name}`) + .sort((a, b) => a.localeCompare(b)); +} + +export function filterAutogeneratedGateways(gws: Gateway[]): Gateway[] { + return gws.filter( + gateway => !gateway.metadata.name.includes('autogenerated-k8s'), + ); +} + +export function getK8sGatewaysAsList(k8sGws: K8sGateway[]): string[] { + if (k8sGws) { + return k8sGws + .map(gateway => `${gateway.metadata.namespace}/${gateway.metadata.name}`) + .sort((a, b) => a.localeCompare(b)); + } + return []; +} + +// K8s Gateway API https://istio.io/latest/docs/tasks/traffic-management/ingress/gateway-api/ + +export interface Listener { + name: string; + hostname: string; + port: number; + protocol: string; + allowedRoutes: AllowedRoutes; +} + +export interface Address { + type: string; + value: string; +} + +export interface AllowedRoutes { + namespaces: FromNamespaces; +} + +export interface LabelSelector { + matchLabels: { [key: string]: string }; +} + +export interface FromNamespaces { + from: string; + selector: LabelSelector; +} + +export interface ParentRef { + name: string; + namespace: string; +} + +export interface K8sGatewaySpec { + listeners?: Listener[]; + addresses?: Address[]; + gatewayClassName: string; +} + +export interface K8sGateway extends IstioObject { + spec: K8sGatewaySpec; +} + +export interface K8sHTTPRouteSpec { + parentRefs?: ParentRef[]; + hostnames?: string[]; + rules?: K8sRouteRule[]; +} + +export interface K8sRouteRule { + matches?: K8sHTTPRouteMatch[]; + filters?: K8sHTTPRouteFilter[]; + backendRefs?: K8sRouteBackendRef[]; +} + +export interface K8sRouteBackendRef { + name: string; + weight?: number; + port?: number; + namespace?: string; + filters?: K8sHTTPRouteFilter[]; +} + +export interface K8sHTTPRouteFilter { + requestRedirect?: K8sHTTPRouteRequestRedirect; + requestHeaderModifier?: K8sHTTPHeaderFilter; + requestMirror?: K8sHTTPRequestMirrorFilter; + type?: string; +} + +export interface K8sHTTPRequestMirrorFilter { + backendRef?: K8sRouteBackendRef; +} + +export interface K8sHTTPHeaderFilter { + set?: HTTPHeader[]; + add?: HTTPHeader[]; + remove?: string[]; +} + +export interface K8sHTTPRouteRequestRedirect { + scheme?: string; + hostname?: string; + port?: number; + statusCode?: number; +} + +export interface K8sHTTPRouteMatch { + path?: HTTPMatch; + headers?: HTTPMatch[]; + queryParams?: HTTPMatch[]; + method?: string; +} + +export interface HTTPMatch { + type?: string; + name?: string; + value?: string; +} + +export interface K8sHTTPRoute extends IstioObject { + spec: K8sHTTPRouteSpec; +} + +// Sidecar resource https://preliminary.istio.io/docs/reference/config/networking/v1alpha3/sidecar + +// 1.6 +export enum CaptureMode { + DEFAULT = 'DEFAULT', + IPTABLES = 'IPTABLES', + NONE = 'NONE', +} + +// 1.6 +export interface IstioEgressListener { + port?: Port; + bind?: string; + captureMode?: CaptureMode; + hosts: string[]; + localhostServerTls?: ServerTLSSettings; +} + +// 1.6 +export interface IstioIngressListener { + port: Port; + bind?: string; + captureMode?: CaptureMode; + defaultEndpoint: string; + localhostClientTls?: ClientTLSSettings; +} + +// 1.6 +export interface WorkloadSelector { + labels: { [key: string]: string }; +} + +// 1.6 +export interface OutboundTrafficPolicy { + mode?: string; +} + +// 1.6 +export interface Localhost { + clientTls?: ClientTLSSettings; + serverTls?: ServerTLSSettings; +} + +// 1.6 +export interface SidecarSpec { + workloadSelector?: WorkloadSelector; + ingress?: IstioIngressListener[]; + egress?: IstioEgressListener[]; + outboundTrafficPolicy?: OutboundTrafficPolicy; + localhost?: Localhost; +} + +// 1.6 +export interface Sidecar extends IstioObject { + spec: SidecarSpec; +} + +// 1.6 +export interface Server { + port: ServerPort; + hosts: string[]; + tls?: ServerTLSSettings; +} + +export interface ServerForm { + number: string; + protocol: string; + name: string; + hosts: string[]; + tlsMode: string; + tlsServerCertificate: string; + tlsPrivateKey: string; + tlsCaCertificate: string; +} + +// 1.6 +export interface ServerPort { + number: number; + protocol: string; + name: string; +} + +// 1.6 +export interface ServerTLSSettings { + httpsRedirect?: boolean; + mode?: string; + serverCertificate?: string; + privateKey?: string; + caCertificates?: string; + credentialName?: string; + subjectAltNames?: string[]; + verifyCertificateSpki?: string[]; + verifyCertificateHash?: string[]; + minProtocolVersion?: string; + maxProtocolVersion?: string; + cipherSuites?: string[]; +} + +// 1.6 +export interface ServiceEntrySpec { + hosts?: string[]; + addresses?: string[]; + ports?: Port[]; + location?: string; + resolution?: string; + endpoints?: WorkloadEntrySpec[]; + exportTo?: string[]; + subjectAltNames?: string[]; + workloadSelector?: WorkloadSelector; +} + +// 1.6 +export interface ServiceEntry extends IstioObject { + spec: ServiceEntrySpec; +} + +export interface WasmPlugin extends IstioObject { + spec: WasmPluginSpec; +} + +export interface WasmPluginSpec extends IstioObject { + workloadSelector?: WorkloadSelector; + url: string; + pluginName: string; +} + +export interface Telemetry extends IstioObject { + spec: TelemetrySpec; +} + +export interface TelemetrySpec extends IstioObject { + workloadSelector?: WorkloadSelector; +} + +export interface Endpoint { + address: string; + ports: { [key: string]: number }; + labels: { [key: string]: string }; +} + +export interface Match { + clause: { [attributeName: string]: { [matchType: string]: string } }; +} + +export interface TargetSelector { + name: string; + ports?: PortSelector[]; +} + +export enum MutualTlsMode { + STRICT = 'STRICT', + PERMISSIVE = 'PERMISSIVE', +} + +export interface MutualTls { + allowTls: boolean; + mode: MutualTlsMode; +} + +export interface PeerAuthenticationMethod { + mtls: MutualTls; +} + +export interface Jwt { + issuer: string; + audiences: string[]; + jwksUri?: string; + jwtHeaders: string[]; + jwtParams: string[]; +} + +export interface OriginAuthenticationMethod { + jwt: Jwt; +} + +export enum PrincipalBinding { + USE_PEER = 'USE_PEER', + USE_ORIGIN = 'USE_ORIGIN', +} + +export interface AuthorizationPolicy extends IstioObject { + spec: AuthorizationPolicySpec; +} + +export interface AuthorizationPolicyWorkloadSelector { + matchLabels: { [key: string]: string }; +} + +export interface AuthorizationPolicySpec { + selector?: AuthorizationPolicyWorkloadSelector; + rules?: AuthorizationPolicyRule[]; + action?: string; +} + +export interface AuthorizationPolicyRule { + from?: RuleFrom[]; + to?: RuleTo[]; + when?: Condition[]; +} + +export interface RuleFrom { + source: Source; +} + +export interface Source { + principals?: string[]; + notPrincipals?: string[]; + requestPrincipals?: string[]; + notRequestPrincipals?: string[]; + namespaces?: string[]; + notNamespaces?: string[]; + ipBlocks?: string[]; + notIpBlocks?: string[]; +} + +export interface RuleTo { + operation: Operation; +} + +export interface Operation { + hosts?: string[]; + notHosts?: string[]; + ports?: string[]; + notPorts?: string[]; + methods?: string[]; + notMethods?: string[]; + paths?: string[]; + notPaths?: string[]; +} + +export interface Condition { + key: string; + values?: string[]; + notValues?: string[]; +} + +export interface PeerAuthentication extends IstioObject { + spec: PeerAuthenticationSpec; +} + +export interface K8sGRPCRoute extends IstioObject { + spec: K8sGRPCRouteSpec; +} + +export interface K8sReferenceGrant extends IstioObject { + spec: K8sReferenceGrantSpec; +} + +export interface K8sTCPRoute extends IstioObject { + spec: K8sTCPRouteSpec; +} + +export interface K8sTLSRoute extends IstioObject { + spec: K8sTLSRouteSpec; +} + +export interface K8sCommonRouteSpec { + parentRefs?: ParentRef[]; +} + +export interface K8sGRPCRouteSpec extends K8sCommonRouteSpec { + hostnames?: string[]; + rules?: K8sGRPCRouteRule[]; +} + +export interface K8sHTTPRouteSpec extends K8sCommonRouteSpec { + hostnames?: string[]; + rules?: K8sHTTPRouteRule[]; +} + +export interface K8sReferenceGrantSpec { + from?: K8sReferenceRule[]; + to?: K8sReferenceRule[]; +} + +export interface K8sTCPRouteSpec extends K8sCommonRouteSpec { + rules?: K8sTCPRouteRule[]; +} + +export interface K8sTLSRouteSpec extends K8sCommonRouteSpec { + hostnames?: string[]; + rules?: K8sTLSRouteRule[]; +} + +// rest of attributes used by k8s gateway objects +export interface K8sGRPCRouteRule { + backendRefs?: K8sRouteBackendRef[]; + matches?: K8sGRPCRouteMatch[]; +} + +export interface K8sHTTPRouteRule { + backendRefs?: K8sRouteBackendRef[]; + filters?: K8sHTTPRouteFilter[]; + matches?: K8sHTTPRouteMatch[]; +} + +export interface K8sReferenceRule { + group: string; + kind: string; + namespace?: string; +} + +export interface K8sTCPRouteRule { + backendRefs?: K8sRouteBackendRef[]; +} + +export interface K8sTLSRouteRule { + backendRefs?: K8sRouteBackendRef[]; +} + +export interface K8sGRPCHeaderMatch { + name?: string; + type?: string; + value?: string; +} + +export interface K8sGRPCMethodMatch { + method?: string; + service?: string; + type?: string; +} + +export interface K8sGRPCRouteMatch { + headers?: K8sGRPCHeaderMatch[]; + method?: K8sGRPCMethodMatch; +} + +export interface K8sHTTPMatch { + name?: string; + type?: string; + value?: string; +} + +export interface K8sHTTPRouteFilter { + requestHeaderModifier?: K8sHTTPHeaderFilter; + requestMirror?: K8sHTTPRequestMirrorFilter; + requestRedirect?: K8sHTTPRouteRequestRedirect; + type?: string; +} + +export interface K8sHTTPRouteMatch { + headers?: K8sHTTPMatch[]; + method?: string; + path?: K8sHTTPMatch; + queryParams?: K8sHTTPMatch[]; +} + +export interface K8sHTTPRouteRequestRedirect { + hostname?: string; + port?: number; + scheme?: string; + statusCode?: number; +} + +export interface K8sHTTPHeaderFilter { + add?: HTTPHeader[]; + remove?: string[]; + set?: HTTPHeader[]; +} + +export interface K8sHTTPRequestMirrorFilter { + backendRef?: K8sRouteBackendRef; +} + +export interface K8sRouteBackendRef { + filters?: K8sHTTPRouteFilter[]; + name: string; + namespace?: string; + port?: number; + weight?: number; +} + +export interface PeerAuthenticationSpec { + selector?: PeerAuthenticationWorkloadSelector; + mtls?: PeerAuthenticationMutualTls; + portLevelMtls?: { [key: number]: PeerAuthenticationMutualTls }; +} + +export interface PeerAuthenticationWorkloadSelector { + matchLabels: { [key: string]: string }; +} + +export interface PeerAuthenticationMutualTls { + mode: PeerAuthenticationMutualTLSMode; +} + +export enum PeerAuthenticationMutualTLSMode { + UNSET = 'UNSET', + DISABLE = 'DISABLE', + PERMISSIVE = 'PERMISSIVE', + STRICT = 'STRICT', +} + +// 1.6 +export interface WorkloadEntry extends IstioObject { + spec: WorkloadEntrySpec; +} + +export interface WorkloadEntrySpec { + address: string; + ports?: { [key: string]: number }; + labels?: { [key: string]: string }; + network?: string; + locality?: string; + weight?: number; + serviceAccount?: string; +} + +export interface WorkloadGroup extends IstioObject { + spec: WorkloadGroupSpec; +} + +export interface WorkloadGroupSpec { + // Note that WorkloadGroup has a metadata section inside Spec + metadata?: K8sMetadata; + template: WorkloadEntrySpec; + probe?: ReadinessProbe; +} + +export interface ReadinessProbe { + initialDelaySeconds?: number; + timeoutSeconds?: number; + periodSeconds?: number; + successThreshold?: number; + failureThreshold?: number; + httpGet?: HTTPHealthCheckConfig; + tcpSocket?: TCPHealthCheckConfig; + exec?: ExecHealthCheckConfig; +} + +export interface HTTPHealthCheckConfig { + path?: string; + port: number; + host?: string; + scheme?: string; + httpHeaders?: HTTPHeader[]; +} + +export interface HTTPHeader { + name?: string; + value?: string; +} + +export interface TCPHealthCheckConfig { + host?: string; + port: number; +} + +export interface ExecHealthCheckConfig { + command?: string[]; +} + +export interface WorkloadMatchSelector { + matchLabels: { [key: string]: string }; +} + +export interface JWTHeader { + name: string; + prefix?: string; +} + +export interface JWTRule { + issuer?: string; + audiences?: string[]; + jwksUri?: string; + jwks?: string; + fromHeaders?: JWTHeader[]; + fromParams?: string[]; + outputPayloadToHeader?: string; + forwardOriginalToken?: boolean; +} + +// 1.6 +export interface RequestAuthentication extends IstioObject { + spec: RequestAuthenticationSpec; +} + +// 1.6 +export interface RequestAuthenticationSpec { + selector?: WorkloadMatchSelector; + jwtRules: JWTRule[]; +} + +export interface ProxyMatch { + proxyVersion?: string; + metadata?: { [key: string]: string }; +} + +export interface SubFilterMatch { + name?: string; +} + +export interface FilterMatch { + name?: string; + subFilter?: SubFilterMatch; +} + +export interface FilterChainMatch { + name?: string; + sni?: string; + transportProtocol?: string; + applicationProtocols?: string; + filter?: FilterMatch; +} + +export interface ListenerMatch { + portNumber?: number; + filterChain?: FilterChainMatch; +} + +export interface RouteMatch { + name?: string; + action?: string; +} + +export interface VirtualHostMatch { + name?: string; + route?: RouteMatch; +} + +export interface RouteConfigurationMatch { + portNumber?: number; + portName?: string; + gateway?: string; + vhost?: VirtualHostMatch; + name?: string; +} + +export interface ClusterMatch { + portNumber?: number; + service?: string; + subset?: string; + name?: string; +} + +export interface EnvoyConfigObjectMatch { + context?: string; + proxy?: ProxyMatch; + listener?: ListenerMatch; + routeConfiguration?: RouteConfigurationMatch; + cluster?: ClusterMatch; +} + +export interface Patch { + operation?: string; + value?: any; +} + +export interface EnvoyConfigObjectPatch { + applyTo?: string; + match?: EnvoyConfigObjectMatch; + patch?: Patch; +} + +export interface EnvoyFilterSpec { + workloadSelector?: WorkloadSelector; + configPatches: EnvoyConfigObjectPatch[]; +} + +export interface EnvoyFilter extends IstioObject { + spec: EnvoyFilterSpec; +} + +export interface AttributeInfo { + description?: string; + valueType: string; +} + +export interface APIKey { + query?: string; + header?: string; + cookie?: string; +} + +export interface CanaryUpgradeStatus { + currentVersion: string; + upgradeVersion: string; + migratedNamespaces: string[]; + pendingNamespaces: string[]; +} + +export const MAX_PORT = 65535; +export const MIN_PORT = 0; diff --git a/workspaces/kiali/plugins/kiali/src/types/IstioStatus.ts b/workspaces/kiali/plugins/kiali/src/types/IstioStatus.ts new file mode 100644 index 0000000000..2f7b9dc65a --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/IstioStatus.ts @@ -0,0 +1,33 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +export enum Status { + Healthy = 'Healthy', + Unhealthy = 'Unhealthy', + Unreachable = 'Unreachable', + NotFound = 'NotFound', + NotReady = 'NotReady', +} + +export interface ComponentStatus { + name: string; + status: Status; + is_core: boolean; +} + +export interface IstiodResourceThresholds { + memory: number; + cpu: number; +} diff --git a/workspaces/kiali/plugins/kiali/src/types/Mesh.ts b/workspaces/kiali/plugins/kiali/src/types/Mesh.ts new file mode 100644 index 0000000000..7dbaad7ccd --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/Mesh.ts @@ -0,0 +1,33 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +export interface MeshCluster { + apiEndpoint: string; + isKialiHome: boolean; + kialiInstances: KialiInstance[]; + name: string; + network: string; + secretName: string; +} + +export interface KialiInstance { + serviceName: string; + namespace: string; + operatorResource: string; + url: string; + version: string; +} + +export type MeshClusters = MeshCluster[]; diff --git a/workspaces/kiali/plugins/kiali/src/types/MessageCenter.ts b/workspaces/kiali/plugins/kiali/src/types/MessageCenter.ts new file mode 100644 index 0000000000..8dd65024b8 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/MessageCenter.ts @@ -0,0 +1,44 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +export enum MessageType { + ERROR = 'error', + WARNING = 'warning', + SUCCESS = 'success', + INFO = 'info', +} + +export interface NotificationMessage { + id: number; + seen: boolean; + type: MessageType; + content: string; + detail: string; + created: Date; + firstTriggered?: Date; // when was it first triggered + count: number; // how many times did this message occur + + showDetail: boolean; + show_notification: boolean; + groupId?: string; +} + +export interface NotificationGroup { + id: string; + title: string; + messages: NotificationMessage[]; + showActions: boolean; + hideIfEmpty: boolean; +} diff --git a/workspaces/kiali/plugins/kiali/src/types/Metrics.ts b/workspaces/kiali/plugins/kiali/src/types/Metrics.ts new file mode 100644 index 0000000000..61e059571c --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/Metrics.ts @@ -0,0 +1,90 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ + +export type Datapoint = [number, number, number?]; + +export interface Metric { + labels: Labels; + datapoints: Datapoint[]; + name: string; + stat?: string; +} + +export type ControlPlaneMetricsMap = { + istiod_proxy_time?: Metric[]; + istiod_container_cpu?: Metric[]; + istiod_container_mem?: Metric[]; + istiod_process_cpu?: Metric[]; + istiod_process_mem?: Metric[]; +}; + +export type IstioMetricsMap = { + grpc_received?: Metric[]; + grpc_sent?: Metric[]; + request_count?: Metric[]; + request_error_count?: Metric[]; + request_duration_millis?: Metric[]; + request_throughput?: Metric[]; + response_throughput?: Metric[]; + request_size?: Metric[]; + response_size?: Metric[]; + tcp_received?: Metric[]; + tcp_sent?: Metric[]; + pilot_proxy_convergence_time?: Metric[]; + container_cpu_usage_seconds_total?: Metric[]; + container_memory_working_set_bytes?: Metric[]; + process_cpu_seconds_total?: Metric[]; + process_resident_memory_bytes?: Metric[]; +}; + +export enum MetricsObjectTypes { + SERVICE, + WORKLOAD, + APP, +} + +export interface MetricsStatsResult { + stats: MetricsStatsMap; + // Note: warnings here is for non-blocking errors, it's set when some stats are available, but not all, for instance due to inaccessible namespaces + // For more serious errors (e.g. prometheus inaccessible) the query would return an HTTP error + warnings?: string[]; +} + +// Key is built from query params, see StatsComparison.genKey. The same key needs to be generated server-side for matching. +export type MetricsStatsMap = { [key: string]: MetricsStats }; + +export interface MetricsStats { + isCompact: boolean; + responseTimes: Stat[]; +} + +export interface Stat { + name: string; + value: number; +} + +export type LabelDisplayName = string; +export type PromLabel = string; + +// Collection of values for a single label, associated to a show/hide flag +export type SingleLabelValues = { [key: string]: boolean }; + +// Map of all labels (using prometheus name), each with its set of values +export type AllPromLabelsValues = Map; + +export type Labels = { + [key: string]: string; +}; diff --git a/workspaces/kiali/plugins/kiali/src/types/MetricsOptions.ts b/workspaces/kiali/plugins/kiali/src/types/MetricsOptions.ts new file mode 100644 index 0000000000..cd3fc26f23 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/MetricsOptions.ts @@ -0,0 +1,83 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { TargetKind } from './Common'; + +export interface MetricsQuery { + rateInterval?: string; + rateFunc?: string; + queryTime?: number; + duration?: number; + step?: number; + quantiles?: string[]; + avg?: boolean; + byLabels?: string[]; +} + +export interface DashboardQuery extends MetricsQuery { + rawDataAggregator?: Aggregator; + labelsFilters?: string; + additionalLabels?: string; + workload?: string; + workloadType?: string; + cluster?: string; +} + +export type Aggregator = 'sum' | 'avg' | 'min' | 'max' | 'stddev' | 'stdvar'; + +export interface IstioMetricsOptions extends MetricsQuery { + direction: Direction; + filters?: string[]; + requestProtocol?: string; + reporter: Reporter; + clusterName?: string; +} + +export type Reporter = 'source' | 'destination' | 'both'; +export type Direction = 'inbound' | 'outbound'; + +export interface Target { + namespace: string; + name: string; + kind: TargetKind; + cluster?: string; +} + +export interface MetricsStatsQuery { + avg: boolean; + direction: Direction; + interval: string; + peerTarget?: Target; + quantiles: string[]; + queryTime: number; + target: Target; +} +const genTargetKey = (target: Target): string => { + return `${target.namespace}:${target.kind}:${target.name}`; +}; + +// !! genStatsKey HAS to mirror backend's models.MetricsStatsQuery#GenKey in models/metrics.go +export const genStatsKey = ( + target: Target, + peer: Target | undefined, + direction: string, + interval: string, +): string => { + const peerKey = peer ? genTargetKey(peer) : ''; + return `${genTargetKey(target)}:${peerKey}:${direction}:${interval}`; +}; + +export const statsQueryToKey = (q: MetricsStatsQuery) => + genStatsKey(q.target, q.peerTarget, q.direction, q.interval); diff --git a/workspaces/kiali/plugins/kiali/src/types/Namespace.ts b/workspaces/kiali/plugins/kiali/src/types/Namespace.ts new file mode 100644 index 0000000000..147e856052 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/Namespace.ts @@ -0,0 +1,31 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +export interface Namespace { + name: string; + cluster?: string; + isAmbient?: boolean; + labels?: { [key: string]: string }; + annotations?: { [key: string]: string }; +} + +export const namespaceFromString = (namespace: string) => ({ name: namespace }); + +export const namespacesFromString = (namespaces: string) => { + return namespaces.split(',').map(name => namespaceFromString(name)); +}; + +export const namespacesToString = (namespaces: Namespace[]) => + namespaces.map(namespace => namespace.name).join(','); diff --git a/workspaces/kiali/plugins/kiali/src/types/NamespaceInfo.tsx b/workspaces/kiali/plugins/kiali/src/types/NamespaceInfo.tsx new file mode 100644 index 0000000000..d27ade2fc9 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/NamespaceInfo.tsx @@ -0,0 +1,43 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { IstioConfigList } from './IstioConfigList'; +import { ValidationStatus } from './IstioObjects'; +import { ControlPlaneMetricsMap, Metric } from './Metrics'; +import { TLSStatus } from './TLSStatus'; + +export type NamespaceInfo = { + annotations?: { [key: string]: string }; + controlPlaneMetrics?: ControlPlaneMetricsMap; + cluster?: string; + errorMetrics?: Metric[]; + isAmbient?: boolean; + istioConfig?: IstioConfigList; + labels?: { [key: string]: string }; + metrics?: Metric[]; + name: string; + outboundPolicyMode?: string; + status?: NamespaceStatus; + tlsStatus?: TLSStatus; + validations?: ValidationStatus; +}; + +export type NamespaceStatus = { + inError: string[]; + inNotReady: string[]; + inSuccess: string[]; + inWarning: string[]; + notAvailable: string[]; +}; diff --git a/workspaces/kiali/plugins/kiali/src/types/Overlay.ts b/workspaces/kiali/plugins/kiali/src/types/Overlay.ts new file mode 100644 index 0000000000..eada069f9a --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/Overlay.ts @@ -0,0 +1,28 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { LineInfo, VCDataPoint, VCLine } from './VictoryChartInfo'; + +export type OverlayInfo = { + lineInfo: T; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + dataStyle: any; // see "data" in https://formidable.com/open-source/victory/docs/common-props/#style + buckets?: number; +}; + +export type Overlay = { + vcLine: VCLine; + info: OverlayInfo; +}; diff --git a/workspaces/kiali/plugins/kiali/src/types/Permissions.ts b/workspaces/kiali/plugins/kiali/src/types/Permissions.ts new file mode 100644 index 0000000000..5e4e6d25b9 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/Permissions.ts @@ -0,0 +1,38 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { serverConfig } from '../config'; + +export interface ResourcePermissions { + create: boolean; + update: boolean; + delete: boolean; +} + +export function canCreate(privs?: ResourcePermissions) { + return ( + privs !== undefined && privs.create && !serverConfig.deployment.viewOnlyMode + ); +} + +export function canUpdate(privs?: ResourcePermissions) { + return ( + privs !== undefined && privs.update && !serverConfig.deployment.viewOnlyMode + ); +} + +export function canDelete(privs?: ResourcePermissions) { + return privs?.delete && !serverConfig.deployment.viewOnlyMode; +} diff --git a/workspaces/kiali/plugins/kiali/src/types/ServerConfig.ts b/workspaces/kiali/plugins/kiali/src/types/ServerConfig.ts new file mode 100644 index 0000000000..50a11ca8a8 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/ServerConfig.ts @@ -0,0 +1,160 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { DurationInSeconds } from './Common'; +import { MeshCluster } from './Mesh'; + +export type IstioLabelKey = + | 'ambientWaypointLabel' + | 'ambientWaypointLabelValue' + | 'appLabelName' + | 'versionLabelName' + | 'injectionLabelName' + | 'injectionLabelRev'; + +interface DeploymentConfig { + viewOnlyMode: boolean; +} + +interface IstioAnnotations { + ambientAnnotation: string; + ambientAnnotationEnabled: string; + // this could also be the name of the pod label, both label and annotation are supported + istioInjectionAnnotation: string; +} + +interface GraphFindOption { + autoSelect: boolean; + description: string; + expression: string; +} + +interface GraphTraffic { + grpc: string; + http: string; + tcp: string; +} + +interface GraphSettings { + fontLabel: number; + minFontBadge: number; + minFontLabel: number; +} + +interface GraphUIDefaults { + findOptions: GraphFindOption[]; + hideOptions: GraphFindOption[]; + impl: 'both' | 'cy' | 'pf'; + settings: GraphSettings; + traffic: GraphTraffic; +} + +interface ListUIDefaults { + includeHealth: boolean; + includeIstioResources: boolean; + includeValidations: boolean; + showIncludeToggles: boolean; +} + +interface UIDefaults { + graph: GraphUIDefaults; + list: ListUIDefaults; + metricsPerRefresh?: string; + namespaces?: string[]; + refreshInterval?: string; +} + +interface CertificatesInformationIndicators { + enabled: boolean; +} + +interface KialiFeatureFlags { + certificatesInformationIndicators: CertificatesInformationIndicators; + disabledFeatures: string[]; + istioInjectionAction: boolean; + istioAnnotationAction: boolean; + istioUpgradeAction: boolean; + uiDefaults: UIDefaults; +} + +// Not based exactly on Kiali configuration but rather whether things like prometheus config +// allow for certain Kiali features. True means the feature is crippled, false means supported. +export interface KialiCrippledFeatures { + requestSize: boolean; + requestSizeAverage: boolean; + requestSizePercentiles: boolean; + responseSize: boolean; + responseSizeAverage: boolean; + responseSizePercentiles: boolean; + responseTime: boolean; + responseTimeAverage: boolean; + responseTimePercentiles: boolean; +} + +interface IstioCanaryRevision { + current: string; + upgrade: string; +} + +/* + Health Config +*/ +export type RegexConfig = string | RegExp; + +export interface HealthConfig { + rate: RateHealthConfig[]; +} + +// rateHealthConfig +export interface RateHealthConfig { + namespace?: RegexConfig; + kind?: RegexConfig; + name?: RegexConfig; + tolerance: ToleranceConfig[]; +} +// toleranceConfig +export interface ToleranceConfig { + code: RegexConfig; + degraded: number; + failure: number; + protocol?: RegexConfig; + direction?: RegexConfig; +} + +/* + End Health Config +*/ + +export interface ServerConfig { + accessibleNamespaces: Array; + ambientEnabled: boolean; + authStrategy: string; + clusters: { [key: string]: MeshCluster }; + deployment: DeploymentConfig; + gatewayAPIEnabled: boolean; + healthConfig: HealthConfig; + installationTag?: string; + istioAnnotations: IstioAnnotations; + istioCanaryRevision: IstioCanaryRevision; + istioIdentityDomain: string; + istioNamespace: string; + istioLabels: { [key in IstioLabelKey]: string }; + kialiFeatureFlags: KialiFeatureFlags; + logLevel: string; + prometheus: { + globalScrapeInterval?: DurationInSeconds; + storageTsdbRetention?: DurationInSeconds; + }; +} diff --git a/workspaces/kiali/plugins/kiali/src/types/ServiceId.ts b/workspaces/kiali/plugins/kiali/src/types/ServiceId.ts new file mode 100644 index 0000000000..1c9d8cdcfd --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/ServiceId.ts @@ -0,0 +1,19 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +export interface ServiceId { + namespace: string; + service: string; +} diff --git a/workspaces/kiali/plugins/kiali/src/types/ServiceInfo.ts b/workspaces/kiali/plugins/kiali/src/types/ServiceInfo.ts new file mode 100644 index 0000000000..9494f7bdfb --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/ServiceInfo.ts @@ -0,0 +1,252 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { KIALI_WIZARD_LABEL } from '../components/IstioWizards/WizardActions'; +import { + DEGRADED, + FAILURE, + HEALTHY, + NA, + ServiceHealth, + Status, +} from './Health'; +import { + DestinationRule, + getWizardUpdateLabel, + K8sHTTPRoute, + ObjectCheck, + ObjectValidation, + ServiceEntry, + Validations, + ValidationTypes, + VirtualService, +} from './IstioObjects'; +import { ResourcePermissions } from './Permissions'; +import { ServiceOverview } from './ServiceList'; +import { TLSStatus } from './TLSStatus'; +import { AdditionalItem } from './Workload'; + +export interface ServicePort { + name: string; + port: number; + protocol: string; + appProtocol?: string; + istioProtocol: string; + tlsMode: string; +} + +export interface Endpoints { + addresses?: EndpointAddress[]; + ports?: ServicePort[]; +} + +interface EndpointAddress { + ip: string; + kind?: string; + name?: string; + istioProtocol?: string; + tlsMode?: string; +} + +export interface WorkloadOverview { + name: string; + type: string; + istioSidecar: boolean; + istioAmbient: boolean; + labels?: { [key: string]: string }; + resourceVersion: string; + createdAt: string; + serviceAccountNames: string[]; +} + +export interface Service { + additionalDetails: AdditionalItem[]; + type: string; + name: string; + createdAt: string; + resourceVersion: string; + ip: string; + ports?: ServicePort[]; + annotations: { [key: string]: string }; + externalName: string; + labels?: { [key: string]: string }; + selectors?: { [key: string]: string }; + cluster?: string; +} + +export interface ServiceDetailsInfo { + service: Service; + endpoints?: Endpoints[]; + istioSidecar: boolean; + istioAmbient: boolean; + virtualServices: VirtualService[]; + k8sHTTPRoutes: K8sHTTPRoute[]; + destinationRules: DestinationRule[]; + serviceEntries: ServiceEntry[]; + istioPermissions: ResourcePermissions; + health?: ServiceHealth; + workloads?: WorkloadOverview[]; + subServices?: ServiceOverview[]; + namespaceMTLS?: TLSStatus; + validations: Validations; + additionalDetails: AdditionalItem[]; + cluster?: string; +} + +export interface ServiceDetailsQuery { + rateInterval?: string; + validate?: boolean; +} + +export function getServiceDetailsUpdateLabel( + serviceDetails: ServiceDetailsInfo | null, +) { + return getWizardUpdateLabel( + serviceDetails?.virtualServices || null, + serviceDetails?.k8sHTTPRoutes || null, + ); +} + +export function hasServiceDetailsTrafficRouting( + serviceDetails: ServiceDetailsInfo | null, +): boolean; +export function hasServiceDetailsTrafficRouting( + vsList: VirtualService[], + drList: DestinationRule[], + routeList?: K8sHTTPRoute[], +): boolean; +export function hasServiceDetailsTrafficRouting( + serviceDetailsOrVsList: ServiceDetailsInfo | VirtualService[] | null, + drList?: DestinationRule[], + routeList?: K8sHTTPRoute[], +): boolean { + let virtualServicesList: VirtualService[]; + let destinationRulesList: DestinationRule[]; + let httpRoutesList: K8sHTTPRoute[]; + + if (serviceDetailsOrVsList === null) { + return false; + } + + if ('length' in serviceDetailsOrVsList) { + virtualServicesList = serviceDetailsOrVsList; + destinationRulesList = drList || []; + httpRoutesList = routeList || []; + } else { + virtualServicesList = serviceDetailsOrVsList.virtualServices; + destinationRulesList = serviceDetailsOrVsList.destinationRules; + httpRoutesList = serviceDetailsOrVsList.k8sHTTPRoutes; + } + + return ( + virtualServicesList.length > 0 || + destinationRulesList.length > 0 || + httpRoutesList.length > 0 + ); +} + +const higherThan = [ + 'error-warning', + 'error-improvement', + 'error-correct', + 'warning-improvement', + 'warning-correct', + 'improvement-correct', +]; + +export const higherSeverity = ( + a: ValidationTypes, + b: ValidationTypes, +): boolean => { + return higherThan.includes(`${a}-${b}`); +}; + +export const highestSeverity = (checks: ObjectCheck[]): ValidationTypes => { + let severity: ValidationTypes = ValidationTypes.Correct; + + checks.forEach(check => { + if (higherSeverity(check.severity, severity)) { + severity = check.severity; + } + }); + + return severity; +}; + +export const validationToHealth = (severity: ValidationTypes): Status => { + let status: Status = NA; + if (severity === ValidationTypes.Correct) { + status = HEALTHY; + } else if (severity === ValidationTypes.Warning) { + status = DEGRADED; + } else if (severity === ValidationTypes.Error) { + status = FAILURE; + } + return status; +}; + +const numberOfChecks = (type: ValidationTypes, object: ObjectValidation) => + (object && object.checks ? object.checks : []).filter( + i => i.severity === type, + ).length; + +export const validationToSeverity = ( + object: ObjectValidation, +): ValidationTypes => { + const warnChecks = numberOfChecks(ValidationTypes.Warning, object); + const errChecks = numberOfChecks(ValidationTypes.Error, object); + if (errChecks > 0) { + return ValidationTypes.Error; + } else if (warnChecks > 0) { + return ValidationTypes.Warning; + } + return ValidationTypes.Correct; +}; + +export const checkForPath = ( + object: ObjectValidation | undefined, + path: string, +): ObjectCheck[] => { + if (!object || !object.checks) { + return []; + } + + return object.checks.filter(item => { + return item.path === path; + }); +}; + +export const globalChecks = (object: ObjectValidation): ObjectCheck[] => { + return checkForPath(object, ''); +}; + +export function getServiceWizardLabel(serviceDetails: Service): string { + if ( + serviceDetails && + serviceDetails.labels && + serviceDetails.labels[KIALI_WIZARD_LABEL] + ) { + return serviceDetails.labels[KIALI_WIZARD_LABEL]; + } + return ''; +} + +export function getServicePort(ports: { [key: string]: number }): number { + let port = 80; + if (ports) { + port = Object.values(ports)[0]; + } + return port; +} diff --git a/workspaces/kiali/plugins/kiali/src/types/ServiceList.ts b/workspaces/kiali/plugins/kiali/src/types/ServiceList.ts new file mode 100644 index 0000000000..1a08855663 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/ServiceList.ts @@ -0,0 +1,51 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { ServiceHealth } from './Health'; +import { ObjectReference, ObjectValidation, Validations } from './IstioObjects'; +import { Namespace } from './Namespace'; +import { AdditionalItem } from './Workload'; + +export interface ServiceList { + namespace: Namespace; + services: ServiceOverview[]; + validations: Validations; +} + +export interface ServiceOverview { + name: string; + cluster?: string; + istioSidecar: boolean; + istioAmbient: boolean; + additionalDetailSample?: AdditionalItem; + labels: { [key: string]: string }; + ports: { [key: string]: number }; + istioReferences: ObjectReference[]; + kialiWizard: string; + serviceRegistry: string; + health: ServiceHealth; +} + +export interface ServiceListItem extends ServiceOverview { + namespace: string; + validation?: ObjectValidation; +} + +export interface ServiceListQuery { + health: 'true' | 'false'; + istioResources: 'true' | 'false'; + onlyDefinitions: 'true' | 'false'; + rateInterval: string; +} diff --git a/workspaces/kiali/plugins/kiali/src/types/SortFilters.ts b/workspaces/kiali/plugins/kiali/src/types/SortFilters.ts new file mode 100644 index 0000000000..c08631fbb6 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/SortFilters.ts @@ -0,0 +1,25 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { Health } from './Health'; + +export interface SortField { + id: string; + title: string; // Used when building a dropdown of sort options, this is not a column header + isNumeric: boolean; + param: string; + compare: (a: T | WithHealth, b: T | WithHealth) => number; +} +type WithHealth = T & { health: Health }; diff --git a/workspaces/kiali/plugins/kiali/src/types/StatusState.ts b/workspaces/kiali/plugins/kiali/src/types/StatusState.ts new file mode 100644 index 0000000000..d552390552 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/StatusState.ts @@ -0,0 +1,45 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +export enum StatusKey { + DISABLED_FEATURES = 'Disabled features', + KIALI_CORE_COMMIT_HASH = 'Kiali commit hash', + KIALI_CORE_VERSION = 'Kiali version', + KIALI_CONTAINER_VERSION = 'Kiali container version', + KIALI_STATE = 'Kiali state', + MESH_NAME = 'Mesh name', + MESH_VERSION = 'Mesh version', + KIALI_EXTERNAL_URL = 'kialiExternalUrl', +} + +export type Status = { [K in StatusKey]?: string }; + +export interface ExternalServiceInfo { + name: string; + version?: string; + url?: string; +} + +export interface IstioEnvironment { + isMaistra: boolean; + istioAPIEnabled: boolean; +} + +export interface StatusState { + status: Status; + externalServices: ExternalServiceInfo[]; + warningMessages: string[]; + istioEnvironment: IstioEnvironment; +} diff --git a/workspaces/kiali/plugins/kiali/src/types/TLSStatus.ts b/workspaces/kiali/plugins/kiali/src/types/TLSStatus.ts new file mode 100644 index 0000000000..e23e247443 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/TLSStatus.ts @@ -0,0 +1,49 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +export enum MTLSStatuses { + ENABLED = 'MTLS_ENABLED', + ENABLED_DEFAULT = 'MTLS_ENABLED_DEFAULT', + ENABLED_EXTENDED = 'MTLS_ENABLED_EXTENDED', + PARTIALLY = 'MTLS_PARTIALLY_ENABLED', + PARTIALLY_DEFAULT = 'MTLS_PARTIALLY_ENABLED_DEFAULT', + AUTO_DEFAULT = 'AUTO_MTLS_DEFAULT', + NOT_ENABLED = 'MTLS_NOT_ENABLED', + DISABLED = 'MTLS_DISABLED', +} + +export interface TLSStatus { + status: string; + autoMTLSEnabled: boolean; + minTLS: string; +} + +export const nsWideMTLSStatus = ( + nsStatus: string, + meshStatus: string, +): string => { + let finalStatus = nsStatus; + + // When mTLS is enabled meshwide but not disabled at ns level + // Then the ns has mtls enabled + if ( + meshStatus === MTLSStatuses.ENABLED && + nsStatus === MTLSStatuses.NOT_ENABLED + ) { + finalStatus = MTLSStatuses.ENABLED_EXTENDED; + } + + return finalStatus; +}; diff --git a/workspaces/kiali/plugins/kiali/src/types/Tracing.ts b/workspaces/kiali/plugins/kiali/src/types/Tracing.ts new file mode 100644 index 0000000000..cd347a67c9 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/Tracing.ts @@ -0,0 +1,41 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +export type TracingQuery = { + startMicros: number; + endMicros?: number; + tags?: string; + limit?: number; + minDuration?: number; +}; + +export type Span = { + traceID: string; + spanID: string; + operationName: string; + startTime: number; + duration: number; + tags: Tag[]; + warnings?: string[]; + traceSize: number; +}; + +export type Tag = { + key: string; + type: string; + value: any; +}; + +export const TEMPO = 'tempo'; diff --git a/workspaces/kiali/plugins/kiali/src/types/TracingInfo.ts b/workspaces/kiali/plugins/kiali/src/types/TracingInfo.ts new file mode 100644 index 0000000000..21e8337173 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/TracingInfo.ts @@ -0,0 +1,144 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ + +import { Target } from './MetricsOptions'; + +export interface TracingInfo { + enabled: boolean; + integration: boolean; + namespaceSelector: boolean; + provider: string; + url: string; + whiteListIstioSystem: string[]; +} + +export type KeyValuePair = { + key: string; + type: string; + value: any; +}; + +export type Log = { + fields: Array; + timestamp: number; +}; + +export type SpanReference = { + refType: 'CHILD_OF' | 'FOLLOWS_FROM'; + // eslint-disable-next-line no-use-before-define + span: Span | null | undefined; + spanID: string; + traceID: string; +}; + +export type Process = { + serviceName: string; + tags: Array; +}; + +export type SpanData = { + duration: number; + logs: Array; + operationName: string; + processID: string; + references?: Array; + spanID: string; + startTime: number; + tags?: Array; + traceID: string; + warnings?: Array | null; +}; + +export type Span = SpanData & { + depth: number; + hasChildren: boolean; + process: Process; + references: NonNullable; + relativeStartTime: number; + tags: NonNullable; + warnings: NonNullable; +}; + +export type RichSpanData = Span & { + app: string; + cluster?: string; + component: string; + info: OpenTracingBaseInfo; + linkToApp?: string; + linkToWorkload?: string; + namespace: string; + pod?: string; + type: 'envoy' | 'http' | 'tcp' | 'unknown'; + workload?: string; +}; + +export type OpenTracingBaseInfo = { + component?: string; + hasError: boolean; +}; + +export type OpenTracingHTTPInfo = OpenTracingBaseInfo & { + direction?: 'inbound' | 'outbound'; + method?: string; + statusCode?: number; + url?: string; +}; + +export type OpenTracingTCPInfo = OpenTracingBaseInfo & { + direction?: 'inbound' | 'outbound'; + peerAddress?: string; + peerHostname?: string; + topic?: string; +}; + +export type EnvoySpanInfo = OpenTracingHTTPInfo & { + peer?: Target; + responseFlags?: string; +}; + +export type TraceData = { + matched?: number; // Tempo returns the number of total spans matched + processes: Record; + spans: S[]; + traceID: string; +}; + +export type JaegerTrace = TraceData & { + duration: number; + endTime: number; + matched?: number; // Tempo returns the number of total spans matched + services: { name: string; numberOfSpans: number }[]; + startTime: number; + traceName: string; +}; + +export type TracingError = { + code?: number; + msg: string; + traceID?: string; +}; + +export type TracingResponse = { + data: JaegerTrace[] | null; + errors: TracingError[]; + fromAllClusters: boolean; + tracingServiceName: string; +}; + +export type TracingSingleResponse = { + data: JaegerTrace | null; + errors: TracingError[]; +}; diff --git a/workspaces/kiali/plugins/kiali/src/types/VictoryChartInfo.ts b/workspaces/kiali/plugins/kiali/src/types/VictoryChartInfo.ts new file mode 100644 index 0000000000..00ce51d0ff --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/VictoryChartInfo.ts @@ -0,0 +1,81 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +export interface LegendInfo { + height: number; + itemsPerRow: number; + fontSizeLabels: number; +} + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +type Style = any; + +export type VCDataPoint = { + name: string; + x: number | Date | string; + y: number; + y0?: number; + style?: Style; +}; + +export type LineInfo = { + name: string; + color: string; + unit?: string; + symbol?: string; + size?: number; + scaleFactor?: number; +}; + +export type RichDataPoint = VCDataPoint & LineInfo; + +export type BucketDataPoint = { + name: string; + start: number | Date; + end: number | Date; + x: number | Date; + y: number[]; + style?: Style; +}; +export type RawOrBucket = T & + (VCDataPoint | BucketDataPoint); + +export type LegendItem = { + name: string; + symbol: { fill: string; type?: string }; +}; + +// Create a legend object recognized by Victory. "Type" is optional (default is a square), it refers to a shape ('circle', 'star', etc.) +export const makeLegend = ( + name: string, + color: string, + type?: string, +): LegendItem => { + return { + name: name, + symbol: { + fill: color, + type: type, + }, + }; +}; + +export type VCLine = { + datapoints: T[]; + color?: string; + legendItem: LegendItem; +}; + +export type VCLines = VCLine[]; diff --git a/workspaces/kiali/plugins/kiali/src/types/Workload.ts b/workspaces/kiali/plugins/kiali/src/types/Workload.ts new file mode 100644 index 0000000000..6f4fc60ce0 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/Workload.ts @@ -0,0 +1,126 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { WorkloadHealth, WorkloadHealthResponse } from './Health'; +import { ObjectReference, Pod, Service, Validations } from './IstioObjects'; +import { Namespace } from './Namespace'; + +export interface WorkloadId { + namespace: string; + workload: string; +} + +export interface Workload { + name: string; + cluster?: string; + type: string; + createdAt: string; + resourceVersion: string; + istioInjectionAnnotation?: boolean; + istioSidecar: boolean; + istioAmbient: boolean; + labels: { [key: string]: string }; + appLabel: boolean; + versionLabel: boolean; + replicas: Number; + availableReplicas: Number; + pods: Pod[]; + annotations: { [key: string]: string }; + health?: WorkloadHealthResponse; + services: Service[]; + runtimes: Runtime[]; + additionalDetails: AdditionalItem[]; + validations?: Validations; + waypointWorkloads: Workload[]; +} + +export const emptyWorkload: Workload = { + name: '', + type: '', + createdAt: '', + resourceVersion: '', + istioSidecar: true, // true until proven otherwise + istioAmbient: false, + labels: {}, + appLabel: false, + versionLabel: false, + replicas: 0, + availableReplicas: 0, + pods: [], + annotations: {}, + services: [], + runtimes: [], + additionalDetails: [], + waypointWorkloads: [], +}; + +export const WorkloadType = { + CronJob: 'CronJob', + DaemonSet: 'DaemonSet', + Deployment: 'Deployment', + DeploymentConfig: 'DeploymentConfig', + Job: 'Job', + Pod: 'Pod', + ReplicaSet: 'ReplicaSet', + ReplicationController: 'ReplicationController', + StatefulSet: 'StatefulSet', +}; + +export interface WorkloadOverview { + name: string; + cluster?: string; + type: string; + istioSidecar: boolean; + istioAmbient: boolean; + additionalDetailSample?: AdditionalItem; + appLabel: boolean; + versionLabel: boolean; + labels: { [key: string]: string }; + istioReferences: ObjectReference[]; + notCoveredAuthPolicy: boolean; + health: WorkloadHealth; +} + +export interface WorkloadListItem extends WorkloadOverview { + namespace: string; +} + +export interface WorkloadNamespaceResponse { + namespace: Namespace; + workloads: WorkloadOverview[]; + validations: Validations; +} + +export interface Runtime { + name: string; + dashboardRefs: DashboardRef[]; +} + +export interface DashboardRef { + template: string; + title: string; +} + +export interface AdditionalItem { + title: string; + value: string; + icon?: string; +} + +export interface WorkloadQuery { + health: 'true' | 'false'; + rateInterval: string; + validate: 'true' | 'false'; +} diff --git a/workspaces/kiali/plugins/kiali/src/types/types.ts b/workspaces/kiali/plugins/kiali/src/types/types.ts new file mode 100644 index 0000000000..c0566237d5 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/types/types.ts @@ -0,0 +1,32 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import axios, { AxiosError, AxiosResponse } from 'axios'; + +export const ENTITY = 'entity'; +export const DRAWER = 'drawer'; + +export interface KialiError { + detail: string; + error: string; +} + +export type ApiResponse = Partial> & { + data: T; +}; + +export type ApiError = AxiosError; + +export const isApiError = axios.isAxiosError; diff --git a/workspaces/kiali/plugins/kiali/src/utils/Alertutils.ts b/workspaces/kiali/plugins/kiali/src/utils/Alertutils.ts new file mode 100644 index 0000000000..f974b459e8 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/utils/Alertutils.ts @@ -0,0 +1,154 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { Dispatch } from 'react'; + +import axios, { AxiosError } from 'axios'; + +import { KialiAppAction } from '../actions/KialiAppAction'; +import { MessageCenterActions } from '../actions/MessageCenterActions'; +import * as API from '../services/Api'; +import { MessageType } from '../types/MessageCenter'; + +export type Message = { + content: string; + detail?: string; + group?: string; + type?: MessageType; + showNotification?: boolean; +}; + +export const extractAxiosError = ( + message: string, + error: AxiosError, +): { content: string; detail: string } => { + const errorString: string = API.getErrorString(error); + const errorDetail: string = API.getErrorDetail(error); + if (message) { + // combine error string and detail into a single detail + if (errorString && errorDetail) { + return { + content: message, + detail: `${errorString}\nAdditional Detail:\n${errorDetail}`, + }; + } else if (errorDetail) { + return { content: message, detail: errorDetail }; + } + return { content: message, detail: errorString }; + } + return { content: errorString, detail: errorDetail }; +}; + +export class AlertUtils { + dispatch: Dispatch; + + constructor(dispatch: Dispatch) { + this.dispatch = dispatch; + } + + add = (content: string, group?: string, type?: MessageType) => { + this.dispatch(MessageCenterActions.addMessage(content, '', group, type)); + }; + + addInfo = ( + content: string, + showNotification?: boolean, + group?: string, + detail?: string, + ) => { + this.dispatch( + MessageCenterActions.addMessage( + content, + detail ?? '', + group, + MessageType.INFO, + showNotification, + ), + ); + }; + + addSuccess = ( + content: string, + showNotification?: boolean, + group?: string, + detail?: string, + ) => { + this.dispatch( + MessageCenterActions.addMessage( + content, + detail ?? '', + group, + MessageType.SUCCESS, + showNotification, + ), + ); + }; + + addWarning = ( + content: string, + showNotification?: boolean, + group?: string, + detail?: string, + ) => { + this.dispatch( + MessageCenterActions.addMessage( + content, + detail ?? '', + group, + MessageType.WARNING, + showNotification, + ), + ); + }; + + addMessage = (msg: Message) => { + this.dispatch( + MessageCenterActions.addMessage( + msg.content, + msg.detail ?? '', + msg.group, + msg.type, + msg.showNotification, + ), + ); + }; + + addError = ( + message: string, + error?: Error, + group?: string, + type?: MessageType, + detail?: string, + ) => { + if (axios.isAxiosError(error)) { + const finalType: MessageType = type ?? MessageType.ERROR; + const err = extractAxiosError(message, error); + this.addMessage({ + ...err, + group: group, + type: finalType, + }); + } else { + this.dispatch( + MessageCenterActions.addMessage( + message, + detail ?? '', + group, + MessageType.ERROR, + ), + ); + } + }; +} diff --git a/workspaces/kiali/plugins/kiali/src/utils/Callback.ts b/workspaces/kiali/plugins/kiali/src/utils/Callback.ts new file mode 100644 index 0000000000..bd8d23d3aa --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/utils/Callback.ts @@ -0,0 +1,44 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { useEffect, useRef, useState } from 'react'; + +type CallBackType = (updatedValue: T) => void; + +type SetStateType = T | ((prev: T) => T); + +type RetType = ( + initialValue: T | (() => T), +) => [T, (newValue: SetStateType, callback?: CallBackType) => void]; + +const useCallbackState: RetType = (initialValue: T | (() => T)) => { + const [state, _setState] = useState(initialValue); + const callbackQueue = useRef[]>([]); + + useEffect(() => { + callbackQueue.current.forEach(cb => cb(state)); + callbackQueue.current = []; + }, [state]); + + const setState = (newValue: SetStateType, callback?: CallBackType) => { + _setState(newValue); + if (callback && typeof callback === 'function') { + callbackQueue.current.push(callback); + } + }; + return [state, setState]; +}; + +export default useCallbackState; diff --git a/workspaces/kiali/plugins/kiali/src/utils/CancelablePromises.ts b/workspaces/kiali/plugins/kiali/src/utils/CancelablePromises.ts new file mode 100644 index 0000000000..258dcdecd8 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/utils/CancelablePromises.ts @@ -0,0 +1,109 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +export class CancelablePromise { + promise: Promise; + next?: CancelablePromise; + private hasCanceled = false; + + constructor(promise: Promise) { + this.promise = new Promise((resolve, reject) => { + promise.then( + val => (this.hasCanceled ? reject({ isCanceled: true }) : resolve(val)), + error => + this.hasCanceled ? reject({ isCanceled: true }) : reject(error), + ); + }); + } + + cancel() { + this.hasCanceled = true; + if (this.next) { + this.next.cancel(); + } + } + + chain(mapper: (t: T) => Promise): CancelablePromise { + // eslint-disable-next-line + let last: CancelablePromise = this; + while (last.next) { + last = last.next; + } + last.next = new CancelablePromise( + this.promise.then(t => (this.hasCanceled ? t : mapper(t))), + ); + this.promise = last.next.promise; + return last.next; + } +} + +export const makeCancelablePromise = ( + promise: Promise, +): CancelablePromise => { + return new CancelablePromise(promise); +}; + +export class PromisesRegistry { + private promises: Map> = new Map(); + + register(key: string, promise: Promise): Promise { + const previous = this.promises.get(key); + if (previous) { + previous.cancel(); + } + const cancelable = makeCancelablePromise(promise); + this.promises.set(key, cancelable); + return cancelable.promise; + } + + registerChained( + key: string, + initial: T, + mapper: (t: T) => Promise, + ): Promise { + const previous = this.promises.get(key); + if (previous) { + previous.chain(mapper); + return previous.promise; + } + const cancelable = new CancelablePromise(mapper(initial)); + this.promises.set(key, cancelable); + return cancelable.promise; + } + async waitAll() { + await Promise.all(this.promises); + } + + registerAll(key: string, promises: Promise[]): Promise { + return this.register(key, Promise.all(promises)); + } + + cancelAll() { + this.promises.forEach(promise => promise.cancel()); + this.promises.clear(); + } + + cancel(key: string) { + const previous = this.promises.get(key); + if (previous) { + previous.cancel(); + this.promises.delete(key); + } + } + + has(key: string): boolean { + return this.promises.has(key); + } +} diff --git a/workspaces/kiali/plugins/kiali/src/utils/Common.ts b/workspaces/kiali/plugins/kiali/src/utils/Common.ts new file mode 100644 index 0000000000..846526d680 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/utils/Common.ts @@ -0,0 +1,67 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ + +import { Namespace } from '../types/Namespace'; + +// @ts-expect-error +export const removeDuplicatesArray = a => + [...Array.from(new Set(a))] as string[]; + +export const arrayEquals = ( + a1: T[], + a2: T[], + comparator: (v1: T, v2: T) => boolean, +) => { + if (a1.length !== a2.length) { + return false; + } + for (let i = 0; i < a1.length; ++i) { + if (!comparator(a1[i], a2[i])) { + return false; + } + } + return true; +}; + +export const namespaceEquals = (ns1: Namespace[], ns2: Namespace[]): boolean => + arrayEquals(ns1, ns2, (n1, n2) => n1.name === n2.name); + +export function groupBy(items: T[], key: keyof T): { [key: string]: T[] } { + return items.reduce( + (result, item) => ({ + ...result, + [item[key as keyof T] as any]: [ + ...(result[item[key as keyof T] as any] || []), + item, + ], + }), + {} as { [key: string]: T[] }, + ); +} + +export type validationType = 'success' | 'warning' | 'error' | 'default'; +export const isValid = ( + isValidS?: boolean, + isWarning?: boolean, +): validationType => { + if (isValidS === undefined) { + return 'default'; + } + if (isValidS) { + return 'success'; + } + return isWarning ? 'warning' : 'error'; +}; diff --git a/workspaces/kiali/plugins/kiali/src/utils/Date.ts b/workspaces/kiali/plugins/kiali/src/utils/Date.ts new file mode 100644 index 0000000000..96be7dcadb --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/utils/Date.ts @@ -0,0 +1,22 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +export const toLocaleStringWithConditionalDate = (date: Date): string => { + const nowDate = new Date().toLocaleDateString(); + const thisDate = date.toLocaleDateString(); + return nowDate === thisDate + ? date.toLocaleTimeString() + : date.toLocaleString(); +}; diff --git a/workspaces/kiali/plugins/kiali/src/utils/Formatter.ts b/workspaces/kiali/plugins/kiali/src/utils/Formatter.ts new file mode 100644 index 0000000000..3525f917c7 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/utils/Formatter.ts @@ -0,0 +1,166 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +type D3FormatFunc = ( + specifier: string, +) => (n: number | { valueOf(): number }) => string; + +const formatSI = ( + d3Format: D3FormatFunc, + val: number, + suffix: string, + withUnit: boolean, +): string => { + const fmt = d3Format('~s')(val); + let si = ''; + // Insert space before SI + // "fmt" can be something like: + // - "9k" => we want "9 kB" + // - "9" => we want "9 B" + for (let i = fmt.length - 1; i >= 0; i--) { + const c = fmt.charAt(i); + if (c >= '0' && c <= '9') { + const res = fmt.substr(0, i + 1); + return withUnit ? `${res} ${si}${suffix}` : res; + } + si = c + si; + } + // Weird: no number found? + return withUnit ? fmt + suffix : fmt; +}; + +const formatData = ( + d3Format: D3FormatFunc, + val: number, + threshold: number, + units: string[], + withUnit: boolean, +): string => { + if (Math.abs(val) < threshold) { + return `${val} `; + } + let u = -1; + let value = val; + do { + value /= threshold; + ++u; + } while (Math.abs(value) >= threshold && u < units.length - 1); + const unit = d3Format('~r')(value); + return withUnit ? `${unit} ${units[u]}` : unit; +}; + +const formatDataSI = ( + d3Format: D3FormatFunc, + val: number, + suffix: string, + withUnit: boolean, +): string => { + const formD = formatData( + d3Format, + val, + 1000, + ['k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y'], + withUnit, + ); + return withUnit ? formD + suffix : formD; +}; + +const formatDataIEC = ( + d3Format: D3FormatFunc, + val: number, + suffix: string, + withUnit: boolean, +): string => { + const formD = formatData( + d3Format, + val, + 1024, + ['Ki', 'Mi', 'Gi', 'Ti', 'Pi', 'Ei', 'Zi', 'Yi'], + withUnit, + ); + return withUnit ? formD + suffix : formD; +}; + +export const getUnit = ( + d3Format: D3FormatFunc, + unit: string, + value: number, +) => { + // Round to dismiss float imprecision + const val = Math.round(value * 10000) / 10000; + let unitResult = ''; + switch (unit) { + case 'seconds': + unitResult = formatSI(d3Format, val, 's', true); + break; + case 'bytes': + case 'bytes-si': + unitResult = formatDataSI(d3Format, val, 'B', true); + break; + case 'bytes-iec': + unitResult = formatDataIEC(d3Format, val, 'B', true); + break; + case 'bitrate': + case 'bitrate-si': + unitResult = formatDataSI(d3Format, val, 'bit/s', true); + break; + case 'bitrate-iec': + unitResult = formatDataIEC(d3Format, val, 'bit/s', true); + break; + case 'connrate': + unitResult = formatDataSI(d3Format, val, 'conn/s', true); + break; + case 'msgrate': + unitResult = formatDataSI(d3Format, val, 'msg/s', true); + break; + default: + // Fallback to default SI scaler: + unitResult = formatDataSI(d3Format, val, unit, true); + break; + } + return unitResult.split(' ')[1]; +}; + +export const getFormatter = ( + d3Format: D3FormatFunc, + unit: string, + withUnit: boolean = false, +) => { + return (val: number): string => { + // Round to dismiss float imprecision + const value = Math.round(val * 10000) / 10000; + switch (unit) { + case 'seconds': + return formatSI(d3Format, value, 's', withUnit); + case 'bytes': + case 'bytes-si': + return formatDataSI(d3Format, value, 'B', withUnit); + case 'bytes-iec': + return formatDataIEC(d3Format, value, 'B', withUnit); + case 'bitrate': + case 'bitrate-si': + return formatDataSI(d3Format, value, 'bit/s', withUnit); + case 'bitrate-iec': + return formatDataIEC(d3Format, value, 'bit/s', withUnit); + case 'connrate': + return formatDataSI(d3Format, value, 'conn/s', withUnit); + case 'msgrate': + return formatDataSI(d3Format, value, 'msg/s', withUnit); + default: + // Fallback to default SI scaler: + return formatDataSI(d3Format, value, unit, withUnit); + } + }; +}; diff --git a/workspaces/kiali/plugins/kiali/src/utils/IstioConfigUtils.ts b/workspaces/kiali/plugins/kiali/src/utils/IstioConfigUtils.ts new file mode 100644 index 0000000000..80c6940125 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/utils/IstioConfigUtils.ts @@ -0,0 +1,245 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import _ from 'lodash'; + +import { IstioConfigDetails } from '../types/IstioConfigDetails'; +import { IstioConfigItem } from '../types/IstioConfigList'; +import { + IstioObject, + ObjectCheck, + OutlierDetection, + StatusCondition, + Validations, +} from '../types/IstioObjects'; + +export const mergeJsonPatch = ( + objectModified: object, + object?: object, +): object => { + if (!object) { + return objectModified; + } + const customizer = ( + objValue: object | null, + srcValue: object, + ): object | null => { + if (!objValue) { + return null; + } + if (_.isObject(objValue) && _.isObject(srcValue)) { + _.mergeWith(objValue, srcValue, customizer); + } + return objValue; + }; + _.mergeWith(objectModified, object, customizer); + return objectModified; +}; + +const k8sHostRegexp = + /^(\*\.)?[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$/; +const nsRegexp = + /^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[-a-z0-9]([-a-z0-9]*[a-z0-9])?)*$/; +const hostRegexp = + /(?=^.{4,253}$)(^((?!-)(([a-zA-Z0-9-]{0,62}[a-zA-Z0-9])|\*)\.)+[a-zA-Z]{2,63}$)/; +const ipRegexp = + /^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/([0-9]|[1-2][0-9]|3[0-2]))?$/; +const durationRegexp = /^[\d]{1,10}\.?[\d]{0,10}(h|m|s|ms)$/; + +// K8s gateway hosts have only dnsName +export const isK8sGatewayHostValid = (k8sGatewayHost: string): boolean => { + if (k8sGatewayHost.length < 1 && k8sGatewayHost.length > 253) { + return false; + } + + // K8s gateway host must be fqdn but not ip address + if ( + k8sGatewayHost.split('.').length < 2 || + k8sGatewayHost.search(ipRegexp) === 0 + ) { + return false; + } + + return k8sGatewayHost.search(k8sHostRegexp) === 0; +}; + +// Used to check if Sidecar and Gateway host expressions are valid +export const isServerHostValid = ( + serverHost: string, + nsMandatory: boolean, +): boolean => { + if (serverHost.length === 0) { + return false; + } + // / + const parts = serverHost.split('/'); + // More than one / + if (parts.length > 2) { + return false; + } + // Force that namespace/dnsName are present + if (nsMandatory && parts.length < 2) { + return false; + } + + // parts[0] is a dns + let dnsValid = true; + let hostValid = true; + let dns = ''; + let host = ''; + if (parts.length === 2) { + dns = parts[0]; + host = parts[1]; + + if (dns !== '.' && dns !== '*') { + dnsValid = parts[0].search(nsRegexp) === 0; + } + } else { + host = parts[0]; + } + + if (host !== '*') { + hostValid = host.search(hostRegexp) === 0; + } + return dnsValid && hostValid; +}; + +export const isValidIp = (ip: string): boolean => { + return ipRegexp.test(ip); +}; + +export const isValidUrl = (url: string): boolean => { + try { + // eslint-disable-next-line no-new + new URL(url); + } catch (__) { + return false; + } + return true; +}; + +export const isValidDuration = (duration: string): boolean => { + if ( + duration === '0ms' || + duration === '0s' || + duration === '0m' || + duration === '0h' + ) { + return false; + } + return durationRegexp.test(duration); +}; + +export const isValidAbortStatusCode = (statusCode: number): boolean => { + return statusCode >= 100 && statusCode <= 599; +}; + +export const isValidOutlierDetection = ( + outlierDetection: OutlierDetection, +): boolean => { + if ( + outlierDetection.interval && + !isValidDuration(outlierDetection.interval) + ) { + return false; + } + if ( + outlierDetection.baseEjectionTime && + !isValidDuration(outlierDetection.baseEjectionTime) + ) { + return false; + } + return true; +}; + +export const hasMissingAuthPolicy = ( + workloadName: string, + validations: Validations | undefined, +): boolean => { + let hasMissingAP = false; + + if (!validations) { + return hasMissingAP; + } + + if (validations.workload && validations.workload[workloadName]) { + const workloadValidation = validations.workload[workloadName]; + + workloadValidation.checks.forEach((check: ObjectCheck) => { + if (check.code === 'KIA1301') { + hasMissingAP = true; + } + }); + } + + return hasMissingAP; +}; + +export const getIstioObject = ( + istioObjectDetails?: IstioConfigDetails | IstioConfigItem, +): IstioObject | undefined => { + let istioObject: IstioObject | undefined; + if (istioObjectDetails) { + if (istioObjectDetails.gateway) { + istioObject = istioObjectDetails.gateway; + } else if (istioObjectDetails.k8sGateway) { + istioObject = istioObjectDetails.k8sGateway; + } else if (istioObjectDetails.k8sGRPCRoute) { + istioObject = istioObjectDetails.k8sGRPCRoute; + } else if (istioObjectDetails.k8sHTTPRoute) { + istioObject = istioObjectDetails.k8sHTTPRoute; + } else if (istioObjectDetails.k8sReferenceGrant) { + istioObject = istioObjectDetails.k8sReferenceGrant; + } else if (istioObjectDetails.k8sTCPRoute) { + istioObject = istioObjectDetails.k8sTCPRoute; + } else if (istioObjectDetails.k8sTLSRoute) { + istioObject = istioObjectDetails.k8sTLSRoute; + } else if (istioObjectDetails.virtualService) { + istioObject = istioObjectDetails.virtualService; + } else if (istioObjectDetails.destinationRule) { + istioObject = istioObjectDetails.destinationRule; + } else if (istioObjectDetails.serviceEntry) { + istioObject = istioObjectDetails.serviceEntry; + } else if (istioObjectDetails.workloadEntry) { + istioObject = istioObjectDetails.workloadEntry; + } else if (istioObjectDetails.workloadGroup) { + istioObject = istioObjectDetails.workloadGroup; + } else if (istioObjectDetails.envoyFilter) { + istioObject = istioObjectDetails.envoyFilter; + } else if (istioObjectDetails.authorizationPolicy) { + istioObject = istioObjectDetails.authorizationPolicy; + } else if (istioObjectDetails.peerAuthentication) { + istioObject = istioObjectDetails.peerAuthentication; + } else if (istioObjectDetails.requestAuthentication) { + istioObject = istioObjectDetails.requestAuthentication; + } else if (istioObjectDetails.sidecar) { + istioObject = istioObjectDetails.sidecar; + } else if (istioObjectDetails.wasmPlugin) { + istioObject = istioObjectDetails.wasmPlugin; + } else if (istioObjectDetails.telemetry) { + istioObject = istioObjectDetails.telemetry; + } + } + return istioObject; +}; + +export const getReconciliationCondition = ( + istioConfigDetails?: IstioConfigDetails | IstioConfigItem, +): StatusCondition | undefined => { + const istioObject = getIstioObject(istioConfigDetails); + return istioObject?.status?.conditions?.find( + condition => condition.type === 'Reconciled', + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/utils/RateIntervals.ts b/workspaces/kiali/plugins/kiali/src/utils/RateIntervals.ts new file mode 100644 index 0000000000..0596041204 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/utils/RateIntervals.ts @@ -0,0 +1,34 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { config } from '../config'; +import { serverConfig } from '../config/ServerConfig'; +import { IntervalInMilliseconds } from '../types/Common'; + +export const getName = (durationSeconds: number): string => { + const name = serverConfig.durations[durationSeconds]; + if (name) { + return name; + } + return `${durationSeconds} seconds`; +}; + +export const getRefreshIntervalName = ( + refreshInterval: IntervalInMilliseconds, +): string => { + // @ts-expect-error + const refreshIntervalOption = config.toolbar.refreshInterval[refreshInterval]; + return refreshIntervalOption.replace('Every ', ''); +}; diff --git a/workspaces/kiali/plugins/kiali/src/utils/Reducer.ts b/workspaces/kiali/plugins/kiali/src/utils/Reducer.ts new file mode 100644 index 0000000000..6d30fe4304 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/utils/Reducer.ts @@ -0,0 +1,18 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +export const updateState = (oldState: S, updatedState: Partial): S => { + return { ...oldState, ...updatedState }; +}; diff --git a/workspaces/kiali/plugins/kiali/src/utils/ResponseFlags.ts b/workspaces/kiali/plugins/kiali/src/utils/ResponseFlags.ts new file mode 100644 index 0000000000..a1a315f754 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/utils/ResponseFlags.ts @@ -0,0 +1,82 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ + +// https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage +export const responseFlags = { + DC: { + code: '500', + help: 'Downstream connection termination', + short: 'Downstream cx term', + }, + DI: { help: 'Delayed via fault injection' }, + DPE: { + help: ' Downstream request had an HTTP protocol error (is port type correct?)', + short: 'Downstream invalid HTTP', + }, + FI: { help: 'Aborted via fault injection' }, + IH: { + code: '400', + help: 'Invalid value for a strictly-checked header', + short: 'Invalid header value', + }, + LH: { + code: '503', + help: 'Local service failed health check request', + short: 'Failed health check', + }, + LR: { code: '503', help: 'Connection local reset' }, + NR: { + code: '404', + help: 'No route configured (check DestinationRule or VirtualService)', + short: 'No route', + }, + RL: { + code: '429', + help: 'Ratelimited locally by the HTTP rate limit filter', + short: 'Rate limit', + }, + RLSE: { help: 'Rate limited service error' }, + SI: { code: '408', help: 'Stream idle timeout' }, + UAEX: { help: 'Unauthorized external service' }, + UC: { + code: '503', + help: 'Upstream connection termination', + short: 'Upstream cx term', + }, + UF: { + code: '503', + help: 'Upstream connection failure (check for mutual TLS configuration conflict)', + short: 'Upstream cx failure', + }, + UH: { + code: '503', + help: 'No healthy upstream hosts in upstream cluster', + short: 'No healthy upstream', + }, + UMSDR: { help: 'Upstream request reached max stream duration' }, + UO: { + code: '503', + help: 'Upstream overflow (circuit breaker open)', + short: 'Circuit breaker open', + }, + UR: { code: '503', help: 'Upstream remote reset' }, + URX: { + code: '503', + help: 'Upstream retry limit (HTTP) or Max connect attempts (TCP) exceeded', + short: 'Upstream retry/connect limit', + }, + UT: { code: '504', help: 'Upstream request timeout' }, +}; diff --git a/workspaces/kiali/plugins/kiali/src/utils/SafeRender.tsx b/workspaces/kiali/plugins/kiali/src/utils/SafeRender.tsx new file mode 100644 index 0000000000..29087c8d84 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/utils/SafeRender.tsx @@ -0,0 +1,34 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { ErrorCircleOIcon } from '@patternfly/react-icons'; + +export const canRender = (value: any): boolean => { + return typeof value !== 'object'; +}; + +export const renderErrorMessage = (message: string): any => { + return ( + <> + {`${message} `} + + ); +}; + +export const safeRender = (value: any, message = 'Invalid value'): any => { + return canRender(value) ? value : renderErrorMessage(message); +}; diff --git a/workspaces/kiali/plugins/kiali/src/utils/TimeSeriesUtils.ts b/workspaces/kiali/plugins/kiali/src/utils/TimeSeriesUtils.ts new file mode 100644 index 0000000000..346156d14e --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/utils/TimeSeriesUtils.ts @@ -0,0 +1,138 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { AllPromLabelsValues, Labels, Metric } from '../types/Metrics'; + +type KVMapper = (key: string, value: string) => string; +export type LabelsInfo = { + values: AllPromLabelsValues; + prettifier?: KVMapper; +}; + +const isVisibleMetric = ( + labels: Labels, + labelValues: AllPromLabelsValues, +): boolean => { + for (const promLabelName in labels) { + if (Object.prototype.hasOwnProperty.call(labels, promLabelName)) { + const actualValue = labels[promLabelName]; + const values = labelValues.get(promLabelName); + if ( + values && + Object.prototype.hasOwnProperty.call(values, actualValue) && + !values[actualValue] + ) { + return false; + } + } + } + return true; +}; + +const getMultipleValuesLabels = (metrics: Metric[]): Set => { + const singleValueLabels = new Map(); + const multipleValuesLabels = new Set(); + metrics.forEach(m => { + Object.entries(m.labels).forEach(e => { + if (multipleValuesLabels.has(e[0])) { + return; + } + const value = singleValueLabels.get(e[0]); + if (value === undefined) { + singleValueLabels.set(e[0], e[1]); + } else if (value !== e[1]) { + singleValueLabels.delete(e[0]); + multipleValuesLabels.add(e[0]); + } + }); + }); + return multipleValuesLabels; +}; + +const mapStatForDisplay = (stat?: string): string | undefined => { + switch (stat) { + case '0.5': + return 'p50'; + case '0.95': + return 'p95'; + case '0.99': + return 'p99'; + case '0.999': + return 'p99.9'; + default: + return stat; + } +}; + +const renameMetrics = ( + metrics: Metric[], + labelPrettifier?: KVMapper, +): Metric[] => { + let hasSeveralFamilyNames = false; + if (metrics.length > 0) { + const firstName = metrics[0].name; + hasSeveralFamilyNames = metrics.some(s => s.name !== firstName); + } + const multipleValuesLabels = getMultipleValuesLabels(metrics); + return metrics.map(m => { + const name = m.name; + const stat = mapStatForDisplay(m.stat); + const labelsNoReporter = { ...m.labels }; + delete labelsNoReporter.reporter; + const otherLabels = Object.entries(labelsNoReporter) + .filter(e => multipleValuesLabels.has(e[0])) + .map(e => (labelPrettifier ? labelPrettifier(e[0], e[1]) : e[1])); + const labels = (stat ? [stat] : []).concat(otherLabels).join(','); + let finalName = ''; + if (labels === '') { + // E.g. Serie A + finalName = name; + } else if (hasSeveralFamilyNames) { + // E.g. Serie A [p99,another_label_value] + finalName = `${name} [${labels}]`; + } else { + // E.g. p99,another_label_value + // (since we only have a single serie name, it is considered implicit and we save some characters space) + finalName = labels; + } + return { + ...m, + name: finalName, + }; + }); +}; + +export const filterAndRenameMetric = ( + metrics: Metric[], + labels: LabelsInfo, +): Metric[] => { + const filtered = metrics.filter(m => + isVisibleMetric(m.labels, labels.values), + ); + return renameMetrics(filtered, labels.prettifier); +}; + +export const generateKey = (metrics: Metric[], chartName: string): string => { + if (metrics.length === 0) { + return 'blank'; + } + + const labelNames = Object.keys(metrics[0].labels); + if (labelNames.length === 0) { + return chartName; + } + + return `${chartName}-${labelNames.join('-')}`; +}; diff --git a/workspaces/kiali/plugins/kiali/src/utils/VictoryChartsUtils.ts b/workspaces/kiali/plugins/kiali/src/utils/VictoryChartsUtils.ts new file mode 100644 index 0000000000..9ee042fe42 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/utils/VictoryChartsUtils.ts @@ -0,0 +1,266 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { ChartModel, XAxisType } from '../types/Dashboards'; +import { Datapoint, Metric } from '../types/Metrics'; +import { Overlay, OverlayInfo } from '../types/Overlay'; +import { + BucketDataPoint, + LegendItem, + LineInfo, + makeLegend, + RichDataPoint, + VCDataPoint, + VCLine, + VCLines, +} from '../types/VictoryChartInfo'; +import { filterAndRenameMetric, LabelsInfo } from './TimeSeriesUtils'; + +export const toVCDatapoints = ( + dps: Datapoint[], + name: string, +): VCDataPoint[] => { + return dps + .map(dp => { + return { + name: name, + x: new Date(dp[0] * 1000), + y: Number(dp[1]), + y0: dp.length > 2 ? dp[2] : undefined, + }; + }) + .filter(dp => !isNaN(dp.y) && (dp.y0 === undefined || !isNaN(dp.y0))); +}; + +export const toVCSinglePoint = ( + dps: Datapoint[], + name: string, +): VCDataPoint[] => { + const last = dps + .filter(dp => !isNaN(dp[1]) && (dp[2] === undefined || !isNaN(dp[2]))) + .reduce((p, c) => (c[0] > p[0] ? c : p)); + if (last) { + return [ + { + name: name, + time: new Date(last[0] * 1000), + x: 0, // placeholder + y: Number(last[1]), + y0: last[2] ?? Number(last[1]), + } as VCDataPoint, + ]; + } + return []; +}; + +const buildVCLine = ( + dps: VCDataPoint[], + lineInfo: T, +): VCLine => { + const datapoints: (VCDataPoint & T)[] = dps.map(dp => ({ + ...lineInfo, + ...dp, + })); + const legendItem: LegendItem = makeLegend( + lineInfo.name, + lineInfo.color, + lineInfo.symbol, + ); + return { + datapoints: datapoints, + legendItem: legendItem, + color: lineInfo.color, + }; +}; + +export const toVCLine = ( + dps: Datapoint[], + name: string, + color: string, +): VCLine => { + return buildVCLine(toVCDatapoints(dps, name), { name: name, color: color }); +}; + +export const toVCLines = ( + metrics: Metric[], + unit: string, + colors: string[], + xAxis: XAxisType = 'time', +): VCLines => { + // In case "reporter" is in the labels, arrange the metrics in source-destination pairs to + // draw area charts. + if (metrics.length > 0 && metrics[0].labels?.reporter !== undefined) { + const pairedMetrics: { [key: string]: [Metric?, Metric?] } = {}; + metrics.forEach(metric => { + const reporter = metric.labels.reporter; + const labelsNoReporter = { ...metric.labels }; + delete labelsNoReporter.reporter; + let labelsStr = Object.keys(labelsNoReporter) + .map(k => `${k}=${labelsNoReporter[k]}`) + .sort((a, b) => a.localeCompare(b)) + .join(','); + labelsStr = `name=${metric.name},stat=${metric.stat}% ${labelsStr}`; + + if (!pairedMetrics[labelsStr]) { + pairedMetrics[labelsStr] = [undefined, undefined]; + } + + pairedMetrics[labelsStr][reporter === 'source' ? 0 : 1] = metric; + }); + + return Object.values(pairedMetrics).map((twoLines, i) => { + const color = colors[i % colors.length]; + + let datapoints: Datapoint[] = []; + let name: string = ''; + if (twoLines[0] !== undefined && twoLines[1] !== undefined) { + name = twoLines[0].name; + const minDatapointsLength = + twoLines[0].datapoints.length < twoLines[1].datapoints.length + ? twoLines[0].datapoints.length + : twoLines[1].datapoints.length; + + for ( + let j = 0, sourceIdx = 0, destIdx = 0; + j < minDatapointsLength; + j++ + ) { + if ( + twoLines[0].datapoints[sourceIdx][0] !== + twoLines[1].datapoints[destIdx][0] + ) { + // Usually, all series have the same samples at same timestamps (i.e. series are time synced or synced on the x axis). + // There are rare cases when there are some additional samples usually at the beginning or end of some series. + // If this happens, let's skip these additional samples, to have properly x-axis synced values. + if ( + twoLines[0].datapoints[sourceIdx][0] < + twoLines[1].datapoints[destIdx][0] + ) { + sourceIdx++; + } else { + destIdx++; + } + continue; + } + + datapoints.push([ + twoLines[0].datapoints[sourceIdx][0], + twoLines[0].datapoints[sourceIdx][1], + twoLines[1].datapoints[destIdx][1], + ]); + sourceIdx++; + destIdx++; + } + } else if (twoLines[0] !== undefined) { + // Assign zero value to "y0" to denote "no data" for the destination reporter + name = twoLines[0].name; + datapoints = twoLines[0].datapoints.map(d => [d[0], d[1], 0]); + } else if (twoLines[1] !== undefined) { + // Assign zero value to "y" to denote "no data" for the source reporter + name = twoLines[1].name; + datapoints = twoLines[1].datapoints.map(d => [d[0], 0, d[1]]); + } + + const dps = + xAxis === 'time' + ? toVCDatapoints(datapoints, name) + : toVCSinglePoint(datapoints, name); + return buildVCLine(dps, { name: name, unit: unit, color: color }); + }); + } + + return metrics.map((line, i) => { + const color = colors[i % colors.length]; + const dps = + xAxis === 'time' + ? toVCDatapoints(line.datapoints, line.name) + : toVCSinglePoint(line.datapoints, line.name); + return buildVCLine(dps, { name: line.name, unit: unit, color: color }); + }); +}; + +export const getDataSupplier = ( + chart: ChartModel, + labels: LabelsInfo, + colors: string[], +): (() => VCLines) => { + return () => { + const filtered = filterAndRenameMetric(chart.metrics, labels); + return toVCLines(filtered, chart.unit, colors, chart.xAxis || 'time'); + }; +}; + +// toBuckets accumulates datapoints into bukets. +// The result is still a (smaller) list of VCDataPoints, but with Y value being an array of values instead of a single value. +// This data structure is required by VictoryBoxPlot object. +export const toBuckets = ( + nbuckets: number, + datapoints: VCDataPoint[], + lineInfo: T, + timeWindow?: [Date, Date], +): (T & BucketDataPoint)[] => { + if (datapoints.length === 0) { + return []; + } + // xBuilder will preserve X-axis type when building buckets (either dates or raw numbers) + const xBuilder: (x: number) => number | Date = + typeof datapoints[0].x === 'object' ? x => new Date(x) : x => x; + + let min = 0; + let max = 0; + if (timeWindow) { + min = timeWindow[0].getTime(); + max = timeWindow[1].getTime(); + } else { + const times = datapoints.map(dp => Number(dp.x)); + min = Math.min(...times); + max = Math.max(...times); + } + const bucketSize = (1 + max - min) / nbuckets; + // Create $nbuckets buckets at regular intervals with preset / static content $dpInject + const buckets: (T & BucketDataPoint)[] = Array.from( + { length: nbuckets }, + (_, idx) => { + const start = Math.floor(min + idx * bucketSize); + const end = Math.floor(start + bucketSize - 1); + return { + ...lineInfo, + start: xBuilder(start), + end: xBuilder(end), + x: xBuilder(Math.floor(start + bucketSize / 2)), + y: [], + }; + }, + ); + datapoints.forEach(dp => { + // Get bucket index from timestamp + const idx = Math.floor((Number(dp.x) - min) / bucketSize); + // This index might be out of range when a timeWindow is provided, so protect against that + if (idx >= 0 && idx < buckets.length) { + buckets[idx].y.push(dp.y); + } + }); + return buckets.filter(b => b.y.length > 0); +}; + +export const toOverlay = ( + info: OverlayInfo, + dps: VCDataPoint[], +): Overlay => { + return { + info: info, + vcLine: buildVCLine(dps, info.lineInfo), + }; +}; diff --git a/workspaces/kiali/plugins/kiali/src/utils/VictoryEvents.ts b/workspaces/kiali/plugins/kiali/src/utils/VictoryEvents.ts new file mode 100644 index 0000000000..1fb806ed81 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/utils/VictoryEvents.ts @@ -0,0 +1,108 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { LineInfo, RawOrBucket } from '../types/VictoryChartInfo'; + +interface EventItem { + legendName: string; + idx: number; + serieID: string[]; + onClick?: ( + props: RawOrBucket, + ) => Partial> | null; + onMouseOver?: ( + props: RawOrBucket, + ) => Partial> | null; + onMouseOut?: ( + props: RawOrBucket, + ) => Partial> | null; +} + +export type VCEvent = { + childName?: string[]; + target: string; + eventKey?: string; + eventHandlers: EventHandlers; +}; + +type EventHandlers = { + onClick?: (event: MouseEvent) => EventMutation[]; + onMouseOver?: (event: MouseEvent) => EventMutation[]; + onMouseOut?: (event: MouseEvent) => EventMutation[]; +}; + +type EventMutation = { + childName: string[]; + target: string; + mutation: ( + props: RawOrBucket, + ) => Partial> | null; +}; + +export const addLegendEvent = (events: VCEvent[], item: EventItem): void => { + const eventHandlers: EventHandlers = {}; + if (item.onClick) { + eventHandlers.onClick = e => { + e.stopPropagation(); + return [ + { + childName: [item.serieID[0]], + target: 'data', + mutation: props => item.onClick!(props), + }, + { + childName: [item.serieID[0]], + target: 'data', + eventKey: 'all', + mutation: () => null, + }, + ]; + }; + } + if (item.onMouseOver) { + eventHandlers.onMouseOver = () => { + return [ + { + childName: item.serieID, + target: 'data', + eventKey: 'all', + mutation: props => item.onMouseOver!(props), + }, + ]; + }; + eventHandlers.onMouseOut = () => { + return [ + { + childName: item.serieID, + target: 'data', + eventKey: 'all', + mutation: props => (item.onMouseOut ? item.onMouseOut(props) : null), + }, + ]; + }; + } + events.push({ + childName: [item.legendName], + target: 'data', + eventKey: String(item.idx), + eventHandlers: eventHandlers, + }); + events.push({ + childName: [item.legendName], + target: 'labels', + eventKey: String(item.idx), + eventHandlers: eventHandlers, + }); +}; diff --git a/workspaces/kiali/plugins/kiali/src/utils/backstageLinks.tsx b/workspaces/kiali/plugins/kiali/src/utils/backstageLinks.tsx new file mode 100644 index 0000000000..e3be3d9fa9 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/utils/backstageLinks.tsx @@ -0,0 +1,122 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import * as React from 'react'; + +import { Link } from '@backstage/core-components'; +import { + RouteFunc, + SubRouteRef, + useRouteRef, +} from '@backstage/core-plugin-api'; + +import { isMultiCluster } from '../config'; +import { + appDetailRouteRef, + appsRouteRef, + istioConfigDetailRouteRef, + istioConfigRouteRef, + rootRouteRef, + servicesDetailRouteRef, + servicesRouteRef, + workloadsDetailRouteRef, + workloadsRouteRef, +} from '../routes'; + +type routeRefParams = undefined | { [key: string]: string }; +export const backstageRoutesObject: { + [key: string]: { id: string; ref: SubRouteRef }; +} = { + workloads: { id: 'workload', ref: workloadsDetailRouteRef }, + services: { id: 'service', ref: servicesDetailRouteRef }, + applications: { id: 'app', ref: appDetailRouteRef }, + istio: { id: 'object', ref: istioConfigDetailRouteRef }, +}; + +export const backstageRoutesSection: { [key: string]: SubRouteRef } = { + istio: istioConfigRouteRef, + workloads: workloadsRouteRef, + services: servicesRouteRef, + applications: appsRouteRef, +}; + +const addQuery = (endpoint: string, cluster?: string, query?: string) => { + let queryParam = query; + if (cluster && isMultiCluster) { + queryParam += queryParam ? '&' : ''; + queryParam += `clusterName=${cluster}`; + } + return queryParam ? `${endpoint}?${queryParam}` : endpoint; +}; + +interface BackstageLinkProps { + cluster?: string; + key?: string; + className?: string; + entity?: boolean; + root?: boolean; + name?: string; + type: string; + namespace?: string; + objectType?: string; + query?: string; + children?: React.ReactNode; + onClick?: React.MouseEventHandler; +} + +const getRef = (type: string, entity?: boolean, root?: boolean) => { + if (entity && root) { + return rootRouteRef; + } + + if (!entity && root) { + return backstageRoutesSection[type]; + } + + return backstageRoutesObject[type].ref; +}; + +export const BackstageObjectLink = (props: BackstageLinkProps) => { + const { name, type, objectType, namespace, query, cluster } = props; + const link: RouteFunc = useRouteRef( + getRef(type, props.entity, props.root), + ); + let to = ''; + if (!props.root) { + const items: { [key: string]: string } = { namespace: namespace || '' }; + + if (type && name) { + items[backstageRoutesObject[type].id] = name; + } + if (objectType) { + items.objectType = objectType; + } + to = link(items); + } else { + to = link(); + } + const href = addQuery(to, cluster, query); + return ( + + {props.children || `${namespace}/${name}`} + + ); +}; diff --git a/workspaces/kiali/plugins/kiali/src/utils/entityFilter.ts b/workspaces/kiali/plugins/kiali/src/utils/entityFilter.ts new file mode 100644 index 0000000000..f61e04f134 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/utils/entityFilter.ts @@ -0,0 +1,80 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import { Entity } from '@backstage/catalog-model'; + +import { + KIALI_ANNOTATION, + KIALI_LABEL_SELECTOR_QUERY_ANNOTATION, + KIALI_NAMESPACE, +} from '../components/Router'; +import { Namespace } from '../types/Namespace'; + +const filterById = (ns: Namespace[], value: string): Namespace[] => { + const values = value.split(','); + return ns.filter( + n => n.labels && values.includes(n.labels[KIALI_ANNOTATION]), + ); +}; + +const filterBySelector = (ns: Namespace[], value: string): Namespace[] => { + const values = value.split(','); + return ns.filter( + n => + values.filter(v => { + const [key, valueLabel] = v.split('='); + return n.labels && n.labels[key] === valueLabel; + }).length > 0, + ); +}; + +const filterByNs = (ns: Namespace[], value: string): Namespace[] => { + const values = value.split(','); + return ns.filter(n => values.includes(n.name)); +}; + +export const filterNsByAnnotation = ( + ns: Namespace[], + entity: Entity | undefined, +): Namespace[] => { + if (!entity) { + return ns; + } + const annotations = entity?.metadata?.annotations || undefined; + if (!annotations) { + return []; + } + + let nsFilter = ns; + nsFilter = annotations[KIALI_ANNOTATION] + ? filterById(nsFilter, decodeURIComponent(annotations[KIALI_ANNOTATION])) + : nsFilter; + nsFilter = annotations[KIALI_LABEL_SELECTOR_QUERY_ANNOTATION] + ? filterBySelector( + nsFilter, + decodeURIComponent(annotations[KIALI_LABEL_SELECTOR_QUERY_ANNOTATION]), + ) + : nsFilter; + nsFilter = annotations[KIALI_NAMESPACE] + ? filterByNs(nsFilter, decodeURIComponent(annotations[KIALI_NAMESPACE])) + : nsFilter; + return nsFilter; +}; + +export const exportedForTesting = { + filterById, + filterBySelector, + filterByNs, +}; diff --git a/workspaces/kiali/plugins/kiali/src/utils/tracing/TraceTransform.ts b/workspaces/kiali/plugins/kiali/src/utils/tracing/TraceTransform.ts new file mode 100644 index 0000000000..bb121f2f97 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/utils/tracing/TraceTransform.ts @@ -0,0 +1,348 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import _isEqual from 'lodash/isEqual'; + +import { + JaegerTrace, + KeyValuePair, + RichSpanData, + Span, + SpanData, + TraceData, +} from '../../types/TracingInfo'; +import { extractSpanInfo, getWorkloadFromSpan } from './TracingHelper'; + +class TreeNode { + value: string; + children: any[]; + + static iterFunction( + fn: (arg0: any, arg1: any, arg2: number) => any, + depth = 0, + ) { + return (node: { value: any }) => fn(node.value, node, depth); + } + + static searchFunction(search: any) { + if (typeof search === 'function') { + return search; + } + + return (value: any, node: TreeNode) => + search instanceof TreeNode ? node === search : value === search; + } + + constructor(value: string, children = []) { + this.value = value; + this.children = children; + } + + get depth() { + return this.children.reduce( + (depth, child) => Math.max(child.depth + 1, depth), + 1, + ); + } + + get size() { + let i = 0; + this.walk(() => i++); + return i; + } + + addChild(child: string) { + // @ts-ignore + this.children.push(child instanceof TreeNode ? child : new TreeNode(child)); + return this; + } + + find(search: any) { + const searchFn = TreeNode.iterFunction(TreeNode.searchFunction(search)); + if (searchFn(this)) { + return this; + } + for (let i = 0; i < this.children.length; i++) { + const result = this.children[i].find(search); + if (result) { + return result; + } + } + return null; + } + + getPath(search: any) { + const searchFn = TreeNode.iterFunction(TreeNode.searchFunction(search)); + + // @ts-ignore + const findPath = (currentNode, currentPath) => { + // skip if we already found the result + const attempt = currentPath.concat([currentNode]); + // base case: return the array when there is a match + if (searchFn(currentNode)) { + return attempt; + } + for (let i = 0; i < currentNode.children.length; i++) { + const child = currentNode.children[i]; + // @ts-ignore + const match = findPath(child, attempt); + if (match) { + return match; + } + } + return null; + }; + + return findPath(this, []); + } + + walk( + fn: { + (): number; + (spanID: string, node: TreeNode, depth?: number): void; + (arg0: any, arg1: any, arg2: any): void; + }, + depth = 0, + ) { + const nodeStack: any[] = []; + let actualDepth = depth; + nodeStack.push({ node: this, depth: actualDepth }); + while (nodeStack.length) { + const { node, depth: nodeDepth } = nodeStack.pop(); + fn(node.value, node, nodeDepth); + actualDepth = nodeDepth + 1; + let i = node.children.length - 1; + while (i >= 0) { + nodeStack.push({ node: node.children[i], depth: actualDepth }); + i--; + } + } + } +} + +function deduplicateTags(spanTags: Array) { + const warningsHash: Map = new Map(); + const tags: Array = spanTags.reduce>( + (uniqueTags, tag) => { + if (!uniqueTags.some(t => t.key === tag.key && t.value === tag.value)) { + uniqueTags.push(tag); + } else { + warningsHash.set( + `${tag.key}:${tag.value}`, + `Duplicate tag "${tag.key}:${tag.value}"`, + ); + } + return uniqueTags; + }, + [], + ); + const warnings = Array.from(warningsHash.values()); + return { tags, warnings }; +} + +export const TREE_ROOT_ID = '__root__'; + +export const spansSort = (a: SpanData, b: SpanData) => + +(a.startTime > b.startTime) || +(a.startTime === b.startTime) - 1; + +export function getTraceSpanIdsAsTree(trace: TraceData) { + const nodesById = new Map( + trace.spans.map(span => [span.spanID, new TreeNode(span.spanID)]), + ); + const spansById = new Map(trace.spans.map(span => [span.spanID, span])); + const root = new TreeNode(TREE_ROOT_ID); + trace.spans.forEach(span => { + const node = nodesById.get(span.spanID); + if (Array.isArray(span.references) && span.references.length) { + const { refType, spanID: parentID } = span.references[0]; + if (refType === 'CHILD_OF' || refType === 'FOLLOWS_FROM') { + const parent = nodesById.get(parentID) || root; + parent.children.push(node); + } else { + throw new Error(`Unrecognized ref type: ${refType}`); + } + } else { + root.children.push(node); + } + }); + const comparator = (a: { value: string }, b: { value: string }) => + spansSort(spansById.get(a.value)!, spansById.get(b.value)!); + trace.spans.forEach(span => { + const node: any = nodesById.get(span.spanID); + if (node.children.length > 1) { + node.children.sort(comparator); + } + }); + root.children.sort(comparator); + return root; +} + +// Extracts some information from a span to make it suitable for table-display +export const transformSpanData = ( + span: Span, + cluster?: string, +): RichSpanData => { + span.warnings = span.warnings || []; + span.tags = span.tags || []; + span.references = span.references || []; + const tagsInfo = deduplicateTags(span.tags); + span.tags = tagsInfo.tags; + span.warnings = span.warnings.concat(tagsInfo.warnings); + const { type, info } = extractSpanInfo(span); + const workloadNs = getWorkloadFromSpan(span); + + const split = span.process.serviceName.split('.'); + const app = split[0]; + // eslint-disable-next-line no-nested-ternary + const namespace = workloadNs + ? workloadNs.namespace + : split.length > 1 + ? split[1] + : undefined; + + const linkToApp = namespace + ? `/namespaces/${namespace}/applications/${app}` + : undefined; + const linkToWorkload = workloadNs + ? `/namespaces/${workloadNs.namespace}/workloads/${workloadNs.workload}` + : undefined; + return { + ...span, + type: type, + info: info, + component: info.component || 'unknown', + namespace: namespace || 'unknown', + app: app, + linkToApp: linkToApp, + workload: workloadNs?.workload, + pod: workloadNs?.pod, + linkToWorkload: linkToWorkload, + cluster: cluster, + }; +}; + +/** + * NOTE: Mutates `data` - Transform the HTTP response data into the form the app + * generally requires. + */ +export function transformTraceData( + data: TraceData, + cluster?: string, +): JaegerTrace | null { + let { traceID } = data; + if (!traceID) { + return null; + } + traceID = traceID.toLocaleLowerCase('en-US'); + + let traceEndTime = 0; + let traceStartTime = Number.MAX_SAFE_INTEGER; + const spanIdCounts = new Map(); + const spanMap = new Map(); + // filter out spans with empty start times + // eslint-disable-next-line no-param-reassign + data.spans = data.spans.filter(span => Boolean(span.startTime)); + + const max = data.spans.length; + for (let i = 0; i < max; i++) { + const span: Span = data.spans[i] as Span; + const { startTime, duration, processID } = span; + // + let spanID = span.spanID; + // check for start / end time for the trace + if (startTime < traceStartTime) { + traceStartTime = startTime; + } + if (startTime + duration > traceEndTime) { + traceEndTime = startTime + duration; + } + // make sure span IDs are unique + const idCount = spanIdCounts.get(spanID); + if (idCount !== null) { + // eslint-disable-next-line no-console + console.warn( + `Dupe spanID, ${idCount + 1} x ${spanID}`, + span, + spanMap.get(spanID), + ); + if (_isEqual(span, spanMap.get(spanID))) { + // eslint-disable-next-line no-console + console.warn('\t two spans with same ID have `isEqual(...) === true`'); + } + spanIdCounts.set(spanID, idCount + 1); + spanID = `${spanID}_${idCount}`; + span.spanID = spanID; + } else { + spanIdCounts.set(spanID, 1); + } + // For otel format traces + if (typeof data.processes[processID] !== 'undefined') { + span.process = data.processes[processID]; + } + + spanMap.set(spanID, transformSpanData(span, cluster)); + } + // tree is necessary to sort the spans, so children follow parents, and + // siblings are sorted by start time + const tree = getTraceSpanIdsAsTree(data); + const spans: RichSpanData[] = []; + const svcCounts: Record = {}; + let traceName = ''; + + // @ts-ignore + tree.walk((spanID: string, node: TreeNode, depth: number = 0) => { + if (spanID === '__root__') { + return; + } + const span = spanMap.get(spanID); + if (!span) { + return; + } + const { serviceName } = span.process; + svcCounts[serviceName] = (svcCounts[serviceName] || 0) + 1; + if ((!span.references || !span.references.length) && traceName === '') { + traceName = span.operationName; + } + span.relativeStartTime = span.startTime - traceStartTime; + span.depth = depth - 1; + span.hasChildren = node.children.length > 0; + span.references.forEach(ref => { + const refSpan = spanMap.get(ref.spanID) as Span; + if (refSpan) { + // eslint-disable-next-line no-param-reassign + ref.span = refSpan; + } + }); + spans.push(span); + }); + const services = Object.keys(svcCounts).map(name => ({ + name, + numberOfSpans: svcCounts[name], + })); + return { + services, + spans, + traceID, + traceName, + // can't use spread operator for intersection types + // repl: https://goo.gl/4Z23MJ + // issue: https://github.com/facebook/flow/issues/1511 + processes: data.processes, + duration: traceEndTime - traceStartTime, + startTime: traceStartTime, + endTime: traceEndTime, + matched: data.matched, + }; +} diff --git a/workspaces/kiali/plugins/kiali/src/utils/tracing/TracingHelper.tsx b/workspaces/kiali/plugins/kiali/src/utils/tracing/TracingHelper.tsx new file mode 100644 index 0000000000..47f21bec75 --- /dev/null +++ b/workspaces/kiali/plugins/kiali/src/utils/tracing/TracingHelper.tsx @@ -0,0 +1,334 @@ +/* + * Copyright 2024 The Backstage Authors + * + * 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. + */ +import _round from 'lodash/round'; +import moment from 'moment'; + +import { retrieveTimeRange } from '../../components/Time/TimeRangeHelper'; +import { + DurationInSeconds, + durationToBounds, + guardTimeRange, +} from '../../types/Common'; +import { + EnvoySpanInfo, + JaegerTrace, + KeyValuePair, + OpenTracingBaseInfo, + OpenTracingHTTPInfo, + OpenTracingTCPInfo, + Span, +} from '../../types/TracingInfo'; +import { spansSort } from './TraceTransform'; + +export const defaultTracingDuration: DurationInSeconds = 600; + +export const isErrorTag = ({ key, value }: KeyValuePair) => + key === 'error' && (value === true || value === 'true'); + +export const getTimeRangeMicros = () => { + const range = retrieveTimeRange(); + // Convert any time range (like duration) to bounded from/to + const boundsMillis = guardTimeRange(range, durationToBounds, b => b); + // Not necessary, we know that guardTimeRange will always send a default + const defaultFrom = new Date().getTime() - defaultTracingDuration * 1000; + // Convert to microseconds + return { + from: boundsMillis.from ? boundsMillis.from * 1000 : defaultFrom * 1000, + to: boundsMillis.to ? boundsMillis.to * 1000 : undefined, + }; +}; + +type WorkloadAndNamespace = { + pod: string; + workload: string; + namespace: string; +}; + +const replicasetFromPodRegex = /^([a-z0-9-.]+)-[a-z0-9]+$/; + +// Pod template hash should be made of alphanum without vowels, '0', '1' and '3' +// (see https://github.com/kubernetes/kubernetes/blob/release-1.17/staging/src/k8s.io/apimachinery/pkg/util/rand/rand.go#L83) +const templateHashRegex = /^[bcdfghjklmnpqrstvwxz2456789]{6,16}$/; +const adjustWorkloadNameFromReplicaset = (replicaset: string): string => { + // This is a best effort to try to disambiguate deployment-like workloads versus replicaset-like workloads + // Workloads can be: + // - foo-fg65h9p7qj (deployment) + // - bar-replicaset (replicaset) + // In the first case, we want to keep "foo", but in the second case we need the whole "bar-replicaset" string. + // This is not 100% guaranteed, there's still a small chance that a replica set is wrongly seen as a deployment-like workload. + // That happens when: + // - it contains at least one dash '-' + // - AND the part after the last dash is: + // . between 6 and 16 characters long + // . AND compound exclusively of alphanums characters except vowels, '0', '1' and '3' + const parts = replicaset.split('-'); + if (parts.length < 2) { + return replicaset; + } + const templateHashCandidate = parts[parts.length - 1]; + if (templateHashRegex.test(templateHashCandidate)) { + return replicaset.substring( + 0, + replicaset.length - templateHashCandidate.length - 1, + ); + } + return replicaset; +}; + +const extractWorkloadFromPod = ( + pod: string, + ns: string, +): WorkloadAndNamespace | undefined => { + const result = replicasetFromPodRegex.exec(pod); + if (result && result.length === 2) { + return { + pod: pod, + workload: adjustWorkloadNameFromReplicaset(result[1]), + namespace: ns, + }; + } + return undefined; +}; + +export const getWorkloadFromSpan = ( + span: Span, +): WorkloadAndNamespace | undefined => { + const nodeKV = span.tags.find(tag => tag.key === 'node_id'); + if (nodeKV) { + // Example of node value: + // sidecar~172.17.0.20~ai-locals-6d8996bff-ztg6z.default~default.svc.cluster.local + const parts = nodeKV.value.split('~'); + if (parts.length < 3) { + return undefined; + } + const podWithNamespace = parts[2]; + const nsIdx = podWithNamespace.lastIndexOf('.'); + if (nsIdx >= 0) { + return extractWorkloadFromPod( + podWithNamespace.substring(0, nsIdx), + podWithNamespace.substring(nsIdx + 1), + ); + } + return undefined; + } + // Tag not found => try with 'hostname' in process' tags + const hostnameKV = span.process.tags.find(tag => tag.key === 'hostname'); + if (hostnameKV) { + const svcNs = span.process.serviceName.split('.'); + return extractWorkloadFromPod( + hostnameKV.value, + svcNs.length > 1 ? svcNs[1] : '', + ); + } + return undefined; +}; + +export const findParent = (span: Span): Span | undefined => { + if (Array.isArray(span.references)) { + const ref = span.references.find( + s => s.refType === 'CHILD_OF' || s.refType === 'FOLLOWS_FROM', + ); + return ref?.span || undefined; + } + return undefined; +}; + +export const findChildren = (span: Span, trace: JaegerTrace): Span[] => { + return trace.spans + .filter(s => findParent(s)?.spanID === span.spanID) + .sort(spansSort); +}; + +export const searchParentWorkload = ( + span: Span, +): WorkloadAndNamespace | undefined => { + const parent = findParent(span); + return parent ? getWorkloadFromSpan(parent) : undefined; +}; + +type AppAndNamespace = { app: string; namespace: string }; +export const getAppFromSpan = (span: Span): AppAndNamespace | undefined => { + const split = span.process.serviceName.split('.'); + return { app: split[0], namespace: split.length > 1 ? split[1] : '' }; +}; + +export const searchParentApp = (span: Span): AppAndNamespace | undefined => { + const parent = findParent(span); + return parent ? getAppFromSpan(parent) : undefined; +}; + +export const getSpanType = ( + span: Span, +): 'envoy' | 'http' | 'tcp' | 'unknown' => { + const component = span.tags.find(tag => tag.key === 'component'); + if (component?.value === 'proxy') { + return 'envoy'; + } + if (span.tags.some(t => t.key.startsWith('http.'))) { + return 'http'; + } + if (span.tags.some(t => t.key.startsWith('peer.'))) { + return 'tcp'; + } + return 'unknown'; +}; + +export const extractOpenTracingBaseInfo = (span: Span): OpenTracingBaseInfo => { + const info: OpenTracingBaseInfo = { hasError: false }; + span.tags.forEach(t => { + if (t.key === 'component') { + info.component = t.value; + } + if (isErrorTag(t)) { + info.hasError = true; + } + }); + return info; +}; + +export const extractOpenTracingHTTPInfo = (span: Span): OpenTracingHTTPInfo => { + // See https://github.com/opentracing/specification/blob/master/semantic_conventions.md + const info: OpenTracingHTTPInfo = extractOpenTracingBaseInfo(span); + span.tags.forEach(t => { + if (t.key === 'http.status_code') { + const val = parseInt(t.value, 10); + if (!isNaN(val) && val > 0) { + info.statusCode = val; + } + } else if (t.key === 'http.url') { + info.url = t.value; + } else if (t.key === 'http.method') { + info.method = t.value; + } else if (t.key === 'span.kind') { + if (t.value === 'client') { + info.direction = 'outbound'; + } else if (t.value === 'server') { + info.direction = 'inbound'; + } + } + }); + return info; +}; + +export const extractOpenTracingTCPInfo = (span: Span): OpenTracingTCPInfo => { + // See https://github.com/opentracing/specification/blob/master/semantic_conventions.md + const info: OpenTracingTCPInfo = extractOpenTracingBaseInfo(span); + span.tags.forEach(t => { + if (t.key === 'message_bus.destination') { + info.topic = t.value; + } else if (t.key === 'peer.address') { + info.peerAddress = t.value; + } else if (t.key === 'peer.hostname') { + info.peerHostname = t.value; + } else if (t.key === 'span.kind') { + if (t.value === 'producer' || t.value === 'client') { + info.direction = 'outbound'; + } else if (t.value === 'consumer' || t.value === 'server') { + info.direction = 'inbound'; + } + } + }); + return info; +}; + +export const extractEnvoySpanInfo = (span: Span): EnvoySpanInfo => { + const info: EnvoySpanInfo = extractOpenTracingHTTPInfo(span); + span.tags.forEach(t => { + if (t.key === 'response_flags') { + if (t.value !== '-') { + info.responseFlags = t.value; + } + } else if (t.key === 'upstream_cluster') { + const parts = (t.value as string).split('|'); + if (parts.length === 4) { + if (parts[0] === 'outbound') { + const svcParts = parts[3].split('.'); + if (svcParts.length === 5) { + info.direction = 'outbound'; + info.peer = { + name: svcParts[0], + namespace: svcParts[1], + kind: 'service', + }; + } + } else if (parts[0] === 'inbound') { + const wkdNs = searchParentWorkload(span); + if (wkdNs) { + info.direction = 'inbound'; + info.peer = { + name: wkdNs.workload, + namespace: wkdNs.namespace, + kind: 'workload', + }; + } + } + } + } + }); + return info; +}; + +export const extractSpanInfo = (span: Span) => { + const type = getSpanType(span); + const info = + // eslint-disable-next-line no-nested-ternary + type === 'envoy' + ? extractEnvoySpanInfo(span) + : // eslint-disable-next-line no-nested-ternary + type === 'http' + ? extractOpenTracingHTTPInfo(span) + : type === 'tcp' + ? extractOpenTracingTCPInfo(span) + : extractOpenTracingBaseInfo(span); + return { type: type, info: info }; +}; + +export const sameSpans = (a: Span[], b: Span[]): boolean => { + return a.map(s => s.spanID).join() === b.map(s => s.spanID).join(); +}; + +export function formatDuration(micros: number): string { + let d = micros / 1000; + let unit = 'ms'; + if (d >= 1000) { + unit = 's'; + d /= 1000; + } + return _round(d, 2) + unit; +} + +const TODAY = 'Today'; +const YESTERDAY = 'Yesterday'; + +export function formatRelativeDate(value: any, fullMonthName: boolean = false) { + const m = moment.isMoment(value) ? value : moment(value); + const monthFormat = fullMonthName ? 'MMMM' : 'MMM'; + const dt = new Date(); + if (dt.getFullYear() !== m.year()) { + return m.format(`${monthFormat} D, YYYY`); + } + const mMonth = m.month(); + const mDate = m.date(); + const date = dt.getDate(); + if (mMonth === dt.getMonth() && mDate === date) { + return TODAY; + } + dt.setDate(date - 1); + if (mMonth === dt.getMonth() && mDate === dt.getDate()) { + return YESTERDAY; + } + return m.format(`${monthFormat} D`); +} diff --git a/workspaces/kiali/yarn.lock b/workspaces/kiali/yarn.lock index 2ba932096c..892e942bf2 100644 --- a/workspaces/kiali/yarn.lock +++ b/workspaces/kiali/yarn.lock @@ -5,6 +5,13 @@ __metadata: version: 6 cacheKey: 8 +"@adobe/css-tools@npm:^4.4.0": + version: 4.4.1 + resolution: "@adobe/css-tools@npm:4.4.1" + checksum: bbded8a03c314afee0fb0b42922f664f437e0e2f0b86eeeb06dee9d02cd8fc958cf87aa3314952b00074e0b22fc5b8da23f45b61b6f8291c8aaa7cffc56a76e9 + languageName: node + linkType: hard + "@ampproject/remapping@npm:^2.2.0": version: 2.3.0 resolution: "@ampproject/remapping@npm:2.3.0" @@ -26,6 +33,17 @@ __metadata: languageName: node linkType: hard +"@apidevtools/json-schema-ref-parser@npm:^11.7.0": + version: 11.7.3 + resolution: "@apidevtools/json-schema-ref-parser@npm:11.7.3" + dependencies: + "@jsdevtools/ono": ^7.1.3 + "@types/json-schema": ^7.0.15 + js-yaml: ^4.1.0 + checksum: 3496edfb2c3d2f9a5a7a49795b4d560f1e4957015aef473775f4b5f2db55a4ddfb3778783401ddd24e7db2930a67a370fb8c68840d8bae0a2a581e0e57fc2f58 + languageName: node + linkType: hard + "@apidevtools/openapi-schemas@npm:^2.1.0": version: 2.1.0 resolution: "@apidevtools/openapi-schemas@npm:2.1.0" @@ -67,12 +85,114 @@ __metadata: languageName: node linkType: hard -"@asyncapi/specs@npm:^4.1.0": - version: 4.3.1 - resolution: "@asyncapi/specs@npm:4.3.1" +"@ardatan/sync-fetch@npm:^0.0.1": + version: 0.0.1 + resolution: "@ardatan/sync-fetch@npm:0.0.1" + dependencies: + node-fetch: ^2.6.1 + checksum: af39bdfb4c2b35bd2c6acc540a5e302730dae17e73d3a18cd1a4aa50c1c741cb1869dffdef1379c491da5ad2e3cfa2bf3a8064e6046c12b46c6a97f54f100a8d + languageName: node + linkType: hard + +"@asyncapi/avro-schema-parser@npm:^3.0.15": + version: 3.0.24 + resolution: "@asyncapi/avro-schema-parser@npm:3.0.24" + dependencies: + "@asyncapi/parser": ^3.1.0 + "@types/json-schema": ^7.0.11 + avsc: ^5.7.6 + checksum: 87d59d157c75e1000b813e386999d9a02553d58fcc1340c2a241f46d0a3638a32281d5136b360bc5065c20ea2ab1ae94fcc1227481eb0dcef5d7ea3396bd3e55 + languageName: node + linkType: hard + +"@asyncapi/openapi-schema-parser@npm:^3.0.15": + version: 3.0.24 + resolution: "@asyncapi/openapi-schema-parser@npm:3.0.24" + dependencies: + "@asyncapi/parser": ^3.1.0 + "@openapi-contrib/openapi-schema-to-json-schema": ~3.2.0 + ajv: ^8.11.0 + ajv-errors: ^3.0.0 + ajv-formats: ^2.1.1 + checksum: 35a443c30a01bd26923027bbf3c639056466917333c0a7882a66cbb2ec361c5dae2575eaf9bdbe847c424b7a518ec8325167f4770202abd07aa4d3b0394887e9 + languageName: node + linkType: hard + +"@asyncapi/parser@npm:^3.0.7, @asyncapi/parser@npm:^3.1.0, @asyncapi/parser@npm:^3.4.0": + version: 3.4.0 + resolution: "@asyncapi/parser@npm:3.4.0" + dependencies: + "@asyncapi/specs": ^6.8.0 + "@openapi-contrib/openapi-schema-to-json-schema": ~3.2.0 + "@stoplight/json": 3.21.0 + "@stoplight/json-ref-readers": ^1.2.2 + "@stoplight/json-ref-resolver": ^3.1.5 + "@stoplight/spectral-core": ^1.18.3 + "@stoplight/spectral-functions": ^1.7.2 + "@stoplight/spectral-parsers": ^1.0.2 + "@stoplight/spectral-ref-resolver": ^1.0.3 + "@stoplight/types": ^13.12.0 + "@types/json-schema": ^7.0.11 + "@types/urijs": ^1.19.19 + ajv: ^8.17.1 + ajv-errors: ^3.0.0 + ajv-formats: ^2.1.1 + avsc: ^5.7.5 + js-yaml: ^4.1.0 + jsonpath-plus: ^10.0.0 + node-fetch: 2.6.7 + checksum: 158eab3b910258ad3c66ebbf94a86bbab4c78d6b4fb0d62980a3bef0e33358f914790e8044c59ef34f6cd25e963d2e5d37e940fc340056c8e9fe14343c8f2ee8 + languageName: node + linkType: hard + +"@asyncapi/protobuf-schema-parser@npm:^3.2.4": + version: 3.4.0 + resolution: "@asyncapi/protobuf-schema-parser@npm:3.4.0" + dependencies: + "@asyncapi/parser": ^3.4.0 + "@types/protocol-buffers-schema": ^3.4.3 + protobufjs: ^7.4.0 + checksum: 6842c26cf5a2e03b68e83f89fb19529524057daa83aca1cfddd298494a9c729cd0bcabe0a159b56f5b2b14644c1a4906b6ce70714e58ec17ce587c928f84a96d + languageName: node + linkType: hard + +"@asyncapi/react-component@npm:1.3.1": + version: 1.3.1 + resolution: "@asyncapi/react-component@npm:1.3.1" + dependencies: + "@asyncapi/avro-schema-parser": ^3.0.15 + "@asyncapi/openapi-schema-parser": ^3.0.15 + "@asyncapi/parser": ^3.0.7 + "@asyncapi/protobuf-schema-parser": ^3.2.4 + highlight.js: ^10.7.2 + isomorphic-dompurify: ^0.13.0 + marked: ^4.0.14 + openapi-sampler: ^1.2.1 + use-resize-observer: ^8.0.0 + peerDependencies: + react: ">=16.8.0" + react-dom: ">=16.8.0" + checksum: d70992809223643e17bab39352d4fc31b188cd83f548e6ec16d9a638d448a96d1f52e4d9900c9e6a3070211ad6b9ddbb5e992e48445385dbf6cb4c5165d95dac + languageName: node + linkType: hard + +"@asyncapi/specs@npm:^6.8.0": + version: 6.8.0 + resolution: "@asyncapi/specs@npm:6.8.0" dependencies: "@types/json-schema": ^7.0.11 - checksum: 886f116550af884d1c0b73a35ec40ae18eb7169a9230658b7ddabf6e57bb1f148dedfbbf059e142354d6d8e2dd22839cc6990cae58f7f09d5c4d0d80c6c127a5 + checksum: 8a968a9fb842fa0facf4b727cca4e17792cca26b08f8df4f3c5e32a015a9e30c8a2651f76faaabf0933ec2796b9e6318fc7a8abb64a7a95930637ab3af2bebb4 + languageName: node + linkType: hard + +"@aws-crypto/crc32@npm:3.0.0": + version: 3.0.0 + resolution: "@aws-crypto/crc32@npm:3.0.0" + dependencies: + "@aws-crypto/util": ^3.0.0 + "@aws-sdk/types": ^3.222.0 + tslib: ^1.11.1 + checksum: 9fdb3e837fc54119b017ea34fd0a6d71d2c88075d99e1e818a5158e0ad30ced67ddbcc423a11ceeef6cc465ab5ffd91830acab516470b48237ca7abd51be9642 languageName: node linkType: hard @@ -127,7 +247,7 @@ __metadata: languageName: node linkType: hard -"@aws-crypto/sha256-js@npm:5.2.0, @aws-crypto/sha256-js@npm:^5.2.0": +"@aws-crypto/sha256-js@npm:5.2.0, @aws-crypto/sha256-js@npm:^5.0.0, @aws-crypto/sha256-js@npm:^5.2.0": version: 5.2.0 resolution: "@aws-crypto/sha256-js@npm:5.2.0" dependencies: @@ -147,7 +267,7 @@ __metadata: languageName: node linkType: hard -"@aws-crypto/util@npm:^5.2.0": +"@aws-crypto/util@npm:5.2.0, @aws-crypto/util@npm:^5.2.0": version: 5.2.0 resolution: "@aws-crypto/util@npm:5.2.0" dependencies: @@ -158,6 +278,17 @@ __metadata: languageName: node linkType: hard +"@aws-crypto/util@npm:^3.0.0": + version: 3.0.0 + resolution: "@aws-crypto/util@npm:3.0.0" + dependencies: + "@aws-sdk/types": ^3.222.0 + "@aws-sdk/util-utf8-browser": ^3.0.0 + tslib: ^1.11.1 + checksum: d29d5545048721aae3d60b236708535059733019a105f8a64b4e4a8eab7cf8dde1546dc56bff7de20d36140a4d1f0f4693e639c5732a7059273a7b1e56354776 + languageName: node + linkType: hard + "@aws-sdk/abort-controller@npm:^3.347.0": version: 3.370.0 resolution: "@aws-sdk/abort-controller@npm:3.370.0" @@ -169,669 +300,725 @@ __metadata: linkType: hard "@aws-sdk/client-codecommit@npm:^3.350.0": - version: 3.679.0 - resolution: "@aws-sdk/client-codecommit@npm:3.679.0" + version: 3.716.0 + resolution: "@aws-sdk/client-codecommit@npm:3.716.0" dependencies: "@aws-crypto/sha256-browser": 5.2.0 "@aws-crypto/sha256-js": 5.2.0 - "@aws-sdk/client-sso-oidc": 3.679.0 - "@aws-sdk/client-sts": 3.679.0 - "@aws-sdk/core": 3.679.0 - "@aws-sdk/credential-provider-node": 3.679.0 - "@aws-sdk/middleware-host-header": 3.679.0 - "@aws-sdk/middleware-logger": 3.679.0 - "@aws-sdk/middleware-recursion-detection": 3.679.0 - "@aws-sdk/middleware-user-agent": 3.679.0 - "@aws-sdk/region-config-resolver": 3.679.0 - "@aws-sdk/types": 3.679.0 - "@aws-sdk/util-endpoints": 3.679.0 - "@aws-sdk/util-user-agent-browser": 3.679.0 - "@aws-sdk/util-user-agent-node": 3.679.0 - "@smithy/config-resolver": ^3.0.9 - "@smithy/core": ^2.4.8 - "@smithy/fetch-http-handler": ^3.2.9 - "@smithy/hash-node": ^3.0.7 - "@smithy/invalid-dependency": ^3.0.7 - "@smithy/middleware-content-length": ^3.0.9 - "@smithy/middleware-endpoint": ^3.1.4 - "@smithy/middleware-retry": ^3.0.23 - "@smithy/middleware-serde": ^3.0.7 - "@smithy/middleware-stack": ^3.0.7 - "@smithy/node-config-provider": ^3.1.8 - "@smithy/node-http-handler": ^3.2.4 - "@smithy/protocol-http": ^4.1.4 - "@smithy/smithy-client": ^3.4.0 - "@smithy/types": ^3.5.0 - "@smithy/url-parser": ^3.0.7 + "@aws-sdk/client-sso-oidc": 3.716.0 + "@aws-sdk/client-sts": 3.716.0 + "@aws-sdk/core": 3.716.0 + "@aws-sdk/credential-provider-node": 3.716.0 + "@aws-sdk/middleware-host-header": 3.714.0 + "@aws-sdk/middleware-logger": 3.714.0 + "@aws-sdk/middleware-recursion-detection": 3.714.0 + "@aws-sdk/middleware-user-agent": 3.716.0 + "@aws-sdk/region-config-resolver": 3.714.0 + "@aws-sdk/types": 3.714.0 + "@aws-sdk/util-endpoints": 3.714.0 + "@aws-sdk/util-user-agent-browser": 3.714.0 + "@aws-sdk/util-user-agent-node": 3.716.0 + "@smithy/config-resolver": ^3.0.13 + "@smithy/core": ^2.5.5 + "@smithy/fetch-http-handler": ^4.1.2 + "@smithy/hash-node": ^3.0.11 + "@smithy/invalid-dependency": ^3.0.11 + "@smithy/middleware-content-length": ^3.0.13 + "@smithy/middleware-endpoint": ^3.2.6 + "@smithy/middleware-retry": ^3.0.31 + "@smithy/middleware-serde": ^3.0.11 + "@smithy/middleware-stack": ^3.0.11 + "@smithy/node-config-provider": ^3.1.12 + "@smithy/node-http-handler": ^3.3.2 + "@smithy/protocol-http": ^4.1.8 + "@smithy/smithy-client": ^3.5.1 + "@smithy/types": ^3.7.2 + "@smithy/url-parser": ^3.0.11 "@smithy/util-base64": ^3.0.0 "@smithy/util-body-length-browser": ^3.0.0 "@smithy/util-body-length-node": ^3.0.0 - "@smithy/util-defaults-mode-browser": ^3.0.23 - "@smithy/util-defaults-mode-node": ^3.0.23 - "@smithy/util-endpoints": ^2.1.3 - "@smithy/util-middleware": ^3.0.7 - "@smithy/util-retry": ^3.0.7 + "@smithy/util-defaults-mode-browser": ^3.0.31 + "@smithy/util-defaults-mode-node": ^3.0.31 + "@smithy/util-endpoints": ^2.1.7 + "@smithy/util-middleware": ^3.0.11 + "@smithy/util-retry": ^3.0.11 "@smithy/util-utf8": ^3.0.0 "@types/uuid": ^9.0.1 tslib: ^2.6.2 uuid: ^9.0.1 - checksum: c6606abdd76e183cbeae053c7c2193bf25a72dcd30dda3252bcb8e0ff216e52fcde8cfb7106d082643cdd734944d47ba3edcc0dbf41b1705f960e8fbefc6cdde + checksum: 12d1bdd501d4ccf4adb909b543906e9c9a55f80845e76844ae18f902861bfa0864043dce9d014a316ab8132fe0034ca5dd823022a8235dfb05d90010b0227253 languageName: node linkType: hard -"@aws-sdk/client-cognito-identity@npm:3.679.0": - version: 3.679.0 - resolution: "@aws-sdk/client-cognito-identity@npm:3.679.0" +"@aws-sdk/client-cognito-identity@npm:3.716.0": + version: 3.716.0 + resolution: "@aws-sdk/client-cognito-identity@npm:3.716.0" dependencies: "@aws-crypto/sha256-browser": 5.2.0 "@aws-crypto/sha256-js": 5.2.0 - "@aws-sdk/client-sso-oidc": 3.679.0 - "@aws-sdk/client-sts": 3.679.0 - "@aws-sdk/core": 3.679.0 - "@aws-sdk/credential-provider-node": 3.679.0 - "@aws-sdk/middleware-host-header": 3.679.0 - "@aws-sdk/middleware-logger": 3.679.0 - "@aws-sdk/middleware-recursion-detection": 3.679.0 - "@aws-sdk/middleware-user-agent": 3.679.0 - "@aws-sdk/region-config-resolver": 3.679.0 - "@aws-sdk/types": 3.679.0 - "@aws-sdk/util-endpoints": 3.679.0 - "@aws-sdk/util-user-agent-browser": 3.679.0 - "@aws-sdk/util-user-agent-node": 3.679.0 - "@smithy/config-resolver": ^3.0.9 - "@smithy/core": ^2.4.8 - "@smithy/fetch-http-handler": ^3.2.9 - "@smithy/hash-node": ^3.0.7 - "@smithy/invalid-dependency": ^3.0.7 - "@smithy/middleware-content-length": ^3.0.9 - "@smithy/middleware-endpoint": ^3.1.4 - "@smithy/middleware-retry": ^3.0.23 - "@smithy/middleware-serde": ^3.0.7 - "@smithy/middleware-stack": ^3.0.7 - "@smithy/node-config-provider": ^3.1.8 - "@smithy/node-http-handler": ^3.2.4 - "@smithy/protocol-http": ^4.1.4 - "@smithy/smithy-client": ^3.4.0 - "@smithy/types": ^3.5.0 - "@smithy/url-parser": ^3.0.7 + "@aws-sdk/client-sso-oidc": 3.716.0 + "@aws-sdk/client-sts": 3.716.0 + "@aws-sdk/core": 3.716.0 + "@aws-sdk/credential-provider-node": 3.716.0 + "@aws-sdk/middleware-host-header": 3.714.0 + "@aws-sdk/middleware-logger": 3.714.0 + "@aws-sdk/middleware-recursion-detection": 3.714.0 + "@aws-sdk/middleware-user-agent": 3.716.0 + "@aws-sdk/region-config-resolver": 3.714.0 + "@aws-sdk/types": 3.714.0 + "@aws-sdk/util-endpoints": 3.714.0 + "@aws-sdk/util-user-agent-browser": 3.714.0 + "@aws-sdk/util-user-agent-node": 3.716.0 + "@smithy/config-resolver": ^3.0.13 + "@smithy/core": ^2.5.5 + "@smithy/fetch-http-handler": ^4.1.2 + "@smithy/hash-node": ^3.0.11 + "@smithy/invalid-dependency": ^3.0.11 + "@smithy/middleware-content-length": ^3.0.13 + "@smithy/middleware-endpoint": ^3.2.6 + "@smithy/middleware-retry": ^3.0.31 + "@smithy/middleware-serde": ^3.0.11 + "@smithy/middleware-stack": ^3.0.11 + "@smithy/node-config-provider": ^3.1.12 + "@smithy/node-http-handler": ^3.3.2 + "@smithy/protocol-http": ^4.1.8 + "@smithy/smithy-client": ^3.5.1 + "@smithy/types": ^3.7.2 + "@smithy/url-parser": ^3.0.11 "@smithy/util-base64": ^3.0.0 "@smithy/util-body-length-browser": ^3.0.0 "@smithy/util-body-length-node": ^3.0.0 - "@smithy/util-defaults-mode-browser": ^3.0.23 - "@smithy/util-defaults-mode-node": ^3.0.23 - "@smithy/util-endpoints": ^2.1.3 - "@smithy/util-middleware": ^3.0.7 - "@smithy/util-retry": ^3.0.7 + "@smithy/util-defaults-mode-browser": ^3.0.31 + "@smithy/util-defaults-mode-node": ^3.0.31 + "@smithy/util-endpoints": ^2.1.7 + "@smithy/util-middleware": ^3.0.11 + "@smithy/util-retry": ^3.0.11 "@smithy/util-utf8": ^3.0.0 tslib: ^2.6.2 - checksum: 83c0106779135d2234653759b24179a0e2fcec4590f97b29a0c46d1f3dc0132ab029ad5550a0c73bb93f569975b6818830bf60a44806381b607f4190b3e1b088 + checksum: 644a3b4b347a234ac9ea595486fc9bd7497ac5f11e69320fc44b5a7c7565e4199a402a784be1a1bd84ac25be261fd4ca9c5495f2e28265b0c17fbac8d4d3ccdb languageName: node linkType: hard "@aws-sdk/client-s3@npm:^3.350.0": - version: 3.679.0 - resolution: "@aws-sdk/client-s3@npm:3.679.0" + version: 3.716.0 + resolution: "@aws-sdk/client-s3@npm:3.716.0" dependencies: "@aws-crypto/sha1-browser": 5.2.0 "@aws-crypto/sha256-browser": 5.2.0 "@aws-crypto/sha256-js": 5.2.0 - "@aws-sdk/client-sso-oidc": 3.679.0 - "@aws-sdk/client-sts": 3.679.0 - "@aws-sdk/core": 3.679.0 - "@aws-sdk/credential-provider-node": 3.679.0 - "@aws-sdk/middleware-bucket-endpoint": 3.679.0 - "@aws-sdk/middleware-expect-continue": 3.679.0 - "@aws-sdk/middleware-flexible-checksums": 3.679.0 - "@aws-sdk/middleware-host-header": 3.679.0 - "@aws-sdk/middleware-location-constraint": 3.679.0 - "@aws-sdk/middleware-logger": 3.679.0 - "@aws-sdk/middleware-recursion-detection": 3.679.0 - "@aws-sdk/middleware-sdk-s3": 3.679.0 - "@aws-sdk/middleware-ssec": 3.679.0 - "@aws-sdk/middleware-user-agent": 3.679.0 - "@aws-sdk/region-config-resolver": 3.679.0 - "@aws-sdk/signature-v4-multi-region": 3.679.0 - "@aws-sdk/types": 3.679.0 - "@aws-sdk/util-endpoints": 3.679.0 - "@aws-sdk/util-user-agent-browser": 3.679.0 - "@aws-sdk/util-user-agent-node": 3.679.0 - "@aws-sdk/xml-builder": 3.679.0 - "@smithy/config-resolver": ^3.0.9 - "@smithy/core": ^2.4.8 - "@smithy/eventstream-serde-browser": ^3.0.10 - "@smithy/eventstream-serde-config-resolver": ^3.0.7 - "@smithy/eventstream-serde-node": ^3.0.9 - "@smithy/fetch-http-handler": ^3.2.9 - "@smithy/hash-blob-browser": ^3.1.6 - "@smithy/hash-node": ^3.0.7 - "@smithy/hash-stream-node": ^3.1.6 - "@smithy/invalid-dependency": ^3.0.7 - "@smithy/md5-js": ^3.0.7 - "@smithy/middleware-content-length": ^3.0.9 - "@smithy/middleware-endpoint": ^3.1.4 - "@smithy/middleware-retry": ^3.0.23 - "@smithy/middleware-serde": ^3.0.7 - "@smithy/middleware-stack": ^3.0.7 - "@smithy/node-config-provider": ^3.1.8 - "@smithy/node-http-handler": ^3.2.4 - "@smithy/protocol-http": ^4.1.4 - "@smithy/smithy-client": ^3.4.0 - "@smithy/types": ^3.5.0 - "@smithy/url-parser": ^3.0.7 + "@aws-sdk/client-sso-oidc": 3.716.0 + "@aws-sdk/client-sts": 3.716.0 + "@aws-sdk/core": 3.716.0 + "@aws-sdk/credential-provider-node": 3.716.0 + "@aws-sdk/middleware-bucket-endpoint": 3.714.0 + "@aws-sdk/middleware-expect-continue": 3.714.0 + "@aws-sdk/middleware-flexible-checksums": 3.716.0 + "@aws-sdk/middleware-host-header": 3.714.0 + "@aws-sdk/middleware-location-constraint": 3.714.0 + "@aws-sdk/middleware-logger": 3.714.0 + "@aws-sdk/middleware-recursion-detection": 3.714.0 + "@aws-sdk/middleware-sdk-s3": 3.716.0 + "@aws-sdk/middleware-ssec": 3.714.0 + "@aws-sdk/middleware-user-agent": 3.716.0 + "@aws-sdk/region-config-resolver": 3.714.0 + "@aws-sdk/signature-v4-multi-region": 3.716.0 + "@aws-sdk/types": 3.714.0 + "@aws-sdk/util-endpoints": 3.714.0 + "@aws-sdk/util-user-agent-browser": 3.714.0 + "@aws-sdk/util-user-agent-node": 3.716.0 + "@aws-sdk/xml-builder": 3.709.0 + "@smithy/config-resolver": ^3.0.13 + "@smithy/core": ^2.5.5 + "@smithy/eventstream-serde-browser": ^3.0.14 + "@smithy/eventstream-serde-config-resolver": ^3.0.11 + "@smithy/eventstream-serde-node": ^3.0.13 + "@smithy/fetch-http-handler": ^4.1.2 + "@smithy/hash-blob-browser": ^3.1.10 + "@smithy/hash-node": ^3.0.11 + "@smithy/hash-stream-node": ^3.1.10 + "@smithy/invalid-dependency": ^3.0.11 + "@smithy/md5-js": ^3.0.11 + "@smithy/middleware-content-length": ^3.0.13 + "@smithy/middleware-endpoint": ^3.2.6 + "@smithy/middleware-retry": ^3.0.31 + "@smithy/middleware-serde": ^3.0.11 + "@smithy/middleware-stack": ^3.0.11 + "@smithy/node-config-provider": ^3.1.12 + "@smithy/node-http-handler": ^3.3.2 + "@smithy/protocol-http": ^4.1.8 + "@smithy/smithy-client": ^3.5.1 + "@smithy/types": ^3.7.2 + "@smithy/url-parser": ^3.0.11 "@smithy/util-base64": ^3.0.0 "@smithy/util-body-length-browser": ^3.0.0 "@smithy/util-body-length-node": ^3.0.0 - "@smithy/util-defaults-mode-browser": ^3.0.23 - "@smithy/util-defaults-mode-node": ^3.0.23 - "@smithy/util-endpoints": ^2.1.3 - "@smithy/util-middleware": ^3.0.7 - "@smithy/util-retry": ^3.0.7 - "@smithy/util-stream": ^3.1.9 + "@smithy/util-defaults-mode-browser": ^3.0.31 + "@smithy/util-defaults-mode-node": ^3.0.31 + "@smithy/util-endpoints": ^2.1.7 + "@smithy/util-middleware": ^3.0.11 + "@smithy/util-retry": ^3.0.11 + "@smithy/util-stream": ^3.3.2 "@smithy/util-utf8": ^3.0.0 - "@smithy/util-waiter": ^3.1.6 + "@smithy/util-waiter": ^3.2.0 tslib: ^2.6.2 - checksum: aae7460b4ba3b40e0b163a6740922a914ec37085a7f274c3b5f86c8eb6344d7c4385f6c253c4bf7819774709abbd072069d450e3bf8aae30197329db47306d04 + checksum: 826cd847e81588746090402a52c06eac9c3de39aa98f7142d99e82845536ea20525679f58cfe2588c228453822da7169a7c46ff2ec00d50d0d9f555679fdceac languageName: node linkType: hard -"@aws-sdk/client-sso-oidc@npm:3.679.0": - version: 3.679.0 - resolution: "@aws-sdk/client-sso-oidc@npm:3.679.0" +"@aws-sdk/client-sso-oidc@npm:3.716.0": + version: 3.716.0 + resolution: "@aws-sdk/client-sso-oidc@npm:3.716.0" dependencies: "@aws-crypto/sha256-browser": 5.2.0 "@aws-crypto/sha256-js": 5.2.0 - "@aws-sdk/core": 3.679.0 - "@aws-sdk/credential-provider-node": 3.679.0 - "@aws-sdk/middleware-host-header": 3.679.0 - "@aws-sdk/middleware-logger": 3.679.0 - "@aws-sdk/middleware-recursion-detection": 3.679.0 - "@aws-sdk/middleware-user-agent": 3.679.0 - "@aws-sdk/region-config-resolver": 3.679.0 - "@aws-sdk/types": 3.679.0 - "@aws-sdk/util-endpoints": 3.679.0 - "@aws-sdk/util-user-agent-browser": 3.679.0 - "@aws-sdk/util-user-agent-node": 3.679.0 - "@smithy/config-resolver": ^3.0.9 - "@smithy/core": ^2.4.8 - "@smithy/fetch-http-handler": ^3.2.9 - "@smithy/hash-node": ^3.0.7 - "@smithy/invalid-dependency": ^3.0.7 - "@smithy/middleware-content-length": ^3.0.9 - "@smithy/middleware-endpoint": ^3.1.4 - "@smithy/middleware-retry": ^3.0.23 - "@smithy/middleware-serde": ^3.0.7 - "@smithy/middleware-stack": ^3.0.7 - "@smithy/node-config-provider": ^3.1.8 - "@smithy/node-http-handler": ^3.2.4 - "@smithy/protocol-http": ^4.1.4 - "@smithy/smithy-client": ^3.4.0 - "@smithy/types": ^3.5.0 - "@smithy/url-parser": ^3.0.7 + "@aws-sdk/core": 3.716.0 + "@aws-sdk/credential-provider-node": 3.716.0 + "@aws-sdk/middleware-host-header": 3.714.0 + "@aws-sdk/middleware-logger": 3.714.0 + "@aws-sdk/middleware-recursion-detection": 3.714.0 + "@aws-sdk/middleware-user-agent": 3.716.0 + "@aws-sdk/region-config-resolver": 3.714.0 + "@aws-sdk/types": 3.714.0 + "@aws-sdk/util-endpoints": 3.714.0 + "@aws-sdk/util-user-agent-browser": 3.714.0 + "@aws-sdk/util-user-agent-node": 3.716.0 + "@smithy/config-resolver": ^3.0.13 + "@smithy/core": ^2.5.5 + "@smithy/fetch-http-handler": ^4.1.2 + "@smithy/hash-node": ^3.0.11 + "@smithy/invalid-dependency": ^3.0.11 + "@smithy/middleware-content-length": ^3.0.13 + "@smithy/middleware-endpoint": ^3.2.6 + "@smithy/middleware-retry": ^3.0.31 + "@smithy/middleware-serde": ^3.0.11 + "@smithy/middleware-stack": ^3.0.11 + "@smithy/node-config-provider": ^3.1.12 + "@smithy/node-http-handler": ^3.3.2 + "@smithy/protocol-http": ^4.1.8 + "@smithy/smithy-client": ^3.5.1 + "@smithy/types": ^3.7.2 + "@smithy/url-parser": ^3.0.11 "@smithy/util-base64": ^3.0.0 "@smithy/util-body-length-browser": ^3.0.0 "@smithy/util-body-length-node": ^3.0.0 - "@smithy/util-defaults-mode-browser": ^3.0.23 - "@smithy/util-defaults-mode-node": ^3.0.23 - "@smithy/util-endpoints": ^2.1.3 - "@smithy/util-middleware": ^3.0.7 - "@smithy/util-retry": ^3.0.7 + "@smithy/util-defaults-mode-browser": ^3.0.31 + "@smithy/util-defaults-mode-node": ^3.0.31 + "@smithy/util-endpoints": ^2.1.7 + "@smithy/util-middleware": ^3.0.11 + "@smithy/util-retry": ^3.0.11 "@smithy/util-utf8": ^3.0.0 tslib: ^2.6.2 peerDependencies: - "@aws-sdk/client-sts": ^3.679.0 - checksum: b88beb025782a4515d7477d184e0f4dec82e00cd8ac45d335e74f41de77d7b9b19652e75d7f8992606ec2caa54c7368e3ebee22f9c5a309fe7cc1fa1f3a00a28 + "@aws-sdk/client-sts": ^3.716.0 + checksum: 8e64d3a00083ce1b13cfda1c86d66d7eece0f8c62264d6f55e7819687b3fbc870a7b012e169bd42223e28c696ded419c54fe81501f27b6360b6e6b3189025619 languageName: node linkType: hard -"@aws-sdk/client-sso@npm:3.679.0": - version: 3.679.0 - resolution: "@aws-sdk/client-sso@npm:3.679.0" +"@aws-sdk/client-sso@npm:3.716.0": + version: 3.716.0 + resolution: "@aws-sdk/client-sso@npm:3.716.0" dependencies: "@aws-crypto/sha256-browser": 5.2.0 "@aws-crypto/sha256-js": 5.2.0 - "@aws-sdk/core": 3.679.0 - "@aws-sdk/middleware-host-header": 3.679.0 - "@aws-sdk/middleware-logger": 3.679.0 - "@aws-sdk/middleware-recursion-detection": 3.679.0 - "@aws-sdk/middleware-user-agent": 3.679.0 - "@aws-sdk/region-config-resolver": 3.679.0 - "@aws-sdk/types": 3.679.0 - "@aws-sdk/util-endpoints": 3.679.0 - "@aws-sdk/util-user-agent-browser": 3.679.0 - "@aws-sdk/util-user-agent-node": 3.679.0 - "@smithy/config-resolver": ^3.0.9 - "@smithy/core": ^2.4.8 - "@smithy/fetch-http-handler": ^3.2.9 - "@smithy/hash-node": ^3.0.7 - "@smithy/invalid-dependency": ^3.0.7 - "@smithy/middleware-content-length": ^3.0.9 - "@smithy/middleware-endpoint": ^3.1.4 - "@smithy/middleware-retry": ^3.0.23 - "@smithy/middleware-serde": ^3.0.7 - "@smithy/middleware-stack": ^3.0.7 - "@smithy/node-config-provider": ^3.1.8 - "@smithy/node-http-handler": ^3.2.4 - "@smithy/protocol-http": ^4.1.4 - "@smithy/smithy-client": ^3.4.0 - "@smithy/types": ^3.5.0 - "@smithy/url-parser": ^3.0.7 + "@aws-sdk/core": 3.716.0 + "@aws-sdk/middleware-host-header": 3.714.0 + "@aws-sdk/middleware-logger": 3.714.0 + "@aws-sdk/middleware-recursion-detection": 3.714.0 + "@aws-sdk/middleware-user-agent": 3.716.0 + "@aws-sdk/region-config-resolver": 3.714.0 + "@aws-sdk/types": 3.714.0 + "@aws-sdk/util-endpoints": 3.714.0 + "@aws-sdk/util-user-agent-browser": 3.714.0 + "@aws-sdk/util-user-agent-node": 3.716.0 + "@smithy/config-resolver": ^3.0.13 + "@smithy/core": ^2.5.5 + "@smithy/fetch-http-handler": ^4.1.2 + "@smithy/hash-node": ^3.0.11 + "@smithy/invalid-dependency": ^3.0.11 + "@smithy/middleware-content-length": ^3.0.13 + "@smithy/middleware-endpoint": ^3.2.6 + "@smithy/middleware-retry": ^3.0.31 + "@smithy/middleware-serde": ^3.0.11 + "@smithy/middleware-stack": ^3.0.11 + "@smithy/node-config-provider": ^3.1.12 + "@smithy/node-http-handler": ^3.3.2 + "@smithy/protocol-http": ^4.1.8 + "@smithy/smithy-client": ^3.5.1 + "@smithy/types": ^3.7.2 + "@smithy/url-parser": ^3.0.11 "@smithy/util-base64": ^3.0.0 "@smithy/util-body-length-browser": ^3.0.0 "@smithy/util-body-length-node": ^3.0.0 - "@smithy/util-defaults-mode-browser": ^3.0.23 - "@smithy/util-defaults-mode-node": ^3.0.23 - "@smithy/util-endpoints": ^2.1.3 - "@smithy/util-middleware": ^3.0.7 - "@smithy/util-retry": ^3.0.7 + "@smithy/util-defaults-mode-browser": ^3.0.31 + "@smithy/util-defaults-mode-node": ^3.0.31 + "@smithy/util-endpoints": ^2.1.7 + "@smithy/util-middleware": ^3.0.11 + "@smithy/util-retry": ^3.0.11 "@smithy/util-utf8": ^3.0.0 tslib: ^2.6.2 - checksum: 5e84ec1e6ea2b3b60df37a6ec20e98af1ff7d5d5d053ef43a9c5860e9405983635695b022506fcbb01400be87e60519b052e85f331227fd2abdf478a87163876 + checksum: 7e238ba7428e9984339ef0aaf8483955cbf7a50fd960393788a11096128fd60d4d00fd488d295c0d044fd83ad7be6b2dda61ae62c5a964f9d94e985835ea23f0 languageName: node linkType: hard -"@aws-sdk/client-sts@npm:3.679.0, @aws-sdk/client-sts@npm:^3.350.0": - version: 3.679.0 - resolution: "@aws-sdk/client-sts@npm:3.679.0" +"@aws-sdk/client-sts@npm:3.716.0, @aws-sdk/client-sts@npm:^3.350.0": + version: 3.716.0 + resolution: "@aws-sdk/client-sts@npm:3.716.0" dependencies: "@aws-crypto/sha256-browser": 5.2.0 "@aws-crypto/sha256-js": 5.2.0 - "@aws-sdk/client-sso-oidc": 3.679.0 - "@aws-sdk/core": 3.679.0 - "@aws-sdk/credential-provider-node": 3.679.0 - "@aws-sdk/middleware-host-header": 3.679.0 - "@aws-sdk/middleware-logger": 3.679.0 - "@aws-sdk/middleware-recursion-detection": 3.679.0 - "@aws-sdk/middleware-user-agent": 3.679.0 - "@aws-sdk/region-config-resolver": 3.679.0 - "@aws-sdk/types": 3.679.0 - "@aws-sdk/util-endpoints": 3.679.0 - "@aws-sdk/util-user-agent-browser": 3.679.0 - "@aws-sdk/util-user-agent-node": 3.679.0 - "@smithy/config-resolver": ^3.0.9 - "@smithy/core": ^2.4.8 - "@smithy/fetch-http-handler": ^3.2.9 - "@smithy/hash-node": ^3.0.7 - "@smithy/invalid-dependency": ^3.0.7 - "@smithy/middleware-content-length": ^3.0.9 - "@smithy/middleware-endpoint": ^3.1.4 - "@smithy/middleware-retry": ^3.0.23 - "@smithy/middleware-serde": ^3.0.7 - "@smithy/middleware-stack": ^3.0.7 - "@smithy/node-config-provider": ^3.1.8 - "@smithy/node-http-handler": ^3.2.4 - "@smithy/protocol-http": ^4.1.4 - "@smithy/smithy-client": ^3.4.0 - "@smithy/types": ^3.5.0 - "@smithy/url-parser": ^3.0.7 + "@aws-sdk/client-sso-oidc": 3.716.0 + "@aws-sdk/core": 3.716.0 + "@aws-sdk/credential-provider-node": 3.716.0 + "@aws-sdk/middleware-host-header": 3.714.0 + "@aws-sdk/middleware-logger": 3.714.0 + "@aws-sdk/middleware-recursion-detection": 3.714.0 + "@aws-sdk/middleware-user-agent": 3.716.0 + "@aws-sdk/region-config-resolver": 3.714.0 + "@aws-sdk/types": 3.714.0 + "@aws-sdk/util-endpoints": 3.714.0 + "@aws-sdk/util-user-agent-browser": 3.714.0 + "@aws-sdk/util-user-agent-node": 3.716.0 + "@smithy/config-resolver": ^3.0.13 + "@smithy/core": ^2.5.5 + "@smithy/fetch-http-handler": ^4.1.2 + "@smithy/hash-node": ^3.0.11 + "@smithy/invalid-dependency": ^3.0.11 + "@smithy/middleware-content-length": ^3.0.13 + "@smithy/middleware-endpoint": ^3.2.6 + "@smithy/middleware-retry": ^3.0.31 + "@smithy/middleware-serde": ^3.0.11 + "@smithy/middleware-stack": ^3.0.11 + "@smithy/node-config-provider": ^3.1.12 + "@smithy/node-http-handler": ^3.3.2 + "@smithy/protocol-http": ^4.1.8 + "@smithy/smithy-client": ^3.5.1 + "@smithy/types": ^3.7.2 + "@smithy/url-parser": ^3.0.11 "@smithy/util-base64": ^3.0.0 "@smithy/util-body-length-browser": ^3.0.0 "@smithy/util-body-length-node": ^3.0.0 - "@smithy/util-defaults-mode-browser": ^3.0.23 - "@smithy/util-defaults-mode-node": ^3.0.23 - "@smithy/util-endpoints": ^2.1.3 - "@smithy/util-middleware": ^3.0.7 - "@smithy/util-retry": ^3.0.7 + "@smithy/util-defaults-mode-browser": ^3.0.31 + "@smithy/util-defaults-mode-node": ^3.0.31 + "@smithy/util-endpoints": ^2.1.7 + "@smithy/util-middleware": ^3.0.11 + "@smithy/util-retry": ^3.0.11 "@smithy/util-utf8": ^3.0.0 tslib: ^2.6.2 - checksum: bf40f13e4e5b4ad544acfdce0f4345abe063e1af7fb269af191e2e2e15cbe657ab7a6b05798260f8c79a68374c54e86ed9ca534687173ffb44be89244e373514 + checksum: 45ef6d6299dfb14d18ab8cedf190ff79eb084ec439ef37406c14c366e6872727b12cc6aa6dbcbf04898cf808dd5608934ceae4ac9b0fb8f02c677dcb19710838 languageName: node linkType: hard -"@aws-sdk/core@npm:3.679.0": - version: 3.679.0 - resolution: "@aws-sdk/core@npm:3.679.0" +"@aws-sdk/core@npm:3.716.0": + version: 3.716.0 + resolution: "@aws-sdk/core@npm:3.716.0" dependencies: - "@aws-sdk/types": 3.679.0 - "@smithy/core": ^2.4.8 - "@smithy/node-config-provider": ^3.1.8 - "@smithy/property-provider": ^3.1.7 - "@smithy/protocol-http": ^4.1.4 - "@smithy/signature-v4": ^4.2.0 - "@smithy/smithy-client": ^3.4.0 - "@smithy/types": ^3.5.0 - "@smithy/util-middleware": ^3.0.7 + "@aws-sdk/types": 3.714.0 + "@smithy/core": ^2.5.5 + "@smithy/node-config-provider": ^3.1.12 + "@smithy/property-provider": ^3.1.11 + "@smithy/protocol-http": ^4.1.8 + "@smithy/signature-v4": ^4.2.4 + "@smithy/smithy-client": ^3.5.1 + "@smithy/types": ^3.7.2 + "@smithy/util-middleware": ^3.0.11 fast-xml-parser: 4.4.1 tslib: ^2.6.2 - checksum: 68a9b37419c15e0d0351e5dfcd2e2814bf4a7210ddfc51841da8f3ec6f36e18a71e899a370a5d2f057eafb419b606b4c2c8f92ea2489b0491b6367d3a98ab3bc + checksum: fc6937d07b158fc883e0cc4b238f145c9eb8b71b0122abe27f7cc066cefb12401c2ffac164715657abc4cf73ff1aeb180e4ca49378eeca414e2bee8ab4de86b4 languageName: node linkType: hard -"@aws-sdk/credential-provider-cognito-identity@npm:3.679.0": - version: 3.679.0 - resolution: "@aws-sdk/credential-provider-cognito-identity@npm:3.679.0" +"@aws-sdk/credential-provider-cognito-identity@npm:3.716.0": + version: 3.716.0 + resolution: "@aws-sdk/credential-provider-cognito-identity@npm:3.716.0" dependencies: - "@aws-sdk/client-cognito-identity": 3.679.0 - "@aws-sdk/types": 3.679.0 - "@smithy/property-provider": ^3.1.7 - "@smithy/types": ^3.5.0 + "@aws-sdk/client-cognito-identity": 3.716.0 + "@aws-sdk/types": 3.714.0 + "@smithy/property-provider": ^3.1.11 + "@smithy/types": ^3.7.2 tslib: ^2.6.2 - checksum: 79c6559aad45a911ec927309f6fbaf235bcbecf7938d65132a24d0d05f7d270bfccb366d8475633364082481629cbd8c2dc2b3f2d9fabc2ee728def61d177f83 + checksum: 788f6233c5c820593c89146bb58f98e5ee81c25c9253fbb24bb10b8a0b8fd4c587ec37fe7829dd6d6096d3cc2a8ccd0f34cf861b0024d9838ca8f5f04283b3e2 languageName: node linkType: hard -"@aws-sdk/credential-provider-env@npm:3.679.0": - version: 3.679.0 - resolution: "@aws-sdk/credential-provider-env@npm:3.679.0" +"@aws-sdk/credential-provider-env@npm:3.716.0": + version: 3.716.0 + resolution: "@aws-sdk/credential-provider-env@npm:3.716.0" dependencies: - "@aws-sdk/core": 3.679.0 - "@aws-sdk/types": 3.679.0 - "@smithy/property-provider": ^3.1.7 - "@smithy/types": ^3.5.0 + "@aws-sdk/core": 3.716.0 + "@aws-sdk/types": 3.714.0 + "@smithy/property-provider": ^3.1.11 + "@smithy/types": ^3.7.2 tslib: ^2.6.2 - checksum: 8a086dc406a8ef51a90680ac0faed88965329657ead4171928dd9654b29b17d41cb5aa469d0852ca28d788cc0f44d82e791b6fa24eaf459953c467c8afe2cd60 + checksum: 7accf96fdc22450fc085f030db0c20012996bbb96d30916854b9fc0f7f9488a550bd29b19058279d7fbb07dd1639df8204859ef9e95e795f020ae2681a4d2e5d languageName: node linkType: hard -"@aws-sdk/credential-provider-http@npm:3.679.0": - version: 3.679.0 - resolution: "@aws-sdk/credential-provider-http@npm:3.679.0" +"@aws-sdk/credential-provider-http@npm:3.716.0": + version: 3.716.0 + resolution: "@aws-sdk/credential-provider-http@npm:3.716.0" dependencies: - "@aws-sdk/core": 3.679.0 - "@aws-sdk/types": 3.679.0 - "@smithy/fetch-http-handler": ^3.2.9 - "@smithy/node-http-handler": ^3.2.4 - "@smithy/property-provider": ^3.1.7 - "@smithy/protocol-http": ^4.1.4 - "@smithy/smithy-client": ^3.4.0 - "@smithy/types": ^3.5.0 - "@smithy/util-stream": ^3.1.9 + "@aws-sdk/core": 3.716.0 + "@aws-sdk/types": 3.714.0 + "@smithy/fetch-http-handler": ^4.1.2 + "@smithy/node-http-handler": ^3.3.2 + "@smithy/property-provider": ^3.1.11 + "@smithy/protocol-http": ^4.1.8 + "@smithy/smithy-client": ^3.5.1 + "@smithy/types": ^3.7.2 + "@smithy/util-stream": ^3.3.2 tslib: ^2.6.2 - checksum: 93204f16041360411c965fbb7261e0285ebb8040ac50afdc5e33483e4fb4a910e271b6d30e1fea15fca324492efc86323b5a1c8e56da7e74ebfdca82da228c51 + checksum: 52b817452ad0d131307233b35bf0a0e846cdb00de4313d8731be5fccc64d1550a128640965775324c7729ae66f02b0ed0457ab5411f988e041f0b15b11aaf9d0 languageName: node linkType: hard -"@aws-sdk/credential-provider-ini@npm:3.679.0": - version: 3.679.0 - resolution: "@aws-sdk/credential-provider-ini@npm:3.679.0" +"@aws-sdk/credential-provider-ini@npm:3.716.0": + version: 3.716.0 + resolution: "@aws-sdk/credential-provider-ini@npm:3.716.0" dependencies: - "@aws-sdk/core": 3.679.0 - "@aws-sdk/credential-provider-env": 3.679.0 - "@aws-sdk/credential-provider-http": 3.679.0 - "@aws-sdk/credential-provider-process": 3.679.0 - "@aws-sdk/credential-provider-sso": 3.679.0 - "@aws-sdk/credential-provider-web-identity": 3.679.0 - "@aws-sdk/types": 3.679.0 - "@smithy/credential-provider-imds": ^3.2.4 - "@smithy/property-provider": ^3.1.7 - "@smithy/shared-ini-file-loader": ^3.1.8 - "@smithy/types": ^3.5.0 + "@aws-sdk/core": 3.716.0 + "@aws-sdk/credential-provider-env": 3.716.0 + "@aws-sdk/credential-provider-http": 3.716.0 + "@aws-sdk/credential-provider-process": 3.716.0 + "@aws-sdk/credential-provider-sso": 3.716.0 + "@aws-sdk/credential-provider-web-identity": 3.716.0 + "@aws-sdk/types": 3.714.0 + "@smithy/credential-provider-imds": ^3.2.8 + "@smithy/property-provider": ^3.1.11 + "@smithy/shared-ini-file-loader": ^3.1.12 + "@smithy/types": ^3.7.2 tslib: ^2.6.2 peerDependencies: - "@aws-sdk/client-sts": ^3.679.0 - checksum: cb0d4267a0349014b9a80f4c1db23fd77f9ab18e76f24fea820b836c8a86c2cfe2403e0a7a6db065c4cc721d49c4b5ba41543d0f93fa6fa14b6ef8a2308d1098 + "@aws-sdk/client-sts": ^3.716.0 + checksum: fc8f41b293aeb01c41e3c36e4e4b6c0aa6e55698ce2c23729c4ebe46c55c9a232e6f12034ecbf7f28c70566b972c40e3d594cdbc613b6c7503969d04b60e905f languageName: node linkType: hard -"@aws-sdk/credential-provider-node@npm:3.679.0, @aws-sdk/credential-provider-node@npm:^3.350.0": - version: 3.679.0 - resolution: "@aws-sdk/credential-provider-node@npm:3.679.0" +"@aws-sdk/credential-provider-node@npm:3.716.0, @aws-sdk/credential-provider-node@npm:^3.350.0": + version: 3.716.0 + resolution: "@aws-sdk/credential-provider-node@npm:3.716.0" dependencies: - "@aws-sdk/credential-provider-env": 3.679.0 - "@aws-sdk/credential-provider-http": 3.679.0 - "@aws-sdk/credential-provider-ini": 3.679.0 - "@aws-sdk/credential-provider-process": 3.679.0 - "@aws-sdk/credential-provider-sso": 3.679.0 - "@aws-sdk/credential-provider-web-identity": 3.679.0 - "@aws-sdk/types": 3.679.0 - "@smithy/credential-provider-imds": ^3.2.4 - "@smithy/property-provider": ^3.1.7 - "@smithy/shared-ini-file-loader": ^3.1.8 - "@smithy/types": ^3.5.0 + "@aws-sdk/credential-provider-env": 3.716.0 + "@aws-sdk/credential-provider-http": 3.716.0 + "@aws-sdk/credential-provider-ini": 3.716.0 + "@aws-sdk/credential-provider-process": 3.716.0 + "@aws-sdk/credential-provider-sso": 3.716.0 + "@aws-sdk/credential-provider-web-identity": 3.716.0 + "@aws-sdk/types": 3.714.0 + "@smithy/credential-provider-imds": ^3.2.8 + "@smithy/property-provider": ^3.1.11 + "@smithy/shared-ini-file-loader": ^3.1.12 + "@smithy/types": ^3.7.2 tslib: ^2.6.2 - checksum: 08e949fd8cd4f676c11e4c5959a01d88f438fbc6f954c245463e45e9e0ca769de7be528efacd59b8296dc67b9513ed5b6b00938f61b39dcc2a00ebcd27389c26 + checksum: 46daf64a7ab3d80fe13683cb7921682842121cc6df5ed121fa07b071ccae3c305e8bcc39ce4f9926f372087335fe724088708762e1fa40258141f49fce2cfd34 languageName: node linkType: hard -"@aws-sdk/credential-provider-process@npm:3.679.0": - version: 3.679.0 - resolution: "@aws-sdk/credential-provider-process@npm:3.679.0" +"@aws-sdk/credential-provider-process@npm:3.716.0": + version: 3.716.0 + resolution: "@aws-sdk/credential-provider-process@npm:3.716.0" dependencies: - "@aws-sdk/core": 3.679.0 - "@aws-sdk/types": 3.679.0 - "@smithy/property-provider": ^3.1.7 - "@smithy/shared-ini-file-loader": ^3.1.8 - "@smithy/types": ^3.5.0 + "@aws-sdk/core": 3.716.0 + "@aws-sdk/types": 3.714.0 + "@smithy/property-provider": ^3.1.11 + "@smithy/shared-ini-file-loader": ^3.1.12 + "@smithy/types": ^3.7.2 tslib: ^2.6.2 - checksum: 56971d133627ce0a58e417a702786c4ccc45accd09de1f159eb87d8ecf1a84c2126d7221e4066fac13e9640ef19e0e6781bc633efa83bdbcab62832d8e024196 + checksum: 98a331ad7493b00d7455bf6082a30d5facafa3cad6bd7f94da424ed980b700c299552db11e3139051f883f27ec51784bffb8559ee6e6adf42b6a7832aa0d12af languageName: node linkType: hard -"@aws-sdk/credential-provider-sso@npm:3.679.0": - version: 3.679.0 - resolution: "@aws-sdk/credential-provider-sso@npm:3.679.0" +"@aws-sdk/credential-provider-sso@npm:3.716.0": + version: 3.716.0 + resolution: "@aws-sdk/credential-provider-sso@npm:3.716.0" dependencies: - "@aws-sdk/client-sso": 3.679.0 - "@aws-sdk/core": 3.679.0 - "@aws-sdk/token-providers": 3.679.0 - "@aws-sdk/types": 3.679.0 - "@smithy/property-provider": ^3.1.7 - "@smithy/shared-ini-file-loader": ^3.1.8 - "@smithy/types": ^3.5.0 + "@aws-sdk/client-sso": 3.716.0 + "@aws-sdk/core": 3.716.0 + "@aws-sdk/token-providers": 3.714.0 + "@aws-sdk/types": 3.714.0 + "@smithy/property-provider": ^3.1.11 + "@smithy/shared-ini-file-loader": ^3.1.12 + "@smithy/types": ^3.7.2 tslib: ^2.6.2 - checksum: 7e94b46d9bb4f4f0c24f600da7f9ffed69172f5aa4eb4587c84ec5b70e0b6d65f575db872a947938d1b5add345b5b9db08891753800c7a08ff93bd2b740ff032 + checksum: 613db5e7e8b325921d8585d02b0c2b7ed4b6826101c10bbddac502a01f1de5dc5766ef8c6987dce1a93863af1ff020138b6c6f95a20fbcef5c68362a96f9a0ea languageName: node linkType: hard -"@aws-sdk/credential-provider-web-identity@npm:3.679.0": - version: 3.679.0 - resolution: "@aws-sdk/credential-provider-web-identity@npm:3.679.0" +"@aws-sdk/credential-provider-web-identity@npm:3.716.0": + version: 3.716.0 + resolution: "@aws-sdk/credential-provider-web-identity@npm:3.716.0" dependencies: - "@aws-sdk/core": 3.679.0 - "@aws-sdk/types": 3.679.0 - "@smithy/property-provider": ^3.1.7 - "@smithy/types": ^3.5.0 + "@aws-sdk/core": 3.716.0 + "@aws-sdk/types": 3.714.0 + "@smithy/property-provider": ^3.1.11 + "@smithy/types": ^3.7.2 tslib: ^2.6.2 peerDependencies: - "@aws-sdk/client-sts": ^3.679.0 - checksum: ea33afd4e75032019f795217f92b5a7673015c3e19305e86d4cc2eb0524961f4d5aac7f456be5d25009c7ccfe35c7f8768555194e87f40a26cd316e89d116ed3 + "@aws-sdk/client-sts": ^3.716.0 + checksum: bb1627f262571bd557587bd09623c723ff5373613a0638b2059bdb1981f6bfd7377c13afb7211fe677c689eaeaa77e34f3eba0c5b492398c68261a5b35c4e10a languageName: node linkType: hard "@aws-sdk/credential-providers@npm:^3.350.0": - version: 3.679.0 - resolution: "@aws-sdk/credential-providers@npm:3.679.0" - dependencies: - "@aws-sdk/client-cognito-identity": 3.679.0 - "@aws-sdk/client-sso": 3.679.0 - "@aws-sdk/client-sts": 3.679.0 - "@aws-sdk/core": 3.679.0 - "@aws-sdk/credential-provider-cognito-identity": 3.679.0 - "@aws-sdk/credential-provider-env": 3.679.0 - "@aws-sdk/credential-provider-http": 3.679.0 - "@aws-sdk/credential-provider-ini": 3.679.0 - "@aws-sdk/credential-provider-node": 3.679.0 - "@aws-sdk/credential-provider-process": 3.679.0 - "@aws-sdk/credential-provider-sso": 3.679.0 - "@aws-sdk/credential-provider-web-identity": 3.679.0 - "@aws-sdk/types": 3.679.0 - "@smithy/credential-provider-imds": ^3.2.4 - "@smithy/property-provider": ^3.1.7 - "@smithy/types": ^3.5.0 + version: 3.716.0 + resolution: "@aws-sdk/credential-providers@npm:3.716.0" + dependencies: + "@aws-sdk/client-cognito-identity": 3.716.0 + "@aws-sdk/client-sso": 3.716.0 + "@aws-sdk/client-sts": 3.716.0 + "@aws-sdk/core": 3.716.0 + "@aws-sdk/credential-provider-cognito-identity": 3.716.0 + "@aws-sdk/credential-provider-env": 3.716.0 + "@aws-sdk/credential-provider-http": 3.716.0 + "@aws-sdk/credential-provider-ini": 3.716.0 + "@aws-sdk/credential-provider-node": 3.716.0 + "@aws-sdk/credential-provider-process": 3.716.0 + "@aws-sdk/credential-provider-sso": 3.716.0 + "@aws-sdk/credential-provider-web-identity": 3.716.0 + "@aws-sdk/types": 3.714.0 + "@smithy/credential-provider-imds": ^3.2.8 + "@smithy/property-provider": ^3.1.11 + "@smithy/types": ^3.7.2 + tslib: ^2.6.2 + checksum: 1fb86d890ac2156856ece8fdc8477999d6b165b73734ca5bd30f96c1f9cbced4a60f4df1361a4b0bee31b11f5c3b1da29aca76999f74d45ec152c428e3e44f16 + languageName: node + linkType: hard + +"@aws-sdk/eventstream-codec@npm:3.370.0": + version: 3.370.0 + resolution: "@aws-sdk/eventstream-codec@npm:3.370.0" + dependencies: + "@aws-crypto/crc32": 3.0.0 + "@aws-sdk/types": 3.370.0 + "@aws-sdk/util-hex-encoding": 3.310.0 + tslib: ^2.5.0 + checksum: 0366991b92e3801798b0145021e185ac87b559aaef447e086f0964164ff71983afa6575ddc2e94ca7d7ceb307e2f16ec376f97fdccfdbc29a93330fffa43e386 + languageName: node + linkType: hard + +"@aws-sdk/is-array-buffer@npm:3.310.0": + version: 3.310.0 + resolution: "@aws-sdk/is-array-buffer@npm:3.310.0" + dependencies: + tslib: ^2.5.0 + checksum: ddd1536ad16e29186fb5055bc279cfe9790b7c32552e1ee21e31d4e410e1df297b06c94c6117f854ec368d29e60a231dd8cc77e5b604a6260e7602876fd047f8 + languageName: node + linkType: hard + +"@aws-sdk/lib-storage@npm:^3.350.0": + version: 3.716.0 + resolution: "@aws-sdk/lib-storage@npm:3.716.0" + dependencies: + "@smithy/abort-controller": ^3.1.9 + "@smithy/middleware-endpoint": ^3.2.6 + "@smithy/smithy-client": ^3.5.1 + buffer: 5.6.0 + events: 3.3.0 + stream-browserify: 3.0.0 tslib: ^2.6.2 - checksum: 74ae6f0edd5dc2897f68099d8a1e0d3a382ad9f0ea309c355eb95ae3e0d21f99ad347b437b10fc2704fbec4a421b78e1c5758f3db4f81df2866b76dccc55f536 + peerDependencies: + "@aws-sdk/client-s3": ^3.716.0 + checksum: accaaf2001e8e0316dd1b35146e7ea1a690c6568e956bce1cd8a8f72e20aebc63c5cb9d06178c0aa9a8b2b2a8f1368c7e74d2bb447140a9bf0f69d0adb3b211c languageName: node linkType: hard -"@aws-sdk/middleware-bucket-endpoint@npm:3.679.0": - version: 3.679.0 - resolution: "@aws-sdk/middleware-bucket-endpoint@npm:3.679.0" +"@aws-sdk/middleware-bucket-endpoint@npm:3.714.0": + version: 3.714.0 + resolution: "@aws-sdk/middleware-bucket-endpoint@npm:3.714.0" dependencies: - "@aws-sdk/types": 3.679.0 - "@aws-sdk/util-arn-parser": 3.679.0 - "@smithy/node-config-provider": ^3.1.8 - "@smithy/protocol-http": ^4.1.4 - "@smithy/types": ^3.5.0 + "@aws-sdk/types": 3.714.0 + "@aws-sdk/util-arn-parser": 3.693.0 + "@smithy/node-config-provider": ^3.1.12 + "@smithy/protocol-http": ^4.1.8 + "@smithy/types": ^3.7.2 "@smithy/util-config-provider": ^3.0.0 tslib: ^2.6.2 - checksum: 80df2a7eb91ff96c21cb846193525db4664fba04b860e85867b6fa43d627f297b046abcc5d77869d81fc6ad6c52d85c7c9a6f7930bebb179d53f44c43a84cd52 + checksum: 9460fcaeaa8b76affcb04b29e18a74fc884b699e18a614dfaa8e3a3685c107249e4493aa069864dce2add9597973c6a794a0967c071ab87093d5ba7a08e40618 languageName: node linkType: hard -"@aws-sdk/middleware-expect-continue@npm:3.679.0": - version: 3.679.0 - resolution: "@aws-sdk/middleware-expect-continue@npm:3.679.0" +"@aws-sdk/middleware-expect-continue@npm:3.714.0": + version: 3.714.0 + resolution: "@aws-sdk/middleware-expect-continue@npm:3.714.0" dependencies: - "@aws-sdk/types": 3.679.0 - "@smithy/protocol-http": ^4.1.4 - "@smithy/types": ^3.5.0 + "@aws-sdk/types": 3.714.0 + "@smithy/protocol-http": ^4.1.8 + "@smithy/types": ^3.7.2 tslib: ^2.6.2 - checksum: 46b7d2c35aacca461668493ace0b226e6681ece92445ad6d336fa58005c5df4fb8a18378f097d5a33a36827bb8107a59bf64a87f06c3794e3bc68500a434973c + checksum: 66316302b043fa0e924961b259cefc2618119ea052354f17bac37c2af306a4987693f15821afd86d8678adb820cf9999c12509faa7b2342353545008de6e966f languageName: node linkType: hard -"@aws-sdk/middleware-flexible-checksums@npm:3.679.0": - version: 3.679.0 - resolution: "@aws-sdk/middleware-flexible-checksums@npm:3.679.0" +"@aws-sdk/middleware-flexible-checksums@npm:3.716.0": + version: 3.716.0 + resolution: "@aws-sdk/middleware-flexible-checksums@npm:3.716.0" dependencies: "@aws-crypto/crc32": 5.2.0 "@aws-crypto/crc32c": 5.2.0 - "@aws-sdk/core": 3.679.0 - "@aws-sdk/types": 3.679.0 + "@aws-crypto/util": 5.2.0 + "@aws-sdk/core": 3.716.0 + "@aws-sdk/types": 3.714.0 "@smithy/is-array-buffer": ^3.0.0 - "@smithy/node-config-provider": ^3.1.8 - "@smithy/protocol-http": ^4.1.4 - "@smithy/types": ^3.5.0 - "@smithy/util-middleware": ^3.0.7 + "@smithy/node-config-provider": ^3.1.12 + "@smithy/protocol-http": ^4.1.8 + "@smithy/types": ^3.7.2 + "@smithy/util-middleware": ^3.0.11 + "@smithy/util-stream": ^3.3.2 "@smithy/util-utf8": ^3.0.0 tslib: ^2.6.2 - checksum: de2d79a6ea4e85a2e932434a77d9217e622e4b61c18750a5d7ad55614ae5c19b8a1d40d2d6c8a1188a4503e61b412ec3d1e7e494a463976975c5a1239d99f418 + checksum: 6c5637066a91cac6bfc9016c99e6e65bb1c3fad0494c429104352b8761d063dcc41f3b52cddbd6672a09eace2b5adabf76784769e1cbfb95d0644642bb755aba languageName: node linkType: hard -"@aws-sdk/middleware-host-header@npm:3.679.0": - version: 3.679.0 - resolution: "@aws-sdk/middleware-host-header@npm:3.679.0" +"@aws-sdk/middleware-host-header@npm:3.714.0": + version: 3.714.0 + resolution: "@aws-sdk/middleware-host-header@npm:3.714.0" dependencies: - "@aws-sdk/types": 3.679.0 - "@smithy/protocol-http": ^4.1.4 - "@smithy/types": ^3.5.0 + "@aws-sdk/types": 3.714.0 + "@smithy/protocol-http": ^4.1.8 + "@smithy/types": ^3.7.2 tslib: ^2.6.2 - checksum: ec8dc56195ae7fef5ce887e8152b75dce70c439ffbed5eba6c29c94f6c5a1bce4f42256346b407636fbe20e94309e73330e72a04ac3a569838be6fb32a3ef1cd + checksum: e24bd4f872d433e6411ad3de36c09785b193eec52a43f6c6a9adaa8aec194e6b918bcec71a76930eff120e1906135476d0874089535a2eae40111d848557c92f languageName: node linkType: hard -"@aws-sdk/middleware-location-constraint@npm:3.679.0": - version: 3.679.0 - resolution: "@aws-sdk/middleware-location-constraint@npm:3.679.0" +"@aws-sdk/middleware-location-constraint@npm:3.714.0": + version: 3.714.0 + resolution: "@aws-sdk/middleware-location-constraint@npm:3.714.0" dependencies: - "@aws-sdk/types": 3.679.0 - "@smithy/types": ^3.5.0 + "@aws-sdk/types": 3.714.0 + "@smithy/types": ^3.7.2 tslib: ^2.6.2 - checksum: ba33c8298a9bd842ced24477db60d1b776fc55d23ee990d7aa423fad705de59d80cdad283e548ec86bdc5339b63420709e45adeea5e62ef4d2514f25f4a4043d + checksum: e428ab035116d49c3055157df104ecbc4700a11f716b61e0a9d95b6e78eccdaec177e552ecd61283068525c9a753945005caaf631b096c8049d10212af4183fd languageName: node linkType: hard -"@aws-sdk/middleware-logger@npm:3.679.0": - version: 3.679.0 - resolution: "@aws-sdk/middleware-logger@npm:3.679.0" +"@aws-sdk/middleware-logger@npm:3.714.0": + version: 3.714.0 + resolution: "@aws-sdk/middleware-logger@npm:3.714.0" dependencies: - "@aws-sdk/types": 3.679.0 - "@smithy/types": ^3.5.0 + "@aws-sdk/types": 3.714.0 + "@smithy/types": ^3.7.2 tslib: ^2.6.2 - checksum: 19eff983127b8fd260664bc2be2016d63ceb88c7ed111f8695d28efe2d920363103cdd7af9b2c31319053f63a11b1ed02b908ff771144de4d8dd809d00d4de29 + checksum: 1cee3e4135c7e2517994410df2d5fd1efbad813c257dcac1779a8fbc461f8ae31907eb3b3fd6206b2d4e6e2c79a390c9ecc91d0c162be3b9bc4412fe06d284c2 languageName: node linkType: hard -"@aws-sdk/middleware-recursion-detection@npm:3.679.0": - version: 3.679.0 - resolution: "@aws-sdk/middleware-recursion-detection@npm:3.679.0" +"@aws-sdk/middleware-recursion-detection@npm:3.714.0": + version: 3.714.0 + resolution: "@aws-sdk/middleware-recursion-detection@npm:3.714.0" dependencies: - "@aws-sdk/types": 3.679.0 - "@smithy/protocol-http": ^4.1.4 - "@smithy/types": ^3.5.0 + "@aws-sdk/types": 3.714.0 + "@smithy/protocol-http": ^4.1.8 + "@smithy/types": ^3.7.2 tslib: ^2.6.2 - checksum: 898fec5a7f28fe8791c333e53e6674158b49e40f7dbcae78f5bd4e1ba671b894b17e0054d45982fedfe6ffa5606dae20fae13a15a23ae2060904f17c87674542 + checksum: bf72936fdc47b6970c13e27f0527054aaee31dab981596a1702849b525296b5f6b9b431ac5c77cf5f3d0cd0a771706f3b180ffb8b93cd4d2886f79649ed199f6 languageName: node linkType: hard -"@aws-sdk/middleware-sdk-s3@npm:3.679.0": - version: 3.679.0 - resolution: "@aws-sdk/middleware-sdk-s3@npm:3.679.0" +"@aws-sdk/middleware-sdk-s3@npm:3.716.0": + version: 3.716.0 + resolution: "@aws-sdk/middleware-sdk-s3@npm:3.716.0" dependencies: - "@aws-sdk/core": 3.679.0 - "@aws-sdk/types": 3.679.0 - "@aws-sdk/util-arn-parser": 3.679.0 - "@smithy/core": ^2.4.8 - "@smithy/node-config-provider": ^3.1.8 - "@smithy/protocol-http": ^4.1.4 - "@smithy/signature-v4": ^4.2.0 - "@smithy/smithy-client": ^3.4.0 - "@smithy/types": ^3.5.0 + "@aws-sdk/core": 3.716.0 + "@aws-sdk/types": 3.714.0 + "@aws-sdk/util-arn-parser": 3.693.0 + "@smithy/core": ^2.5.5 + "@smithy/node-config-provider": ^3.1.12 + "@smithy/protocol-http": ^4.1.8 + "@smithy/signature-v4": ^4.2.4 + "@smithy/smithy-client": ^3.5.1 + "@smithy/types": ^3.7.2 "@smithy/util-config-provider": ^3.0.0 - "@smithy/util-middleware": ^3.0.7 - "@smithy/util-stream": ^3.1.9 + "@smithy/util-middleware": ^3.0.11 + "@smithy/util-stream": ^3.3.2 "@smithy/util-utf8": ^3.0.0 tslib: ^2.6.2 - checksum: 1c52603c1892500faf03c9390b8df71cb87bd18e1ab7c18cacec09b9be560e55043859bb2dd7311a88eb86bf3fa196cc9880331d1d01f4b3f8a7d74bb7a0241a + checksum: 226136c0aa3a4f18adea739a8aa65d877ad2ad9cbe028af1a59d6ff218efea638cace5088a98f6e7b29f214e82346d071dfbeb74a1f8bf66489432c48c61b7a0 languageName: node linkType: hard -"@aws-sdk/middleware-ssec@npm:3.679.0": - version: 3.679.0 - resolution: "@aws-sdk/middleware-ssec@npm:3.679.0" +"@aws-sdk/middleware-ssec@npm:3.714.0": + version: 3.714.0 + resolution: "@aws-sdk/middleware-ssec@npm:3.714.0" dependencies: - "@aws-sdk/types": 3.679.0 - "@smithy/types": ^3.5.0 + "@aws-sdk/types": 3.714.0 + "@smithy/types": ^3.7.2 tslib: ^2.6.2 - checksum: c520f19a945388d142417db12ac4e466660a8cbf0b469453efdfabec36efad20da8423fb8cfbe83656e7f70b2e57ade06c0664aaccbd4d9eff996fa5aa5c1e81 + checksum: a16b2312221de2e50c4752fa7c679744061b7e6661c32fb8f7ebbb95494e4b41486377f9292ac63cd9a3e3a622b3085aa452c7ca35fd2a718239118bd2f53c75 languageName: node linkType: hard -"@aws-sdk/middleware-user-agent@npm:3.679.0": - version: 3.679.0 - resolution: "@aws-sdk/middleware-user-agent@npm:3.679.0" +"@aws-sdk/middleware-user-agent@npm:3.716.0": + version: 3.716.0 + resolution: "@aws-sdk/middleware-user-agent@npm:3.716.0" dependencies: - "@aws-sdk/core": 3.679.0 - "@aws-sdk/types": 3.679.0 - "@aws-sdk/util-endpoints": 3.679.0 - "@smithy/core": ^2.4.8 - "@smithy/protocol-http": ^4.1.4 - "@smithy/types": ^3.5.0 + "@aws-sdk/core": 3.716.0 + "@aws-sdk/types": 3.714.0 + "@aws-sdk/util-endpoints": 3.714.0 + "@smithy/core": ^2.5.5 + "@smithy/protocol-http": ^4.1.8 + "@smithy/types": ^3.7.2 tslib: ^2.6.2 - checksum: 55a5908d5b358d79272795be5d61eb5859c7f46a0358d00a4b6f5f5048bc02c08565464216735bc212258a506d77662fc184e60adcd64a3f481969555aab222a + checksum: 2b76420623857a43eb4d47b3cf8d5e823e23ac737f0247e39a6f308542b7b17a39c89987f12926005e2ba1c90669ad85b6e860f2a566731af764609bb316f9ae languageName: node linkType: hard -"@aws-sdk/region-config-resolver@npm:3.679.0": - version: 3.679.0 - resolution: "@aws-sdk/region-config-resolver@npm:3.679.0" +"@aws-sdk/region-config-resolver@npm:3.714.0": + version: 3.714.0 + resolution: "@aws-sdk/region-config-resolver@npm:3.714.0" dependencies: - "@aws-sdk/types": 3.679.0 - "@smithy/node-config-provider": ^3.1.8 - "@smithy/types": ^3.5.0 + "@aws-sdk/types": 3.714.0 + "@smithy/node-config-provider": ^3.1.12 + "@smithy/types": ^3.7.2 "@smithy/util-config-provider": ^3.0.0 - "@smithy/util-middleware": ^3.0.7 + "@smithy/util-middleware": ^3.0.11 tslib: ^2.6.2 - checksum: e2360c0bd5578021962a02c3457af56ee1efba58b46703c7f86f8ae544ae9db29955f664672c6e6b8bb02ee958af5378160ff8668d3baa2eab2d8be62989784a + checksum: 42d4d61faf8513a8c6413ca7a45e5142dcdce4f17c6133746d3469fe362a3a62b375f80946da059cb5547678c21dfe97b3025fe3902e9424c6d410367a12c098 languageName: node linkType: hard -"@aws-sdk/signature-v4-multi-region@npm:3.679.0": - version: 3.679.0 - resolution: "@aws-sdk/signature-v4-multi-region@npm:3.679.0" +"@aws-sdk/signature-v4-multi-region@npm:3.716.0": + version: 3.716.0 + resolution: "@aws-sdk/signature-v4-multi-region@npm:3.716.0" dependencies: - "@aws-sdk/middleware-sdk-s3": 3.679.0 - "@aws-sdk/types": 3.679.0 - "@smithy/protocol-http": ^4.1.4 - "@smithy/signature-v4": ^4.2.0 - "@smithy/types": ^3.5.0 + "@aws-sdk/middleware-sdk-s3": 3.716.0 + "@aws-sdk/types": 3.714.0 + "@smithy/protocol-http": ^4.1.8 + "@smithy/signature-v4": ^4.2.4 + "@smithy/types": ^3.7.2 tslib: ^2.6.2 - checksum: a4bb1d902ff8dc7e24d27aa65b1291c1012bb55d60856a7b7c2a4111e3c4ed022a3bd0694fcef667c2e1eec90491a50512e902832316d563815ca691241f0629 + checksum: 8f71a60e4a0a7a39c5c08ce70e7cb896bb7d4a629c1261c77cae8f2b76f53ff295d16810d5355bcefcd5ffcfcfd8593b8a1750df29e05d2e6bcad7307054bd60 + languageName: node + linkType: hard + +"@aws-sdk/signature-v4@npm:^3.347.0": + version: 3.370.0 + resolution: "@aws-sdk/signature-v4@npm:3.370.0" + dependencies: + "@aws-sdk/eventstream-codec": 3.370.0 + "@aws-sdk/is-array-buffer": 3.310.0 + "@aws-sdk/types": 3.370.0 + "@aws-sdk/util-hex-encoding": 3.310.0 + "@aws-sdk/util-middleware": 3.370.0 + "@aws-sdk/util-uri-escape": 3.310.0 + "@aws-sdk/util-utf8": 3.310.0 + tslib: ^2.5.0 + checksum: 3652cca13da1c60b80d98274a49feaf30feee0f85908b4a89e0d262532904286fafa6f515a455348e20f6f9a2efbcdcd20ee3a704b892eb01d2fcfd784af8bc7 languageName: node linkType: hard -"@aws-sdk/token-providers@npm:3.679.0": - version: 3.679.0 - resolution: "@aws-sdk/token-providers@npm:3.679.0" +"@aws-sdk/token-providers@npm:3.714.0": + version: 3.714.0 + resolution: "@aws-sdk/token-providers@npm:3.714.0" dependencies: - "@aws-sdk/types": 3.679.0 - "@smithy/property-provider": ^3.1.7 - "@smithy/shared-ini-file-loader": ^3.1.8 - "@smithy/types": ^3.5.0 + "@aws-sdk/types": 3.714.0 + "@smithy/property-provider": ^3.1.11 + "@smithy/shared-ini-file-loader": ^3.1.12 + "@smithy/types": ^3.7.2 tslib: ^2.6.2 peerDependencies: - "@aws-sdk/client-sso-oidc": ^3.679.0 - checksum: 9247e5beb61a69ef77c937bcf3d77e5f32bb3e46c75d5139e7dd4dafe0f43c87c5f175fa6da9ef26e40136e0cb09fcc1079e8f942786535e0a2f86befd48049c + "@aws-sdk/client-sso-oidc": ^3.714.0 + checksum: 472ebf70ddb6d479189a9b5ef8035cafe8cdf58b31195d0a9f29d48ceb44cd9f65a982cdfbddeb4a299568de09733363c775f7d42807aa02c09e655ef2b4ee73 languageName: node linkType: hard @@ -845,87 +1032,143 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/types@npm:3.679.0, @aws-sdk/types@npm:^3.222.0, @aws-sdk/types@npm:^3.347.0": - version: 3.679.0 - resolution: "@aws-sdk/types@npm:3.679.0" +"@aws-sdk/types@npm:3.714.0, @aws-sdk/types@npm:^3.222.0, @aws-sdk/types@npm:^3.347.0": + version: 3.714.0 + resolution: "@aws-sdk/types@npm:3.714.0" dependencies: - "@smithy/types": ^3.5.0 + "@smithy/types": ^3.7.2 tslib: ^2.6.2 - checksum: e82a011f32ca443f2f6762f32dd002bab1654742130fd0d5734fc16c1aa8821096f53ef5dd899ee7e0eab7cb08a2584fe7b87b1efccb90a774cacd37a58c2e7e + checksum: 2cc6ea0ec3331a24b5cc6dfba0963ff5a673c7149eadbaf9f9ab8bfdfaa56a7a02a7df80f6921108aca3ef022047f931fd8f36b34bfe6c963e8606f72e068143 languageName: node linkType: hard -"@aws-sdk/util-arn-parser@npm:3.679.0, @aws-sdk/util-arn-parser@npm:^3.310.0": - version: 3.679.0 - resolution: "@aws-sdk/util-arn-parser@npm:3.679.0" +"@aws-sdk/util-arn-parser@npm:3.693.0, @aws-sdk/util-arn-parser@npm:^3.310.0": + version: 3.693.0 + resolution: "@aws-sdk/util-arn-parser@npm:3.693.0" dependencies: tslib: ^2.6.2 - checksum: b748f2c86da0bcea419d6efaef58670b84e46485d5b39aa92308ebbd7ee11bc8c21a83c973d9a184deb48f251efc82c44e8a4e9f38801c2fb13464bd8b6921fb + checksum: de35fab41f61a37a8af3e80b4cdb8d861603ae8f6a85b266d8ad4f9aca14e6cdb0d260c88a78ab692ea0778626afcd53bbfe95a45d4f9857ae8a13251e80f289 + languageName: node + linkType: hard + +"@aws-sdk/util-buffer-from@npm:3.310.0": + version: 3.310.0 + resolution: "@aws-sdk/util-buffer-from@npm:3.310.0" + dependencies: + "@aws-sdk/is-array-buffer": 3.310.0 + tslib: ^2.5.0 + checksum: 9c3bd9c0664a0cbb5270eb285a662274bb9c46ae0d79e0275a85e74659a4b1f094bab900994780fd70dd0152dc6d2d33a8bc681d87f3911fa48eae9f6c3558d6 languageName: node linkType: hard -"@aws-sdk/util-endpoints@npm:3.679.0": - version: 3.679.0 - resolution: "@aws-sdk/util-endpoints@npm:3.679.0" +"@aws-sdk/util-endpoints@npm:3.714.0": + version: 3.714.0 + resolution: "@aws-sdk/util-endpoints@npm:3.714.0" dependencies: - "@aws-sdk/types": 3.679.0 - "@smithy/types": ^3.5.0 - "@smithy/util-endpoints": ^2.1.3 + "@aws-sdk/types": 3.714.0 + "@smithy/types": ^3.7.2 + "@smithy/util-endpoints": ^2.1.7 tslib: ^2.6.2 - checksum: 0db1c808ad67d2b5c805ace306a332542512436b2153971db3a9bba1740d863d50455aa8ee78bad6df578e0cbeaa6d5e25d7d4fa4896b36bbd08f1b789b2c9d5 + checksum: b9456ce72684f6dd92cf240d05fc8b90d99b6c86d05feb4e90d1e0a09e36df4d73cad70b0ccf47008c769011fd9a1138e8180bca97f48b16d5e62dec378bd2fe + languageName: node + linkType: hard + +"@aws-sdk/util-hex-encoding@npm:3.310.0": + version: 3.310.0 + resolution: "@aws-sdk/util-hex-encoding@npm:3.310.0" + dependencies: + tslib: ^2.5.0 + checksum: 97b8d7e0e406189cdbd4fccb0a497dd247a22d54b18caf5a64a63d19d2535b95a64ee79ecf81b13f741bda1d565eb11448d4fd39617e4b86fc8626b05485d98c languageName: node linkType: hard "@aws-sdk/util-locate-window@npm:^3.0.0": - version: 3.679.0 - resolution: "@aws-sdk/util-locate-window@npm:3.679.0" + version: 3.693.0 + resolution: "@aws-sdk/util-locate-window@npm:3.693.0" dependencies: tslib: ^2.6.2 - checksum: a92402253aff12be137abff0f6ce1acbda89d9dfb2267753d7907479592cba3682e91ccefd21b912cf4b62bac3068b3278ab5cd79f09c46b63edf31170fa56df + checksum: ff446f1247107c38c88b791b6a2ba25d63e3762819448550c27e18c329232ee3732df33562ada4123114409910f0bb9e6006add169ef0d5b8ce27ed9cde3ba82 languageName: node linkType: hard -"@aws-sdk/util-user-agent-browser@npm:3.679.0": - version: 3.679.0 - resolution: "@aws-sdk/util-user-agent-browser@npm:3.679.0" +"@aws-sdk/util-middleware@npm:3.370.0": + version: 3.370.0 + resolution: "@aws-sdk/util-middleware@npm:3.370.0" + dependencies: + tslib: ^2.5.0 + checksum: a39565cf6e99e7d5ee883af75dd01168822acb8679ec0b1fea5ac99301b1c9a2dc8bde9da11a6780dd3a7681a15e408166b4407e8c6617706d9c53bc191783f2 + languageName: node + linkType: hard + +"@aws-sdk/util-uri-escape@npm:3.310.0": + version: 3.310.0 + resolution: "@aws-sdk/util-uri-escape@npm:3.310.0" + dependencies: + tslib: ^2.5.0 + checksum: 614c0a43b238b7371b6655a5961e21c57b708de3e1ce3138bd56284bedc48888e5c7d2a6965544108c3334fcdc45e9ddba86b2470c8e6901559ad7be8e21d418 + languageName: node + linkType: hard + +"@aws-sdk/util-user-agent-browser@npm:3.714.0": + version: 3.714.0 + resolution: "@aws-sdk/util-user-agent-browser@npm:3.714.0" dependencies: - "@aws-sdk/types": 3.679.0 - "@smithy/types": ^3.5.0 + "@aws-sdk/types": 3.714.0 + "@smithy/types": ^3.7.2 bowser: ^2.11.0 tslib: ^2.6.2 - checksum: c09f7cd9f808dd82699f2fe24700e60895624992b19adcf5c6603f901ec25bd1ad4868677d863cdf7ac7f6f0e317a77c1461925782e451189d694a7bd32f566d + checksum: d4969000e6319cc4267c2214a92faa8114cd8584dcaf14f0a7a7673cbb3ff37bb103444799aeaf72876a70f8b78b0408108cc74204414ef4efe4b8ff8076ae9d languageName: node linkType: hard -"@aws-sdk/util-user-agent-node@npm:3.679.0": - version: 3.679.0 - resolution: "@aws-sdk/util-user-agent-node@npm:3.679.0" +"@aws-sdk/util-user-agent-node@npm:3.716.0": + version: 3.716.0 + resolution: "@aws-sdk/util-user-agent-node@npm:3.716.0" dependencies: - "@aws-sdk/middleware-user-agent": 3.679.0 - "@aws-sdk/types": 3.679.0 - "@smithy/node-config-provider": ^3.1.8 - "@smithy/types": ^3.5.0 + "@aws-sdk/middleware-user-agent": 3.716.0 + "@aws-sdk/types": 3.714.0 + "@smithy/node-config-provider": ^3.1.12 + "@smithy/types": ^3.7.2 tslib: ^2.6.2 peerDependencies: aws-crt: ">=1.0.0" peerDependenciesMeta: aws-crt: optional: true - checksum: 3601b067815e7c986780e3abe2049a76317a6b517e40504ab4b081fa790aded87ff05c617d00e53044c1e9d0155419da8590cd11cbd4d43235251f6fcf128023 + checksum: e4f28303c9fc82d5362f7719429fd33cdb646f289ba729b2f795d6673ce0bf1a6bdaa1f467de3af0f75d14927ddc9e194b70290c446b415c06812dc001be3a3e + languageName: node + linkType: hard + +"@aws-sdk/util-utf8-browser@npm:^3.0.0": + version: 3.259.0 + resolution: "@aws-sdk/util-utf8-browser@npm:3.259.0" + dependencies: + tslib: ^2.3.1 + checksum: b6a1e580da1c9b62c749814182a7649a748ca4253edb4063aa521df97d25b76eae3359eb1680b86f71aac668e05cc05c514379bca39ebf4ba998ae4348412da8 languageName: node linkType: hard -"@aws-sdk/xml-builder@npm:3.679.0": - version: 3.679.0 - resolution: "@aws-sdk/xml-builder@npm:3.679.0" +"@aws-sdk/util-utf8@npm:3.310.0": + version: 3.310.0 + resolution: "@aws-sdk/util-utf8@npm:3.310.0" dependencies: - "@smithy/types": ^3.5.0 + "@aws-sdk/util-buffer-from": 3.310.0 + tslib: ^2.5.0 + checksum: 4045e79b8e3593e12233b359ba77d1b4c162fd9fcb4ab3b58b711c41b725552306dd91402b8d57ce5be080c76309f046a7a0c4ff704d12f9ba71e3b25b810086 + languageName: node + linkType: hard + +"@aws-sdk/xml-builder@npm:3.709.0": + version: 3.709.0 + resolution: "@aws-sdk/xml-builder@npm:3.709.0" + dependencies: + "@smithy/types": ^3.7.2 tslib: ^2.6.2 - checksum: a9a849b15529f5a446d62e56a089a130e353565c971c2623e5d2e4e47baca690da3a8ba5a1e35a5f3612957035df5ce9f2ba17218423ab85655d7899992f57eb + checksum: 98e28485ce0e3f18473741db0bedc97dd23d2164016a8bf4ede95dd6c88c3ceafacdf6df4970a13cbe7e3e26fff646112dd06b6c4a9e5c5070cca31eeb6476bb languageName: node linkType: hard -"@azure/abort-controller@npm:^2.0.0": +"@azure/abort-controller@npm:^2.0.0, @azure/abort-controller@npm:^2.1.2": version: 2.1.2 resolution: "@azure/abort-controller@npm:2.1.2" dependencies: @@ -945,7 +1188,7 @@ __metadata: languageName: node linkType: hard -"@azure/core-client@npm:^1.9.2": +"@azure/core-client@npm:^1.3.0, @azure/core-client@npm:^1.6.2, @azure/core-client@npm:^1.9.2": version: 1.9.2 resolution: "@azure/core-client@npm:1.9.2" dependencies: @@ -960,23 +1203,55 @@ __metadata: languageName: node linkType: hard -"@azure/core-rest-pipeline@npm:^1.17.0, @azure/core-rest-pipeline@npm:^1.9.1": - version: 1.17.0 - resolution: "@azure/core-rest-pipeline@npm:1.17.0" +"@azure/core-http-compat@npm:^2.0.0": + version: 2.1.2 + resolution: "@azure/core-http-compat@npm:2.1.2" + dependencies: + "@azure/abort-controller": ^2.0.0 + "@azure/core-client": ^1.3.0 + "@azure/core-rest-pipeline": ^1.3.0 + checksum: 387d0187607d95a6876f63d4b689210bce6ad243f48e56413136ba3875a8a9c4e238813307fb0cf0c53298f4b9d0893d04321c9331812bc74cf0f4e3e6872069 + languageName: node + linkType: hard + +"@azure/core-lro@npm:^2.2.0": + version: 2.7.2 + resolution: "@azure/core-lro@npm:2.7.2" + dependencies: + "@azure/abort-controller": ^2.0.0 + "@azure/core-util": ^1.2.0 + "@azure/logger": ^1.0.0 + tslib: ^2.6.2 + checksum: dc2e5bbb004a86704bcf584422cd099b7a6beef57ce6501afacced65f4f3b5fbba57a2439f701687237867552a661fd6568f8b3c9e3eacdfd9039004772f85b0 + languageName: node + linkType: hard + +"@azure/core-paging@npm:^1.1.1": + version: 1.6.2 + resolution: "@azure/core-paging@npm:1.6.2" + dependencies: + tslib: ^2.6.2 + checksum: 4b57f953998473ee784c3ea774a8b54f4be0ec239bd43cbabe28113ca18f141455289713302d4fcd802898dd7ab58380ff575b7ce9400ec1ec20c505791c0b25 + languageName: node + linkType: hard + +"@azure/core-rest-pipeline@npm:^1.10.1, @azure/core-rest-pipeline@npm:^1.17.0, @azure/core-rest-pipeline@npm:^1.3.0, @azure/core-rest-pipeline@npm:^1.9.1": + version: 1.18.1 + resolution: "@azure/core-rest-pipeline@npm:1.18.1" dependencies: "@azure/abort-controller": ^2.0.0 "@azure/core-auth": ^1.8.0 "@azure/core-tracing": ^1.0.1 - "@azure/core-util": ^1.9.0 + "@azure/core-util": ^1.11.0 "@azure/logger": ^1.0.0 http-proxy-agent: ^7.0.0 https-proxy-agent: ^7.0.0 tslib: ^2.6.2 - checksum: 8a79cbaaae295964bb8d18cb44873e705ebe3f9217fe74d83415b7266e46c3d6297c799d6e5e49516b165d273e0b794bf0ed14bb6aa875d09d4a90c3a559b6df + checksum: 24b173d5f92daa95f23006470ea5c0ded4657ba62558d7ac2892b8f7389c0d9d5fe6fa71ffa6caa1192fdd8bbf2a399336390f01c2b0010417d462e47fbeb9c5 languageName: node linkType: hard -"@azure/core-tracing@npm:^1.0.0, @azure/core-tracing@npm:^1.0.1": +"@azure/core-tracing@npm:^1.0.0, @azure/core-tracing@npm:^1.0.1, @azure/core-tracing@npm:^1.1.2": version: 1.2.0 resolution: "@azure/core-tracing@npm:1.2.0" dependencies: @@ -985,7 +1260,7 @@ __metadata: languageName: node linkType: hard -"@azure/core-util@npm:^1.11.0, @azure/core-util@npm:^1.6.1, @azure/core-util@npm:^1.9.0": +"@azure/core-util@npm:^1.11.0, @azure/core-util@npm:^1.2.0, @azure/core-util@npm:^1.6.1": version: 1.11.0 resolution: "@azure/core-util@npm:1.11.0" dependencies: @@ -995,6 +1270,16 @@ __metadata: languageName: node linkType: hard +"@azure/core-xml@npm:^1.4.3": + version: 1.4.4 + resolution: "@azure/core-xml@npm:1.4.4" + dependencies: + fast-xml-parser: ^4.4.1 + tslib: ^2.6.2 + checksum: 05537e7e3bf9dcf0b5b18726ae59977f867aa4f9ed368f010c57a0a24d0a9a1608aab9dd9db9762cd1176d6dfabf69e1ae671327275c575310c0e029153e8179 + languageName: node + linkType: hard + "@azure/identity@npm:^4.0.0": version: 4.5.0 resolution: "@azure/identity@npm:4.5.0" @@ -1027,29 +1312,50 @@ __metadata: linkType: hard "@azure/msal-browser@npm:^3.26.1": - version: 3.26.1 - resolution: "@azure/msal-browser@npm:3.26.1" + version: 3.28.0 + resolution: "@azure/msal-browser@npm:3.28.0" dependencies: - "@azure/msal-common": 14.15.0 - checksum: 70ebea1abc4bc6b0e5a250f865cffd24a1aeb615a35e7b572dad11369d486a7aeb4af60048c5f6a5bc3627fad65dbdc8c118f16086cb3f9cc03931699b08f4f7 + "@azure/msal-common": 14.16.0 + checksum: 09b659b811bccde3a2d37073b6b8fd54e9669b018ac73d56c47a66c4b78555f14fd4cfc000a0b69967ca8b605645a56786c73b2d8818766cd9d3e759fd325d78 languageName: node linkType: hard -"@azure/msal-common@npm:14.15.0": - version: 14.15.0 - resolution: "@azure/msal-common@npm:14.15.0" - checksum: 072e4ca58856997df2e82935c818801a69a85df16d7dccdfed02c1b8f8a772751594efe1b918433c760202348a99aa6ec9d99cc0f018ab2f1659186ad2a8b88e +"@azure/msal-common@npm:14.16.0": + version: 14.16.0 + resolution: "@azure/msal-common@npm:14.16.0" + checksum: 01ec26e22243c5c435b97db085e96f5488733336c142b65a118ee6e523a548d3f17d013147810948cceaee7bdc339362bb9b2799fc9ea53c9d4c9aa10d8987e3 languageName: node linkType: hard "@azure/msal-node@npm:^2.15.0": - version: 2.15.0 - resolution: "@azure/msal-node@npm:2.15.0" + version: 2.16.2 + resolution: "@azure/msal-node@npm:2.16.2" dependencies: - "@azure/msal-common": 14.15.0 + "@azure/msal-common": 14.16.0 jsonwebtoken: ^9.0.0 uuid: ^8.3.0 - checksum: 10dd1c273e2465d519d28ee04d1c9e2e4ecfa2cab664b38677502c626139f86a16f7d78c645e6727d550a84dfa7773ebea1fb2cc7454870f3c6507d601e6ef2f + checksum: 3676972cf7e1e91ea60773d7054275534239d209989da4c4c1aa790790ba309a2da58d6c593b6465feb1c7028772fce77757227e7ac9631b3a79e4f5a0a81aab + languageName: node + linkType: hard + +"@azure/storage-blob@npm:^12.5.0": + version: 12.26.0 + resolution: "@azure/storage-blob@npm:12.26.0" + dependencies: + "@azure/abort-controller": ^2.1.2 + "@azure/core-auth": ^1.4.0 + "@azure/core-client": ^1.6.2 + "@azure/core-http-compat": ^2.0.0 + "@azure/core-lro": ^2.2.0 + "@azure/core-paging": ^1.1.1 + "@azure/core-rest-pipeline": ^1.10.1 + "@azure/core-tracing": ^1.1.2 + "@azure/core-util": ^1.6.1 + "@azure/core-xml": ^1.4.3 + "@azure/logger": ^1.0.0 + events: ^3.0.0 + tslib: ^2.2.0 + checksum: c3f7572bc54cd9e74ac73fa9225cc9398a716e574ff9b637e5b27faf4ac2d6207dc64b39f5dcff1671c4cb6730fbd765ebf796abd3e18ef95f5071d613ce3a13 languageName: node linkType: hard @@ -1062,25 +1368,25 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.0, @babel/code-frame@npm:^7.16.7, @babel/code-frame@npm:^7.18.6, @babel/code-frame@npm:^7.24.2, @babel/code-frame@npm:^7.25.9, @babel/code-frame@npm:^7.26.0, @babel/code-frame@npm:^7.8.3": - version: 7.26.0 - resolution: "@babel/code-frame@npm:7.26.0" +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.0, @babel/code-frame@npm:^7.16.7, @babel/code-frame@npm:^7.24.2, @babel/code-frame@npm:^7.25.9, @babel/code-frame@npm:^7.26.0, @babel/code-frame@npm:^7.26.2, @babel/code-frame@npm:^7.8.3": + version: 7.26.2 + resolution: "@babel/code-frame@npm:7.26.2" dependencies: "@babel/helper-validator-identifier": ^7.25.9 js-tokens: ^4.0.0 picocolors: ^1.0.0 - checksum: 2a677369e9b80b956401809485e8c2ae24df5e6076f669cf26a2809fcb88f91c2f6bb1bf3fb799dfe8487b2b7a276b62d14ac230a79d7ac8c7b369090d0a43fc + checksum: db13f5c42d54b76c1480916485e6900748bbcb0014a8aca87f50a091f70ff4e0d0a6db63cade75eb41fcc3d2b6ba0a7f89e343def4f96f00269b41b8ab8dd7b8 languageName: node linkType: hard "@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.25.9, @babel/compat-data@npm:^7.26.0": - version: 7.26.0 - resolution: "@babel/compat-data@npm:7.26.0" - checksum: 83204bca7faee75fb6d38492ab0357d2fc89b311cbf4486df8cfc8f48e1ddf9e09d6c358b9687a940cec07f58779ff119fcf2ed906d7ab25e07cc1a0100a7ca2 + version: 7.26.3 + resolution: "@babel/compat-data@npm:7.26.3" + checksum: 85c5a9fb365231688c7faeb977f1d659da1c039e17b416f8ef11733f7aebe11fe330dce20c1844cacf243766c1d643d011df1d13cac9eda36c46c6c475693d21 languageName: node linkType: hard -"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.19.6, @babel/core@npm:^7.21.3, @babel/core@npm:^7.23.9, @babel/core@npm:^7.24.0": +"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.19.6, @babel/core@npm:^7.23.9": version: 7.26.0 resolution: "@babel/core@npm:7.26.0" dependencies: @@ -1103,16 +1409,16 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.23.6, @babel/generator@npm:^7.25.9, @babel/generator@npm:^7.26.0, @babel/generator@npm:^7.7.2": - version: 7.26.0 - resolution: "@babel/generator@npm:7.26.0" +"@babel/generator@npm:^7.26.0, @babel/generator@npm:^7.26.2, @babel/generator@npm:^7.26.3, @babel/generator@npm:^7.7.2": + version: 7.26.3 + resolution: "@babel/generator@npm:7.26.3" dependencies: - "@babel/parser": ^7.26.0 - "@babel/types": ^7.26.0 + "@babel/parser": ^7.26.3 + "@babel/types": ^7.26.3 "@jridgewell/gen-mapping": ^0.3.5 "@jridgewell/trace-mapping": ^0.3.25 jsesc: ^3.0.2 - checksum: 3b1edb8202f39e1600eb1342a04571b8ba66148b7165ec3cf7a072696fa81301f373648e19492289aa832e60a42f3ed367ae4b1ae6ad92968393f11a35dae70c + checksum: fb09fa55c66f272badf71c20a3a2cee0fa1a447fed32d1b84f16a668a42aff3e5f5ddc6ed5d832dda1e952187c002ca1a5cdd827022efe591b6ac44cada884ea languageName: node linkType: hard @@ -1125,16 +1431,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.25.9" - dependencies: - "@babel/traverse": ^7.25.9 - "@babel/types": ^7.25.9 - checksum: e1bb465b3b0155702d82cfef09e3813e87a6d777cdd2c513796861eac14953340491eafea1d4109278bf4ceb48b54074c45758f042c0544d00c498090bee5a6f - languageName: node - linkType: hard - "@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-compilation-targets@npm:7.25.9" @@ -1166,21 +1462,21 @@ __metadata: linkType: hard "@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.25.9" + version: 7.26.3 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.26.3" dependencies: "@babel/helper-annotate-as-pure": ^7.25.9 - regexpu-core: ^6.1.1 + regexpu-core: ^6.2.0 semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: 563ed361ceed3d7a9d64dd58616bf6f0befcc23620ab22d31dd6d8b751d3f99d6d210487b1a5a1e209ab4594df67bacfab7445cbfa092bfe2b719cd42ae1ba6f + checksum: 50a27d8ce6da5c2fa0c62c132c4d27cfeb36e3233ff1e5220d643de3dafe49423b507382f0b72a696fce7486014b134c1e742f55438590f9405d26765b009af0 languageName: node linkType: hard -"@babel/helper-define-polyfill-provider@npm:^0.6.2": - version: 0.6.2 - resolution: "@babel/helper-define-polyfill-provider@npm:0.6.2" +"@babel/helper-define-polyfill-provider@npm:^0.6.2, @babel/helper-define-polyfill-provider@npm:^0.6.3": + version: 0.6.3 + resolution: "@babel/helper-define-polyfill-provider@npm:0.6.3" dependencies: "@babel/helper-compilation-targets": ^7.22.6 "@babel/helper-plugin-utils": ^7.22.5 @@ -1189,7 +1485,7 @@ __metadata: resolve: ^1.14.2 peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 2bba965ea9a4887ddf9c11d51d740ab473bd7597b787d042c325f6a45912dfe908c2d6bb1d837bf82f7e9fa51e6ad5150563c58131d2bb85515e63d971414a9c + checksum: 710e6d8a5391736b9f53f09d0494575c2e03de199ad8d1349bc8e514cb85251ea1f1842c2ff44830849d482052ddb42ae931101002a87a263b12f649c2e57c01 languageName: node linkType: hard @@ -1203,7 +1499,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.25.9": +"@babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-module-imports@npm:7.25.9" dependencies: @@ -1268,16 +1564,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": ^7.25.9 - "@babel/types": ^7.25.9 - checksum: 6d96c94b88e8288d15e5352c1221486bd4f62de8c7dc7c7b9f5b107ce2c79f67fec5ed71a0476e146f1fefbbbf1d69abe35dc821d80ce01fc7f472286c342421 - languageName: node - linkType: hard - "@babel/helper-skip-transparent-expression-wrappers@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.25.9" @@ -1342,14 +1628,14 @@ __metadata: 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.24.0, @babel/parser@npm:^7.25.9, @babel/parser@npm:^7.26.0": - version: 7.26.1 - resolution: "@babel/parser@npm:7.26.1" +"@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.9, @babel/parser@npm:^7.26.0, @babel/parser@npm:^7.26.2, @babel/parser@npm:^7.26.3": + version: 7.26.3 + resolution: "@babel/parser@npm:7.26.3" dependencies: - "@babel/types": ^7.26.0 + "@babel/types": ^7.26.3 bin: parser: ./bin/babel-parser.js - checksum: 354320d1a0a7102b2f25620ceea1bbc809f5225432a73e8a8874009d2f82ed29e2b035fe68fb6d18bb7eafed78df1ec0fa12e8d8226b295d7a020f9b852de653 + checksum: e2bff2e9fa6540ee18fecc058bc74837eda2ddcecbe13454667314a93fc0ba26c1fb862c812d84f6d5f225c3bd8d191c3a42d4296e287a882c4e1f82ff2815ff languageName: node linkType: hard @@ -1800,14 +2086,13 @@ __metadata: linkType: hard "@babel/plugin-transform-exponentiation-operator@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.25.9" + version: 7.26.3 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.26.3" dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor": ^7.25.9 "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 57e1bb4135dd16782fe84b49dd360cce8f9bf5f62eb10424dcdaf221e54a8bacdf50f2541c5ac01dea9f833a6c628613d71be915290938a93454389cba4de06b + checksum: b369ffad07e02e259c43a09d309a5ca86cb9da6b43b1df6256463a810b172cedc4254742605eec0fc2418371c3f7430430f5abd36f21717281e79142308c13ba languageName: node linkType: hard @@ -1904,15 +2189,14 @@ __metadata: linkType: hard "@babel/plugin-transform-modules-commonjs@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.25.9" + version: 7.26.3 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.26.3" dependencies: - "@babel/helper-module-transforms": ^7.25.9 + "@babel/helper-module-transforms": ^7.26.0 "@babel/helper-plugin-utils": ^7.25.9 - "@babel/helper-simple-access": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 4f101f0ea4a57d1d27a7976d668c63a7d0bbb0d9c1909d8ac43c785fd1496c31e6552ffd9673730c088873df1bc64f1cc4aad7c3c90413ac5e80b33e336d80e4 + checksum: 0ac9aa4e5fe9fe34b58ee174881631e5e1c89eee5b1ebfd1147934686be92fc5fbfdc11119f0b607b3743d36a1cbcb7c36f18e0dd4424d6d7b749b1b9a18808a languageName: node linkType: hard @@ -2082,7 +2366,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-constant-elements@npm:^7.18.12, @babel/plugin-transform-react-constant-elements@npm:^7.21.3": +"@babel/plugin-transform-react-constant-elements@npm:^7.18.12": version: 7.25.9 resolution: "@babel/plugin-transform-react-constant-elements@npm:7.25.9" dependencies: @@ -2234,8 +2518,8 @@ __metadata: linkType: hard "@babel/plugin-transform-typescript@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-typescript@npm:7.25.9" + version: 7.26.3 + resolution: "@babel/plugin-transform-typescript@npm:7.26.3" dependencies: "@babel/helper-annotate-as-pure": ^7.25.9 "@babel/helper-create-class-features-plugin": ^7.25.9 @@ -2244,7 +2528,7 @@ __metadata: "@babel/plugin-syntax-typescript": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6dd1303f1b9f314e22c6c54568a8b9709a081ce97be757d4004f960e3e73d6b819e6b49cee6cf1fc8455511e41127a8b580fa34602de62d17ab8a0b2d0ccf183 + checksum: 38ab210e80d4fc4eaa27e88705a961d53f5eae1dcd0ef8794affe3002fec557404e8bb29ca22d18e691a75690e3bcadbfeb8207a830f15cf83231ab5fd1ea08b languageName: node linkType: hard @@ -2295,7 +2579,7 @@ __metadata: languageName: node linkType: hard -"@babel/preset-env@npm:^7.19.4, @babel/preset-env@npm:^7.20.2": +"@babel/preset-env@npm:^7.19.4": version: 7.26.0 resolution: "@babel/preset-env@npm:7.26.0" dependencies: @@ -2388,8 +2672,8 @@ __metadata: linkType: hard "@babel/preset-react@npm:^7.18.6": - version: 7.25.9 - resolution: "@babel/preset-react@npm:7.25.9" + version: 7.26.3 + resolution: "@babel/preset-react@npm:7.26.3" dependencies: "@babel/helper-plugin-utils": ^7.25.9 "@babel/helper-validator-option": ^7.25.9 @@ -2399,11 +2683,11 @@ __metadata: "@babel/plugin-transform-react-pure-annotations": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b5650c07a744ab4024c04fae002c9043235b4ad8687de8bf759135b9c6186553f4f53fde0a4583ce4c019560b79c176f39c745cdf77645af07071d26d8ba84ce + checksum: 9c76f145026715c8e4a1f6c44f208918e700227d8d8a8068f4ae10d87031d23eb8b483e508cd4452d65066f731b7a8169527e66e83ffe165595e8db7899dd859 languageName: node linkType: hard -"@babel/preset-typescript@npm:^7.18.6, @babel/preset-typescript@npm:^7.21.0": +"@babel/preset-typescript@npm:^7.18.6": version: 7.26.0 resolution: "@babel/preset-typescript@npm:7.26.0" dependencies: @@ -2418,7 +2702,17 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.15.4, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.4": +"@babel/runtime-corejs3@npm:^7.20.7, @babel/runtime-corejs3@npm:^7.22.15, @babel/runtime-corejs3@npm:^7.24.7": + version: 7.26.0 + resolution: "@babel/runtime-corejs3@npm:7.26.0" + dependencies: + core-js-pure: ^3.30.2 + regenerator-runtime: ^0.14.0 + checksum: c6c5adac03e33aa4b5bb636a677aa2a6e400b91d91aac5674448d20af4100b80a8bedfb742338e4236e22c092d3edeb27210efdf48bd13ec353bd899f097ff41 + 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.12.5, @babel/runtime@npm:^7.15.4, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.18.6, @babel/runtime@npm:^7.2.0, @babel/runtime@npm:^7.20.6, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.23.9, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.4.4, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.6.0, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.3, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": version: 7.26.0 resolution: "@babel/runtime@npm:7.26.0" dependencies: @@ -2438,32 +2732,32 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.24.0, @babel/traverse@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/traverse@npm:7.25.9" +"@babel/traverse@npm:^7.25.9": + version: 7.26.4 + resolution: "@babel/traverse@npm:7.26.4" dependencies: - "@babel/code-frame": ^7.25.9 - "@babel/generator": ^7.25.9 - "@babel/parser": ^7.25.9 + "@babel/code-frame": ^7.26.2 + "@babel/generator": ^7.26.3 + "@babel/parser": ^7.26.3 "@babel/template": ^7.25.9 - "@babel/types": ^7.25.9 + "@babel/types": ^7.26.3 debug: ^4.3.1 globals: ^11.1.0 - checksum: 901d325662ff1dd9bc51de00862e01055fa6bc374f5297d7e3731f2f0e268bbb1d2141f53fa82860aa308ee44afdcf186a948f16c83153927925804b95a9594d + checksum: dcdf51b27ab640291f968e4477933465c2910bfdcbcff8f5315d1f29b8ff861864f363e84a71fb489f5e9708e8b36b7540608ce019aa5e57ef7a4ba537e62700 languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.3, @babel/types@npm:^7.24.0, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": - version: 7.26.0 - resolution: "@babel/types@npm:7.26.0" +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.0, @babel/types@npm:^7.26.3, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": + version: 7.26.3 + resolution: "@babel/types@npm:7.26.3" dependencies: "@babel/helper-string-parser": ^7.25.9 "@babel/helper-validator-identifier": ^7.25.9 - checksum: a3dd37dabac693018872da96edb8c1843a605c1bfacde6c3f504fba79b972426a6f24df70aa646356c0c1b19bdd2c722c623c684a996c002381071680602280d + checksum: 195f428080dcaadbcecc9445df7f91063beeaa91b49ccd78f38a5af6b75a6a58391d0c6614edb1ea322e57889a1684a0aab8e667951f820196901dd341f931e9 languageName: node linkType: hard -"@backstage-community/plugin-kiali-backend@workspace:plugins/kiali-backend": +"@backstage-community/plugin-kiali-backend@workspace:^, @backstage-community/plugin-kiali-backend@workspace:plugins/kiali-backend": version: 0.0.0-use.local resolution: "@backstage-community/plugin-kiali-backend@workspace:plugins/kiali-backend" dependencies: @@ -2476,7 +2770,6 @@ __metadata: "@backstage/config": ^1.2.0 "@backstage/errors": ^1.2.4 "@backstage/plugin-auth-node": ^0.5.2 - "@janus-idp/cli": 1.19.1 "@types/express": 4.17.21 "@types/supertest": 2.0.16 axios: ^1.7.4 @@ -2489,25 +2782,113 @@ __metadata: languageName: unknown linkType: soft -"@backstage/backend-app-api@npm:^1.0.0, @backstage/backend-app-api@npm:^1.0.1": - version: 1.0.1 - resolution: "@backstage/backend-app-api@npm:1.0.1" +"@backstage-community/plugin-kiali@workspace:^, @backstage-community/plugin-kiali@workspace:plugins/kiali": + version: 0.0.0-use.local + resolution: "@backstage-community/plugin-kiali@workspace:plugins/kiali" dependencies: - "@backstage/backend-common": ^0.25.0 - "@backstage/backend-plugin-api": ^1.0.1 - "@backstage/cli-common": ^0.1.14 - "@backstage/config": ^1.2.0 - "@backstage/config-loader": ^1.9.1 - "@backstage/errors": ^1.2.4 - "@backstage/plugin-auth-node": ^0.5.3 - "@backstage/plugin-permission-node": ^0.8.4 - "@backstage/types": ^1.1.1 + "@backstage/catalog-model": ^1.7.0 + "@backstage/cli": 0.28.2 + "@backstage/core-components": ^0.16.2 + "@backstage/core-plugin-api": ^1.10.0 + "@backstage/dev-utils": 1.1.2 + "@backstage/plugin-catalog-react": ^1.14.0 + "@backstage/test-utils": 1.7.0 + "@material-ui/core": ^4.9.13 + "@material-ui/icons": ^4.11.3 + "@material-ui/lab": ^4.0.0-alpha.45 + "@mui/icons-material": ^5.15.8 + "@patternfly/patternfly": ^5.1.0 + "@patternfly/react-charts": ^7.1.1 + "@patternfly/react-core": ^5.1.1 + "@patternfly/react-icons": ^5.1.1 + "@patternfly/react-topology": 5.3.0 + "@playwright/test": 1.45.3 + "@redhat-developer/red-hat-developer-hub-theme": 0.4.0 + "@testing-library/dom": ^10.0.0 + "@testing-library/jest-dom": ^6.0.0 + "@testing-library/react": ^15.0.0 + "@types/lodash": ^4.14.151 + "@types/node": 20.14.2 + "@types/react": ^18.2.58 + "@types/react-copy-to-clipboard": 5.0.7 + "@types/react-dom": ^18.2.19 + "@types/regression": 2.0.6 + ace-builds: ^1.32.7 + axios: ^1.7.4 + canvas: ^2.11.2 + cross-fetch: 4.0.0 + cytoscape: 3.30.2 + d3-format: ^3.1.0 + deep-freeze: 0.0.1 + history: ^5.3.0 + jest-canvas-mock: 2.5.2 + js-yaml: ^3.13.1 + json-beautify: 1.1.1 + lodash: ^4.17.21 + micro-memoize: 4.1.2 + moment: ^2.29.4 + prettier: 3.3.3 + prop-types: ^15.8.1 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-ace: 9.5.0 + react-copy-to-clipboard: 5.x + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: ^6.0.0 + react-use: ^17.4.0 + regression: ^2.0.1 + screenfull: 5.2.0 + start-server-and-test: 2.0.8 + typesafe-actions: ^4.2.1 + typestyle: ^2.4.0 + victory-box-plot: ^36.9.1 + victory-core: ^36.9.1 + victory-voronoi-container: ^36.9.1 + peerDependencies: + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: ^6.0.0 + languageName: unknown + linkType: soft + +"@backstage/app-defaults@npm:^1.5.12": + version: 1.5.15 + resolution: "@backstage/app-defaults@npm:1.5.15" + dependencies: + "@backstage/core-app-api": ^1.15.3 + "@backstage/core-components": ^0.16.2 + "@backstage/core-plugin-api": ^1.10.2 + "@backstage/plugin-permission-react": ^0.4.29 + "@backstage/theme": ^0.6.3 + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 46378a8b2b82cca764adb836ee323f91e4510beaf1665ad0ca602c974bab3043922d09448c246f1f4205223ca289c70665895e2e6138f5fd6a27f0e138ecdcbd + languageName: node + linkType: hard + +"@backstage/backend-app-api@npm:^1.0.0, @backstage/backend-app-api@npm:^1.0.2, @backstage/backend-app-api@npm:^1.1.0": + version: 1.1.0 + resolution: "@backstage/backend-app-api@npm:1.1.0" + dependencies: + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/cli-common": ^0.1.15 + "@backstage/config": ^1.3.1 + "@backstage/config-loader": ^1.9.3 + "@backstage/errors": ^1.2.6 + "@backstage/plugin-auth-node": ^0.5.5 + "@backstage/plugin-permission-node": ^0.8.6 + "@backstage/types": ^1.2.0 "@manypkg/get-packages": ^1.1.3 compression: ^1.7.4 cookie: ^0.7.0 cors: ^2.8.5 - express: ^4.17.1 - express-promise-router: ^4.1.0 helmet: ^6.0.0 jose: ^5.0.0 knex: ^3.0.0 @@ -2517,16 +2898,15 @@ __metadata: minimatch: ^9.0.0 minimist: ^1.2.5 morgan: ^1.10.0 - node-fetch: ^2.7.0 node-forge: ^1.3.1 path-to-regexp: ^8.0.0 selfsigned: ^2.0.0 stoppable: ^1.1.0 triple-beam: ^1.4.1 - uuid: ^9.0.0 + uuid: ^11.0.0 winston: ^3.2.1 winston-transport: ^4.5.0 - checksum: 5696cfd35b9804be92568103932e8109dcbafe2bafd6eca4e04f1935f6128f6098528ecbb61d81fb78c959cd47f85e611203e624807f3b5956d2d3e7e7b5b554 + checksum: 0a394e95af0b49c6eaf7948211b1ad2ba6f00d97c7728f6df2ece8897f13da0d5a3903ab2657898037b0b76806d8c4fd1115478bbd6511bb9cf352d609cb4c18 languageName: node linkType: hard @@ -2607,30 +2987,29 @@ __metadata: languageName: node linkType: hard -"@backstage/backend-defaults@npm:^0.5.0": - version: 0.5.2 - resolution: "@backstage/backend-defaults@npm:0.5.2" +"@backstage/backend-defaults@npm:^0.5.0, @backstage/backend-defaults@npm:^0.5.1": + version: 0.5.3 + resolution: "@backstage/backend-defaults@npm:0.5.3" dependencies: "@aws-sdk/abort-controller": ^3.347.0 "@aws-sdk/client-codecommit": ^3.350.0 "@aws-sdk/client-s3": ^3.350.0 "@aws-sdk/credential-providers": ^3.350.0 "@aws-sdk/types": ^3.347.0 - "@backstage/backend-app-api": ^1.0.1 - "@backstage/backend-common": ^0.25.0 + "@backstage/backend-app-api": ^1.0.2 "@backstage/backend-dev-utils": ^0.1.5 - "@backstage/backend-plugin-api": ^1.0.1 - "@backstage/cli-common": ^0.1.14 - "@backstage/cli-node": ^0.2.9 - "@backstage/config": ^1.2.0 - "@backstage/config-loader": ^1.9.1 - "@backstage/errors": ^1.2.4 - "@backstage/integration": ^1.15.1 - "@backstage/integration-aws-node": ^0.1.12 - "@backstage/plugin-auth-node": ^0.5.3 - "@backstage/plugin-events-node": ^0.4.2 - "@backstage/plugin-permission-node": ^0.8.4 - "@backstage/types": ^1.1.1 + "@backstage/backend-plugin-api": ^1.0.2 + "@backstage/cli-common": ^0.1.15 + "@backstage/cli-node": ^0.2.10 + "@backstage/config": ^1.3.0 + "@backstage/config-loader": ^1.9.2 + "@backstage/errors": ^1.2.5 + "@backstage/integration": ^1.15.2 + "@backstage/integration-aws-node": ^0.1.13 + "@backstage/plugin-auth-node": ^0.5.4 + "@backstage/plugin-events-node": ^0.4.5 + "@backstage/plugin-permission-node": ^0.8.5 + "@backstage/types": ^1.2.0 "@google-cloud/storage": ^7.0.0 "@keyv/memcache": ^1.3.5 "@keyv/redis": ^2.5.3 @@ -2675,39 +3054,145 @@ __metadata: stoppable: ^1.1.0 tar: ^6.1.12 triple-beam: ^1.4.1 - uuid: ^9.0.0 + uuid: ^11.0.0 winston: ^3.2.1 winston-transport: ^4.5.0 yauzl: ^3.0.0 yn: ^4.0.0 zod: ^3.22.4 - checksum: 9d0f494dae99e9a3cee8dfcb0d15c72ddb2ca2069a1c545f58a8a521a95688c275656bd152585067f3264bc97f532dc0dcfeb267e15a24153ebfae4fb0d3abbe - languageName: node - linkType: hard - -"@backstage/backend-dev-utils@npm:^0.1.5": - version: 0.1.5 - resolution: "@backstage/backend-dev-utils@npm:0.1.5" - checksum: 7c7eced8cc6fe88b6b54d7b9f04953dbfd07846772368a0b269d4e75da30133b61e4fe29782c0dc0aa547234d75ff60a985f378f92911680a9172fa8f2820e5b + checksum: 92be8c95a2a41ee4c040a4046703026127a5d3194828f907e862413c5c49bc305181bdf9734970f2e95909ceba6021cc8e28513631df43e92d2d5658d4f1bcce languageName: node linkType: hard -"@backstage/backend-plugin-api@npm:^1.0.0, @backstage/backend-plugin-api@npm:^1.0.1": - version: 1.0.1 - resolution: "@backstage/backend-plugin-api@npm:1.0.1" +"@backstage/backend-defaults@npm:^0.6.0": + version: 0.6.1 + resolution: "@backstage/backend-defaults@npm:0.6.1" dependencies: - "@backstage/cli-common": ^0.1.14 - "@backstage/config": ^1.2.0 - "@backstage/errors": ^1.2.4 - "@backstage/plugin-auth-node": ^0.5.3 - "@backstage/plugin-permission-common": ^0.8.1 - "@backstage/types": ^1.1.1 - "@types/express": ^4.17.6 - "@types/luxon": ^3.0.0 + "@aws-sdk/abort-controller": ^3.347.0 + "@aws-sdk/client-codecommit": ^3.350.0 + "@aws-sdk/client-s3": ^3.350.0 + "@aws-sdk/credential-providers": ^3.350.0 + "@aws-sdk/types": ^3.347.0 + "@azure/identity": ^4.0.0 + "@azure/storage-blob": ^12.5.0 + "@backstage/backend-app-api": ^1.1.0 + "@backstage/backend-dev-utils": ^0.1.5 + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/cli-common": ^0.1.15 + "@backstage/cli-node": ^0.2.11 + "@backstage/config": ^1.3.1 + "@backstage/config-loader": ^1.9.4 + "@backstage/errors": ^1.2.6 + "@backstage/integration": ^1.16.0 + "@backstage/integration-aws-node": ^0.1.14 + "@backstage/plugin-auth-node": ^0.5.5 + "@backstage/plugin-events-node": ^0.4.6 + "@backstage/plugin-permission-node": ^0.8.6 + "@backstage/types": ^1.2.0 + "@google-cloud/storage": ^7.0.0 + "@keyv/memcache": ^2.0.1 + "@keyv/redis": ^4.0.1 + "@manypkg/get-packages": ^1.1.3 + "@octokit/rest": ^19.0.3 + "@opentelemetry/api": ^1.9.0 + "@types/cors": ^2.8.6 + "@types/express": ^4.17.6 + archiver: ^7.0.0 + base64-stream: ^1.0.0 + better-sqlite3: ^11.0.0 + compression: ^1.7.4 + concat-stream: ^2.0.0 + cookie: ^0.7.0 + cors: ^2.8.5 + cron: ^3.0.0 + express: ^4.17.1 + express-promise-router: ^4.1.0 + fs-extra: ^11.2.0 + git-url-parse: ^15.0.0 + helmet: ^6.0.0 + isomorphic-git: ^1.23.0 + jose: ^5.0.0 + keyv: ^5.2.1 + knex: ^3.0.0 + lodash: ^4.17.21 + logform: ^2.3.2 + luxon: ^3.0.0 + minimatch: ^9.0.0 + minimist: ^1.2.5 + mysql2: ^3.0.0 + node-fetch: ^2.7.0 + node-forge: ^1.3.1 + p-limit: ^3.1.0 + p-throttle: ^4.1.1 + path-to-regexp: ^8.0.0 + pg: ^8.11.3 + pg-connection-string: ^2.3.0 + pg-format: ^1.0.4 + raw-body: ^2.4.1 + selfsigned: ^2.0.0 + tar: ^6.1.12 + triple-beam: ^1.4.1 + uuid: ^11.0.0 + winston: ^3.2.1 + winston-transport: ^4.5.0 + yauzl: ^3.0.0 + yn: ^4.0.0 + zod: ^3.22.4 + peerDependencies: + "@google-cloud/cloud-sql-connector": ^1.4.0 + peerDependenciesMeta: + "@google-cloud/cloud-sql-connector": + optional: true + checksum: 471d7583bc6b474f4c4ad483336c13d9971553a24560c58c32494130efe555bdd5447796332308d1e875485b4f5b4ddd7e456e676a7f96488174d374e9da3497 + languageName: node + linkType: hard + +"@backstage/backend-dev-utils@npm:^0.1.5": + version: 0.1.5 + resolution: "@backstage/backend-dev-utils@npm:0.1.5" + checksum: 7c7eced8cc6fe88b6b54d7b9f04953dbfd07846772368a0b269d4e75da30133b61e4fe29782c0dc0aa547234d75ff60a985f378f92911680a9172fa8f2820e5b + languageName: node + linkType: hard + +"@backstage/backend-openapi-utils@npm:^0.4.0": + version: 0.4.0 + resolution: "@backstage/backend-openapi-utils@npm:0.4.0" + dependencies: + "@apidevtools/swagger-parser": ^10.1.0 + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/errors": ^1.2.6 + "@backstage/types": ^1.2.0 + "@types/express": ^4.17.6 + "@types/express-serve-static-core": ^4.17.5 + ajv: ^8.16.0 express: ^4.17.1 + express-openapi-validator: ^5.0.4 + express-promise-router: ^4.1.0 + get-port: ^5.1.1 + json-schema-to-ts: ^3.0.0 + lodash: ^4.17.21 + mockttp: ^3.13.0 + openapi-merge: ^1.3.2 + openapi3-ts: ^3.1.2 + checksum: e2108143f324ecbd0373248ef7dbdf64582f21edfd027c183c8381f7459bab5bf1fef8bf2bd109cfabec6cc32c9298b85bcd6376487f7129b88c8985a34fe47a + languageName: node + linkType: hard + +"@backstage/backend-plugin-api@npm:^1.0.0, @backstage/backend-plugin-api@npm:^1.0.1, @backstage/backend-plugin-api@npm:^1.0.2, @backstage/backend-plugin-api@npm:^1.1.0": + version: 1.1.0 + resolution: "@backstage/backend-plugin-api@npm:1.1.0" + dependencies: + "@backstage/cli-common": ^0.1.15 + "@backstage/config": ^1.3.1 + "@backstage/errors": ^1.2.6 + "@backstage/plugin-auth-node": ^0.5.5 + "@backstage/plugin-permission-common": ^0.8.3 + "@backstage/types": ^1.2.0 + "@types/express": ^4.17.6 + "@types/luxon": ^3.0.0 knex: ^3.0.0 luxon: ^3.0.0 - checksum: a0d1dce15c1c90eec64e4f8d7d2eddd4ab43ebf4573db041b1ee835f27939e97eb162c20661fbafb3e8bc223c422512eea1a0327700164e51e328d620ca925c8 + checksum: 0a58762708c714511f7be16dcc6f5ceb80fb572f14f812887de2c93d83da4c70a62288fe0becb86b85f1319dcea1c632891bf2869bdca14b94d16d8066dba9ae languageName: node linkType: hard @@ -2749,50 +3234,50 @@ __metadata: languageName: node linkType: hard -"@backstage/catalog-client@npm:^1.7.0, @backstage/catalog-client@npm:^1.7.1": - version: 1.7.1 - resolution: "@backstage/catalog-client@npm:1.7.1" +"@backstage/catalog-client@npm:^1.7.0, @backstage/catalog-client@npm:^1.7.1, @backstage/catalog-client@npm:^1.9.0": + version: 1.9.0 + resolution: "@backstage/catalog-client@npm:1.9.0" dependencies: - "@backstage/catalog-model": ^1.7.0 - "@backstage/errors": ^1.2.4 + "@backstage/catalog-model": ^1.7.2 + "@backstage/errors": ^1.2.6 cross-fetch: ^4.0.0 uri-template: ^2.0.0 - checksum: 0a70a929e95b4e424b021010202e19b68ab5ad3a6b6613e5c01850f31f6067e33ebb8863119c197bc213e9d86793d5368d0ad100288802e72eb6e818f54e765f + checksum: ef26c36aee89ab1e8700fc681f5f62aa188cda714ae8bfe65ea154dc73ee6986ebabf2910805687d7eb66841765b0b6430c701726ec1f8171585a552e1f8d44f languageName: node linkType: hard -"@backstage/catalog-model@npm:^1.7.0": - version: 1.7.0 - resolution: "@backstage/catalog-model@npm:1.7.0" +"@backstage/catalog-model@npm:^1.7.0, @backstage/catalog-model@npm:^1.7.2": + version: 1.7.2 + resolution: "@backstage/catalog-model@npm:1.7.2" dependencies: - "@backstage/errors": ^1.2.4 - "@backstage/types": ^1.1.1 + "@backstage/errors": ^1.2.6 + "@backstage/types": ^1.2.0 ajv: ^8.10.0 lodash: ^4.17.21 - checksum: 6ff537e9e6064d35fa4a173a1c96f94e904489494a67a136e2dd0a743f9e3f4fd8a1f7a661fe8495dfbb642aabcc8fbf1746a300ad496b6e4a5d02f4db00f914 + checksum: 97b166303e9428c03e20750360f830a3810e70362143429e847df552cc197c60a560075f59776515518f618d9e754e377d07abaefaf6b73df8b08385f3bdd00d languageName: node linkType: hard -"@backstage/cli-common@npm:^0.1.14": - version: 0.1.14 - resolution: "@backstage/cli-common@npm:0.1.14" - checksum: 6c5031ae31f08b405e5e59105d98e43dc6d865f960e5d016067267ecabccd5a892ab65d59d5b9e31850dccddb9eb29e06bf360ab6be8f7949991561ddb163fcb +"@backstage/cli-common@npm:^0.1.14, @backstage/cli-common@npm:^0.1.15": + version: 0.1.15 + resolution: "@backstage/cli-common@npm:0.1.15" + checksum: fbfded2ff0122c28c2104fa40703486c0fe5c43acd68de2659533d46ebc11f296a06c45499d0ced1579a75ee6002739d2cb90f08fe2587e887d79b82d4f91515 languageName: node linkType: hard -"@backstage/cli-node@npm:^0.2.8, @backstage/cli-node@npm:^0.2.9": - version: 0.2.9 - resolution: "@backstage/cli-node@npm:0.2.9" +"@backstage/cli-node@npm:^0.2.10, @backstage/cli-node@npm:^0.2.11, @backstage/cli-node@npm:^0.2.8, @backstage/cli-node@npm:^0.2.9": + version: 0.2.11 + resolution: "@backstage/cli-node@npm:0.2.11" dependencies: - "@backstage/cli-common": ^0.1.14 - "@backstage/errors": ^1.2.4 - "@backstage/types": ^1.1.1 + "@backstage/cli-common": ^0.1.15 + "@backstage/errors": ^1.2.6 + "@backstage/types": ^1.2.0 "@manypkg/get-packages": ^1.1.3 "@yarnpkg/parsers": ^3.0.0 fs-extra: ^11.2.0 semver: ^7.5.3 zod: ^3.22.4 - checksum: 39a3332cc0dd732a51726d803c322ec7423c6380e494b3ef91d5c71aabd60626bc355ede3fbb8a4da4714806c4663b6bef109bb6c7100160452c0e71620dac9b + checksum: 7dffc03c9abcb2699cd46211d9ef46a72231a8167e26d0cc236e6631d37dac80979ce725e879e366c4b5a15dda2d5f19ca6255eddc351319a0aa7dded737cf5d languageName: node linkType: hard @@ -2933,9 +3418,9 @@ __metadata: languageName: node linkType: hard -"@backstage/cli@npm:^0.28.0": - version: 0.28.1 - resolution: "@backstage/cli@npm:0.28.1" +"@backstage/cli@npm:0.28.2, @backstage/cli@npm:^0.28.0": + version: 0.28.2 + resolution: "@backstage/cli@npm:0.28.2" dependencies: "@backstage/catalog-model": ^1.7.0 "@backstage/cli-common": ^0.1.14 @@ -3045,7 +3530,7 @@ __metadata: terser-webpack-plugin: ^5.1.3 ts-morph: ^23.0.0 util: ^0.12.3 - webpack: ^5.70.0 + webpack: ^5.94.0 webpack-dev-server: ^5.0.0 webpack-node-externals: ^3.0.0 yaml: ^2.0.0 @@ -3081,18 +3566,18 @@ __metadata: optional: true bin: backstage-cli: bin/backstage-cli - checksum: 5fe0537c30b69fa1236682b76ff713442e93ee62c904419a21e7343d9fa55076d8a38af89ff2d6e3e183add84ef1e46f136e0ff0be12cc3577517a493e5c0746 + checksum: 32e75a897a7a7b14df6ce43b66fdd5c9fb11b54b88fd3655257055536c77d38bf2d0c5fefbd44348f6250493673396c566eab695007f89d870757956ef659159 languageName: node linkType: hard -"@backstage/config-loader@npm:^1.9.1": - version: 1.9.1 - resolution: "@backstage/config-loader@npm:1.9.1" +"@backstage/config-loader@npm:^1.9.1, @backstage/config-loader@npm:^1.9.2, @backstage/config-loader@npm:^1.9.3, @backstage/config-loader@npm:^1.9.4": + version: 1.9.4 + resolution: "@backstage/config-loader@npm:1.9.4" dependencies: - "@backstage/cli-common": ^0.1.14 - "@backstage/config": ^1.2.0 - "@backstage/errors": ^1.2.4 - "@backstage/types": ^1.1.1 + "@backstage/cli-common": ^0.1.15 + "@backstage/config": ^1.3.1 + "@backstage/errors": ^1.2.6 + "@backstage/types": ^1.2.0 "@types/json-schema": ^7.0.6 ajv: ^8.10.0 chokidar: ^3.5.2 @@ -3102,20 +3587,221 @@ __metadata: json-schema-traverse: ^1.0.0 lodash: ^4.17.21 minimist: ^1.2.5 - node-fetch: ^2.7.0 typescript-json-schema: ^0.65.0 yaml: ^2.0.0 - checksum: e13ab3cab7a443aa94a5861bf9fe19208bd85a4087f495d6e51d007ff25fcf2c56c26c3682c476422cf407be97dfa6fbe5817595f1f5523a307eae1c23fcc489 + checksum: 2cd930531e4433252a0354b875eacbe9b889e592ef1b0d3c78be62a1ed0b9b397bb24b980125b5d5a0526c55e718312bebfb34f12df87e42b20d8bfca3e61c72 languageName: node linkType: hard -"@backstage/config@npm:^1.2.0": - version: 1.2.0 - resolution: "@backstage/config@npm:1.2.0" +"@backstage/config@npm:^1.2.0, @backstage/config@npm:^1.3.0, @backstage/config@npm:^1.3.1": + version: 1.3.1 + resolution: "@backstage/config@npm:1.3.1" + dependencies: + "@backstage/errors": ^1.2.6 + "@backstage/types": ^1.2.0 + ms: ^2.1.3 + checksum: aa193687f19b0f6d928eab8474e30425723bd86bb272f9576ce731edb580d403c339cda2a10553c48e50d08b4f3fb4c79f9fd63f8e8156b8e5da69e4ca83ba86 + languageName: node + linkType: hard + +"@backstage/core-app-api@npm:^1.15.1, @backstage/core-app-api@npm:^1.15.3": + version: 1.15.3 + resolution: "@backstage/core-app-api@npm:1.15.3" + dependencies: + "@backstage/config": ^1.3.1 + "@backstage/core-plugin-api": ^1.10.2 + "@backstage/types": ^1.2.0 + "@backstage/version-bridge": ^1.0.10 + "@types/prop-types": ^15.7.3 + history: ^5.0.0 + i18next: ^22.4.15 + lodash: ^4.17.21 + prop-types: ^15.7.2 + react-use: ^17.2.4 + zen-observable: ^0.10.0 + zod: ^3.22.4 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: cba984dc0afe7b6bbb1b8fdc4bfc349bceab766d189c7517e39502042d38084c3d54610610e1ba305c8c1e5ccaa4a298c2640910d0a15d6741848c62c2436cc5 + languageName: node + linkType: hard + +"@backstage/core-compat-api@npm:^0.3.1, @backstage/core-compat-api@npm:^0.3.4": + version: 0.3.4 + resolution: "@backstage/core-compat-api@npm:0.3.4" + dependencies: + "@backstage/core-plugin-api": ^1.10.2 + "@backstage/frontend-plugin-api": ^0.9.3 + "@backstage/version-bridge": ^1.0.10 + lodash: ^4.17.21 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: f6912e18abb9f549e50c102a2ff1198b06f41598392deeace7e43d812e2bc665e73a585e14922e12014e497a25b579388b1a3c9c094f6c6dc210e12bc10c391f + languageName: node + linkType: hard + +"@backstage/core-components@npm:^0.15.1": + version: 0.15.1 + resolution: "@backstage/core-components@npm:0.15.1" dependencies: + "@backstage/config": ^1.2.0 + "@backstage/core-plugin-api": ^1.10.0 "@backstage/errors": ^1.2.4 - "@backstage/types": ^1.1.1 - checksum: 7844f0f086f894eca110f5c68832cd7c0beca2dc0ce2139b10af1d2cde6faf25afb249d3f980375def338b0ad885ef9e98f0d5a1b475bfe54c51b2b6636f1fef + "@backstage/theme": ^0.6.0 + "@backstage/version-bridge": ^1.0.10 + "@date-io/core": ^1.3.13 + "@material-table/core": ^3.1.0 + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + "@material-ui/lab": 4.0.0-alpha.61 + "@react-hookz/web": ^24.0.0 + "@types/react-sparklines": ^1.7.0 + ansi-regex: ^6.0.1 + classnames: ^2.2.6 + d3-selection: ^3.0.0 + d3-shape: ^3.0.0 + d3-zoom: ^3.0.0 + dagre: ^0.8.5 + linkify-react: 4.1.3 + linkifyjs: 4.1.3 + lodash: ^4.17.21 + pluralize: ^8.0.0 + qs: ^6.9.4 + rc-progress: 3.5.1 + react-helmet: 6.1.0 + react-hook-form: ^7.12.2 + react-idle-timer: 5.7.2 + react-markdown: ^8.0.0 + react-sparklines: ^1.7.0 + react-syntax-highlighter: ^15.4.5 + react-use: ^17.3.2 + react-virtualized-auto-sizer: ^1.0.11 + react-window: ^1.8.6 + remark-gfm: ^3.0.1 + zen-observable: ^0.10.0 + zod: ^3.22.4 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 1eee1340919893194b34e9ab4237147910caecf1158c511481bbb80630bdd66d7dc0e156f0c1448e6b301689e32f7b98c0bb2f8127f2ffe85e596d9871903fcd + languageName: node + linkType: hard + +"@backstage/core-components@npm:^0.16.2": + version: 0.16.2 + resolution: "@backstage/core-components@npm:0.16.2" + dependencies: + "@backstage/config": ^1.3.1 + "@backstage/core-plugin-api": ^1.10.2 + "@backstage/errors": ^1.2.6 + "@backstage/theme": ^0.6.3 + "@backstage/version-bridge": ^1.0.10 + "@date-io/core": ^1.3.13 + "@material-table/core": ^3.1.0 + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + "@material-ui/lab": 4.0.0-alpha.61 + "@react-hookz/web": ^24.0.0 + "@testing-library/react": ^16.0.0 + "@types/react-sparklines": ^1.7.0 + ansi-regex: ^6.0.1 + classnames: ^2.2.6 + d3-selection: ^3.0.0 + d3-shape: ^3.0.0 + d3-zoom: ^3.0.0 + dagre: ^0.8.5 + linkify-react: 4.1.3 + linkifyjs: 4.1.3 + lodash: ^4.17.21 + pluralize: ^8.0.0 + qs: ^6.9.4 + rc-progress: 3.5.1 + react-helmet: 6.1.0 + react-hook-form: ^7.12.2 + react-idle-timer: 5.7.2 + react-markdown: ^8.0.0 + react-sparklines: ^1.7.0 + react-syntax-highlighter: ^15.4.5 + react-use: ^17.3.2 + react-virtualized-auto-sizer: ^1.0.11 + react-window: ^1.8.6 + remark-gfm: ^3.0.1 + zen-observable: ^0.10.0 + zod: ^3.22.4 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 7d9c89e3abca65828399958cbca5642f003ff8d1b0a5d9b45b36f7fc1b9607df30f74c369b04e11d194e691cd55e26822c726dec4e5b005c25b284ac7c5240bc + languageName: node + linkType: hard + +"@backstage/core-plugin-api@npm:^1.10.0, @backstage/core-plugin-api@npm:^1.10.2": + version: 1.10.2 + resolution: "@backstage/core-plugin-api@npm:1.10.2" + dependencies: + "@backstage/config": ^1.3.1 + "@backstage/errors": ^1.2.6 + "@backstage/types": ^1.2.0 + "@backstage/version-bridge": ^1.0.10 + history: ^5.0.0 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: c2bb2857237ca2453fddd1361142ab7fb26345ae833e90383a83fc8a186b31efef5d60e96423c21ebad4dd47c677e5f4a87460149a10eabdb790cbac844f83ae + languageName: node + linkType: hard + +"@backstage/dev-utils@npm:1.1.2": + version: 1.1.2 + resolution: "@backstage/dev-utils@npm:1.1.2" + dependencies: + "@backstage/app-defaults": ^1.5.12 + "@backstage/catalog-model": ^1.7.0 + "@backstage/core-app-api": ^1.15.1 + "@backstage/core-components": ^0.15.1 + "@backstage/core-plugin-api": ^1.10.0 + "@backstage/integration-react": ^1.2.0 + "@backstage/plugin-catalog-react": ^1.14.0 + "@backstage/theme": ^0.6.0 + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + react-use: ^17.2.4 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 6695acd5d4633892a3f55848e95b3ea2c969ad0f4601134aad1256a5366505f29fcfe1b0ee35c6086c1b16a92706fa585b6d91fdbff30bf0697d47815e6724b6 languageName: node linkType: hard @@ -3134,13 +3820,13 @@ __metadata: languageName: node linkType: hard -"@backstage/errors@npm:^1.2.4": - version: 1.2.4 - resolution: "@backstage/errors@npm:1.2.4" +"@backstage/errors@npm:^1.2.4, @backstage/errors@npm:^1.2.5, @backstage/errors@npm:^1.2.6": + version: 1.2.6 + resolution: "@backstage/errors@npm:1.2.6" dependencies: - "@backstage/types": ^1.1.1 + "@backstage/types": ^1.2.0 serialize-error: ^8.0.1 - checksum: ed988b2d3594a2fe989dd45fe197154e522194e30602552224e4a2bf6ed895c671e7f832d5c01b8e24881484698ccf3abaf2930dba5374bccfdaa283f4850fb9 + checksum: 9867157464cf5f8821109faa46c101a30f94b701e08b7cb23c5884a2e83aa4b06ff7118b62210da84db1a770b1171ec219b161caf04748ad4b8c2f90a9f0fdc5 languageName: node linkType: hard @@ -3154,14341 +3840,23140 @@ __metadata: languageName: node linkType: hard -"@backstage/integration-aws-node@npm:^0.1.12": - version: 0.1.12 - resolution: "@backstage/integration-aws-node@npm:0.1.12" +"@backstage/frontend-app-api@npm:^0.10.3": + version: 0.10.3 + resolution: "@backstage/frontend-app-api@npm:0.10.3" + dependencies: + "@backstage/config": ^1.3.1 + "@backstage/core-app-api": ^1.15.3 + "@backstage/core-plugin-api": ^1.10.2 + "@backstage/errors": ^1.2.6 + "@backstage/frontend-defaults": ^0.1.4 + "@backstage/frontend-plugin-api": ^0.9.3 + "@backstage/types": ^1.2.0 + "@backstage/version-bridge": ^1.0.10 + lodash: ^4.17.21 + zod: ^3.22.4 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: f263f50e6299ffdb31112069833a5d722c088c1c5c87b3dd18297f06e2162854eea269643fde2b2d3df246ba7634becbd78d890e68ce41274b5a35fa6b016305 + languageName: node + linkType: hard + +"@backstage/frontend-defaults@npm:^0.1.4": + version: 0.1.4 + resolution: "@backstage/frontend-defaults@npm:0.1.4" + dependencies: + "@backstage/config": ^1.3.1 + "@backstage/errors": ^1.2.6 + "@backstage/frontend-app-api": ^0.10.3 + "@backstage/frontend-plugin-api": ^0.9.3 + "@backstage/plugin-app": ^0.1.4 + "@react-hookz/web": ^24.0.0 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: a4d8fb347f7424f1f2cc305d8d311130bd696e1aeca8ec119ddf0d268d73a746c58054015f5c696ef885cd429dff5ed49b2ac4c768160b2c87be2f0735dbf0da + languageName: node + linkType: hard + +"@backstage/frontend-plugin-api@npm:^0.9.0, @backstage/frontend-plugin-api@npm:^0.9.3": + version: 0.9.3 + resolution: "@backstage/frontend-plugin-api@npm:0.9.3" + dependencies: + "@backstage/core-components": ^0.16.2 + "@backstage/core-plugin-api": ^1.10.2 + "@backstage/types": ^1.2.0 + "@backstage/version-bridge": ^1.0.10 + "@material-ui/core": ^4.12.4 + lodash: ^4.17.21 + zod: ^3.22.4 + zod-to-json-schema: ^3.21.4 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: c2e1056f3338b8df5d30c61947994f1a707dc08d97e6b5ebb87722ddcac23c60fc006bc1917bf0929609098512da05ed232c2dc9c237c16979aea63681f81cb4 + languageName: node + linkType: hard + +"@backstage/frontend-test-utils@npm:^0.2.4": + version: 0.2.4 + resolution: "@backstage/frontend-test-utils@npm:0.2.4" + dependencies: + "@backstage/config": ^1.3.1 + "@backstage/frontend-app-api": ^0.10.3 + "@backstage/frontend-plugin-api": ^0.9.3 + "@backstage/plugin-app": ^0.1.4 + "@backstage/test-utils": ^1.7.3 + "@backstage/types": ^1.2.0 + "@backstage/version-bridge": ^1.0.10 + zod: ^3.22.4 + peerDependencies: + "@testing-library/react": ^16.0.0 + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: f3ff1b748e3edb01f557f875bbc4eade8bbdb0a63331494790b2c9f4e7ca140b85a35b3783a067cb5bd3243b521d285716ff74262ff1c0dcdf76fe7ef6c77af5 + languageName: node + linkType: hard + +"@backstage/integration-aws-node@npm:^0.1.12, @backstage/integration-aws-node@npm:^0.1.13, @backstage/integration-aws-node@npm:^0.1.14": + version: 0.1.14 + resolution: "@backstage/integration-aws-node@npm:0.1.14" dependencies: "@aws-sdk/client-sts": ^3.350.0 "@aws-sdk/credential-provider-node": ^3.350.0 "@aws-sdk/credential-providers": ^3.350.0 "@aws-sdk/types": ^3.347.0 "@aws-sdk/util-arn-parser": ^3.310.0 - "@backstage/config": ^1.2.0 - "@backstage/errors": ^1.2.4 - checksum: 01c62b22bdb06eafa174c6f80a95f332df867cebed4554be328efd1f1338dedb86e6bdb7cfda2f2acb1a6a8a92891024da7c81b7ddbfb269b72c3725a54de576 + "@backstage/config": ^1.3.1 + "@backstage/errors": ^1.2.6 + checksum: 65b5a0f8c3b7936441eb0e7d853fb8f3feb6cb06421c2d9aa8f209503eaf625b88213a01747aa03fd3d6189be1c8ff301821f37506e813d4e76d9df53ad00f0e languageName: node linkType: hard -"@backstage/integration@npm:^1.15.0, @backstage/integration@npm:^1.15.1": - version: 1.15.1 - resolution: "@backstage/integration@npm:1.15.1" +"@backstage/integration-react@npm:^1.2.0, @backstage/integration-react@npm:^1.2.2": + version: 1.2.2 + resolution: "@backstage/integration-react@npm:1.2.2" + dependencies: + "@backstage/config": ^1.3.1 + "@backstage/core-plugin-api": ^1.10.2 + "@backstage/integration": ^1.16.0 + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: cf238ee64138a0fe2bd3957b3f852b3b2514176f557d532db2a358626540c00c021bd189ca1754cb40d536a62eeb1939e0fd9d4a37fc29a4df1e3e35bcd90578 + languageName: node + linkType: hard + +"@backstage/integration@npm:^1.15.0, @backstage/integration@npm:^1.15.1, @backstage/integration@npm:^1.15.2, @backstage/integration@npm:^1.16.0": + version: 1.16.0 + resolution: "@backstage/integration@npm:1.16.0" dependencies: "@azure/identity": ^4.0.0 - "@backstage/config": ^1.2.0 - "@backstage/errors": ^1.2.4 + "@azure/storage-blob": ^12.5.0 + "@backstage/config": ^1.3.1 + "@backstage/errors": ^1.2.6 "@octokit/auth-app": ^4.0.0 "@octokit/rest": ^19.0.3 cross-fetch: ^4.0.0 git-url-parse: ^15.0.0 lodash: ^4.17.21 luxon: ^3.0.0 - checksum: 078e366fc704fcc061f16ba461c1b11f90c07920af9fc5a6894abbe4232c184ee925ab6c1f2af7c02233d27d6722395e034909ef251edd7438484fa31e68833a + checksum: d116f5b7ff06f6e520626c91c4551557a2a13a65b4914d62f6629744c6651e8925f901d193dcec9274a484c29147900daaa93c93b9acd9f98a7b06abf101a555 languageName: node linkType: hard -"@backstage/plugin-auth-node@npm:^0.5.2, @backstage/plugin-auth-node@npm:^0.5.3": - version: 0.5.3 - resolution: "@backstage/plugin-auth-node@npm:0.5.3" +"@backstage/plugin-api-docs@npm:^0.11.11": + version: 0.11.11 + resolution: "@backstage/plugin-api-docs@npm:0.11.11" + dependencies: + "@asyncapi/react-component": 1.3.1 + "@backstage/catalog-model": ^1.7.0 + "@backstage/core-compat-api": ^0.3.1 + "@backstage/core-components": ^0.15.1 + "@backstage/core-plugin-api": ^1.10.0 + "@backstage/frontend-plugin-api": ^0.9.0 + "@backstage/plugin-catalog": ^1.24.0 + "@backstage/plugin-catalog-common": ^1.1.0 + "@backstage/plugin-catalog-react": ^1.14.0 + "@backstage/plugin-permission-react": ^0.4.27 + "@graphiql/react": ^0.23.0 + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + "@material-ui/lab": 4.0.0-alpha.61 + graphiql: 3.1.1 + graphql: ^16.0.0 + graphql-config: ^5.0.2 + graphql-ws: ^5.4.1 + isomorphic-form-data: ^2.0.0 + swagger-ui-react: ^5.0.0 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 145d864463a852f35d89ad51a7f599578cfacc7de4ea90611cdd337dbcf92a3a52bb33e64f38b102806ddf97dcbee9a9e2e9f38ff334244f8502f3c193a1a2ec + languageName: node + linkType: hard + +"@backstage/plugin-app-backend@npm:^0.3.76": + version: 0.3.76 + resolution: "@backstage/plugin-app-backend@npm:0.3.76" dependencies: "@backstage/backend-common": ^0.25.0 "@backstage/backend-plugin-api": ^1.0.1 - "@backstage/catalog-client": ^1.7.1 - "@backstage/catalog-model": ^1.7.0 "@backstage/config": ^1.2.0 + "@backstage/config-loader": ^1.9.1 "@backstage/errors": ^1.2.4 + "@backstage/plugin-app-node": ^0.1.26 + "@backstage/plugin-auth-node": ^0.5.3 "@backstage/types": ^1.1.1 - "@types/express": "*" - "@types/passport": ^1.0.3 + "@types/express": ^4.17.6 express: ^4.17.1 - jose: ^5.0.0 + express-promise-router: ^4.1.0 + fs-extra: ^11.2.0 + globby: ^11.0.0 + helmet: ^6.0.0 + knex: ^3.0.0 lodash: ^4.17.21 - node-fetch: ^2.7.0 - passport: ^0.7.0 - winston: ^3.2.1 - zod: ^3.22.4 - zod-to-json-schema: ^3.21.4 - zod-validation-error: ^3.4.0 - checksum: 6a8fcac434b3653011aa634fab973b9bdc9daf141335948669bcbd8e2c5f97e0797feaaaae34e17e20334835cdb83fea6c7b50939f1a18f9c88e245406230c50 + luxon: ^3.0.0 + yn: ^4.0.0 + checksum: d732efa6f692c631c13b90db5a32135fa950fc43ab35d8f4be075851e943304edc93074617747b5b78ee7d93c93ecfedd61e81f4617b3f081db3a04e3b20da5b languageName: node linkType: hard -"@backstage/plugin-events-node@npm:^0.4.0, @backstage/plugin-events-node@npm:^0.4.2": - version: 0.4.3 - resolution: "@backstage/plugin-events-node@npm:0.4.3" +"@backstage/plugin-app-node@npm:^0.1.26": + version: 0.1.28 + resolution: "@backstage/plugin-app-node@npm:0.1.28" dependencies: - "@backstage/backend-plugin-api": ^1.0.1 - "@backstage/errors": ^1.2.4 - "@backstage/types": ^1.1.1 - cross-fetch: ^4.0.0 - uri-template: ^2.0.0 - checksum: fd66714810b787dd3b4a3e97b62746bfb9981b7cc8f5cf6188718f9249a7f000e6e3fcf8ef512dc202078082ca9dc74cadaf0566e316aab44dbf80b367e0a646 + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/config-loader": ^1.9.3 + "@types/express": ^4.17.6 + express: ^4.17.1 + fs-extra: ^11.2.0 + checksum: ee523c274e671ae60e5413e8688843fa61d37140bcabfcdd9f29ae216fe393eebc1f023ef3d764ab81e32a8462f5bfb843df8e0995854cbc46c4633bae9db365 languageName: node linkType: hard -"@backstage/plugin-permission-common@npm:^0.8.1": - version: 0.8.1 - resolution: "@backstage/plugin-permission-common@npm:0.8.1" +"@backstage/plugin-app@npm:^0.1.4": + version: 0.1.4 + resolution: "@backstage/plugin-app@npm:0.1.4" + dependencies: + "@backstage/core-components": ^0.16.2 + "@backstage/core-plugin-api": ^1.10.2 + "@backstage/frontend-plugin-api": ^0.9.3 + "@backstage/integration-react": ^1.2.2 + "@backstage/plugin-permission-react": ^0.4.29 + "@backstage/theme": ^0.6.3 + "@material-ui/core": ^4.9.13 + "@material-ui/icons": ^4.9.1 + "@material-ui/lab": ^4.0.0-alpha.61 + react-use: ^17.2.4 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 6f3ef0e975a85834e3f3f07e1bbe91a0822bfcbcd0c7c38f1a0f610f39bd7513fbe61bbb69236ce76727de8c98284c37fa2aba22b29aefc2032a3fe51a440bee + languageName: node + linkType: hard + +"@backstage/plugin-auth-backend-module-atlassian-provider@npm:^0.3.1, @backstage/plugin-auth-backend-module-atlassian-provider@npm:^0.3.3": + version: 0.3.3 + resolution: "@backstage/plugin-auth-backend-module-atlassian-provider@npm:0.3.3" dependencies: - "@backstage/config": ^1.2.0 - "@backstage/errors": ^1.2.4 - "@backstage/types": ^1.1.1 - cross-fetch: ^4.0.0 - uuid: ^9.0.0 - zod: ^3.22.4 - zod-to-json-schema: ^3.20.4 - checksum: 00f71b998aecefcf413b335ef67897be2210f9cecb1f58bb28e466f68acd04276e3105f2e99ad242792dfd2902e4ae7ea023efb8cda92447aef92a10b83d87e5 + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/plugin-auth-node": ^0.5.5 + express: ^4.18.2 + passport: ^0.7.0 + passport-atlassian-oauth2: ^2.1.0 + checksum: 500819d2d4597d6745f84b706525425f64aa6e1027f4bfde39d23225b9c0155aad61214ad20ba64aa9106cc32ec7fb80bcdf465b705cdaaa87b7277fe144006c languageName: node linkType: hard -"@backstage/plugin-permission-node@npm:^0.8.4": - version: 0.8.4 - resolution: "@backstage/plugin-permission-node@npm:0.8.4" +"@backstage/plugin-auth-backend-module-auth0-provider@npm:^0.1.1, @backstage/plugin-auth-backend-module-auth0-provider@npm:^0.1.3": + version: 0.1.3 + resolution: "@backstage/plugin-auth-backend-module-auth0-provider@npm:0.1.3" dependencies: - "@backstage/backend-common": ^0.25.0 - "@backstage/backend-plugin-api": ^1.0.1 - "@backstage/config": ^1.2.0 - "@backstage/errors": ^1.2.4 - "@backstage/plugin-auth-node": ^0.5.3 - "@backstage/plugin-permission-common": ^0.8.1 - "@types/express": ^4.17.6 + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/plugin-auth-node": ^0.5.5 express: ^4.17.1 - express-promise-router: ^4.1.0 - zod: ^3.22.4 - zod-to-json-schema: ^3.20.4 - checksum: a00c269e4777ff5e10db7a3859110f3a487c91e4c9422eb0650cbef3cfffc3dbd2f38e98fd793daef8242da2777ffbd87adb5715d21f0dff998b90c65261904e - languageName: node - linkType: hard - -"@backstage/release-manifests@npm:^0.0.11": - version: 0.0.11 - resolution: "@backstage/release-manifests@npm:0.0.11" - dependencies: - cross-fetch: ^4.0.0 - checksum: c03a21524436f1e423a40ac15f685b7f13ce3205e2684ce859571db3b70c78d783b3e1702ba3ffb2ba2d446f7444e8c592c6696b7c618fbf6648e91cb4c4fe07 + passport-auth0: ^1.4.3 + passport-oauth2: ^1.6.1 + checksum: 40fb863f1e951ba6b1426606cb84916bc5ac56c4248b2e26e92cb8bd9b73bf54fc81a8c9f33468cf459f473bf7904ab805f00a1d3598eb2f487b339ff0c15b4a languageName: node linkType: hard -"@backstage/repo-tools@npm:^0.10.0": - version: 0.10.0 - resolution: "@backstage/repo-tools@npm:0.10.0" +"@backstage/plugin-auth-backend-module-aws-alb-provider@npm:^0.2.1": + version: 0.2.1 + resolution: "@backstage/plugin-auth-backend-module-aws-alb-provider@npm:0.2.1" dependencies: - "@apidevtools/swagger-parser": ^10.1.0 - "@apisyouwonthate/style-guide": ^1.4.0 + "@backstage/backend-common": ^0.25.0 "@backstage/backend-plugin-api": ^1.0.1 - "@backstage/catalog-model": ^1.7.0 - "@backstage/cli-common": ^0.1.14 - "@backstage/cli-node": ^0.2.9 - "@backstage/config-loader": ^1.9.1 "@backstage/errors": ^1.2.4 - "@manypkg/get-packages": ^1.1.3 - "@microsoft/api-documenter": ^7.25.7 - "@microsoft/api-extractor": ^7.47.2 - "@openapitools/openapi-generator-cli": ^2.7.0 - "@stoplight/spectral-core": ^1.18.0 - "@stoplight/spectral-formatters": ^1.1.0 - "@stoplight/spectral-functions": ^1.7.2 - "@stoplight/spectral-parsers": ^1.0.2 - "@stoplight/spectral-rulesets": ^1.18.0 - "@stoplight/spectral-runtime": ^1.1.2 - "@stoplight/types": ^14.0.0 - "@useoptic/openapi-utilities": ^0.55.0 - chalk: ^4.0.0 - codeowners-utils: ^1.0.2 - command-exists: ^1.2.9 - commander: ^12.0.0 - fs-extra: ^11.2.0 - glob: ^8.0.3 - is-glob: ^4.0.3 - js-yaml: ^4.1.0 - lodash: ^4.17.21 - minimatch: ^9.0.0 - p-limit: ^3.0.2 - portfinder: ^1.0.32 - ts-morph: ^23.0.0 - yaml-diff-patch: ^2.0.0 - peerDependencies: - "@microsoft/api-extractor-model": "*" - "@microsoft/tsdoc": "*" - "@microsoft/tsdoc-config": "*" - "@useoptic/optic": ^1.0.0 - prettier: ^2.8.1 - typescript: "> 3.0.0" - peerDependenciesMeta: - prettier: - optional: true - bin: - backstage-repo-tools: bin/backstage-repo-tools - checksum: 8a68c69f053edadd087d829823880902d8e6d55e77d756d6b4ba4640af29493036ac5fa08cec08666b59ddfb27cacf4975fd24ac7ba785dab5b1d8a96df62bec + "@backstage/plugin-auth-backend": ^0.23.1 + "@backstage/plugin-auth-node": ^0.5.3 + jose: ^5.0.0 + node-cache: ^5.1.2 + node-fetch: ^2.7.0 + checksum: 4e294fbb06dd0c38c370a9e04d351b2ed5143934605bc6c5f415c5067797a42ab72f909acd19cf1f1dccb93e0dc010354b08d8c348d4db7122e0bf8d440405e6 languageName: node linkType: hard -"@backstage/types@npm:^1.1.1": - version: 1.1.1 - resolution: "@backstage/types@npm:1.1.1" - checksum: 54bd9e53570cf2a7a8d9ae30e7181ee6b669b7f543949391a2168f616e1f7b13f0419f324941a87aa15f723d0313eda8f212db2077675421d6f91484f477c4f5 +"@backstage/plugin-auth-backend-module-aws-alb-provider@npm:^0.3.1": + version: 0.3.1 + resolution: "@backstage/plugin-auth-backend-module-aws-alb-provider@npm:0.3.1" + dependencies: + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/errors": ^1.2.6 + "@backstage/plugin-auth-backend": ^0.24.1 + "@backstage/plugin-auth-node": ^0.5.5 + jose: ^5.0.0 + node-cache: ^5.1.2 + checksum: d6e91c7523947c25c83d31a0a9bd307a0bf8a70ca6198cd7654868000a2be53afdcdd5b280e2c962a81362f2c1de3dee95132af9d1a9a7420e02300cf9a87614 languageName: node linkType: hard -"@balena/dockerignore@npm:^1.0.2": - version: 1.0.2 - resolution: "@balena/dockerignore@npm:1.0.2" - checksum: 0d39f8fbcfd1a983a44bced54508471ab81aaaa40e2c62b46a9f97eac9d6b265790799f16919216db486331dedaacdde6ecbd6b7abe285d39bc50de111991699 +"@backstage/plugin-auth-backend-module-azure-easyauth-provider@npm:^0.2.1, @backstage/plugin-auth-backend-module-azure-easyauth-provider@npm:^0.2.3": + version: 0.2.3 + resolution: "@backstage/plugin-auth-backend-module-azure-easyauth-provider@npm:0.2.3" + dependencies: + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/catalog-model": ^1.7.2 + "@backstage/errors": ^1.2.6 + "@backstage/plugin-auth-node": ^0.5.5 + "@types/passport": ^1.0.16 + express: ^4.19.2 + jose: ^5.0.0 + passport: ^0.7.0 + checksum: 2c9c2ff7f1829f1123a14bcfe22a0623f4d5769d27701606d69617c9f2f2beb91b5059625b230d30f3f612fede06ca7c922a1e80d0ebd11bf9326f786e58c02b languageName: node linkType: hard -"@bcoe/v8-coverage@npm:^0.2.3": +"@backstage/plugin-auth-backend-module-bitbucket-provider@npm:^0.2.1, @backstage/plugin-auth-backend-module-bitbucket-provider@npm:^0.2.3": version: 0.2.3 - resolution: "@bcoe/v8-coverage@npm:0.2.3" - checksum: 850f9305536d0f2bd13e9e0881cb5f02e4f93fad1189f7b2d4bebf694e3206924eadee1068130d43c11b750efcc9405f88a8e42ef098b6d75239c0f047de1a27 + resolution: "@backstage/plugin-auth-backend-module-bitbucket-provider@npm:0.2.3" + dependencies: + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/plugin-auth-node": ^0.5.5 + express: ^4.18.2 + passport: ^0.7.0 + passport-bitbucket-oauth2: ^0.1.2 + checksum: bfa7fbe3fc94d639908a4eb3f288f2f2fd3684b8094f760a878f9fd608d8d86eac4257f84c59a5f4251f52849bb6e9621767006f7e0960a72226789a17847314 languageName: node linkType: hard -"@changesets/apply-release-plan@npm:^7.0.5": - version: 7.0.5 - resolution: "@changesets/apply-release-plan@npm:7.0.5" +"@backstage/plugin-auth-backend-module-bitbucket-server-provider@npm:^0.1.1, @backstage/plugin-auth-backend-module-bitbucket-server-provider@npm:^0.1.3": + version: 0.1.3 + resolution: "@backstage/plugin-auth-backend-module-bitbucket-server-provider@npm:0.1.3" dependencies: - "@changesets/config": ^3.0.3 - "@changesets/get-version-range-type": ^0.4.0 - "@changesets/git": ^3.0.1 - "@changesets/should-skip-package": ^0.1.1 - "@changesets/types": ^6.0.0 - "@manypkg/get-packages": ^1.1.3 - detect-indent: ^6.0.0 - fs-extra: ^7.0.1 - lodash.startcase: ^4.4.0 - outdent: ^0.5.0 - prettier: ^2.7.1 - resolve-from: ^5.0.0 - semver: ^7.5.3 - checksum: f6a1b90d89fd08b46c11fad05d5fee510ff8a1888c163fd6221ccfb045eab013fa57c0c32c5697d6406852a39cf4df01b44f3ecca4746f30bd610bec54aa9abf + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/plugin-auth-node": ^0.5.5 + passport: ^0.7.0 + passport-oauth2: ^1.6.1 + checksum: b4c2d9fcfcca85c094166daeef1f8fb7e3d14c60b2f60627793e7af563502e750c5a29085af71d22cdb5793bf3a1c93e7b69041040e628ecb90db1db64b5346a languageName: node linkType: hard -"@changesets/assemble-release-plan@npm:^6.0.4": - version: 6.0.4 - resolution: "@changesets/assemble-release-plan@npm:6.0.4" +"@backstage/plugin-auth-backend-module-cloudflare-access-provider@npm:^0.3.1, @backstage/plugin-auth-backend-module-cloudflare-access-provider@npm:^0.3.3": + version: 0.3.3 + resolution: "@backstage/plugin-auth-backend-module-cloudflare-access-provider@npm:0.3.3" dependencies: - "@changesets/errors": ^0.2.0 - "@changesets/get-dependents-graph": ^2.1.2 - "@changesets/should-skip-package": ^0.1.1 - "@changesets/types": ^6.0.0 - "@manypkg/get-packages": ^1.1.3 - semver: ^7.5.3 - checksum: 948066a8ca8e12390599f641a0439b6a4d6c1c2a9958f58596aa50cf68d7d594b28acc1eb6bd0ad17df2025f0614006e44728a2614fad2a3d54c669568bf6d65 + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/config": ^1.3.1 + "@backstage/errors": ^1.2.6 + "@backstage/plugin-auth-node": ^0.5.5 + express: ^4.18.2 + jose: ^5.0.0 + checksum: 3078d994dd0a31c345cfa017c88855de1fe2a3408d78bbf4cef957c35eb3ffac8930669dae5431fef2ee677a74cff8788b9eb03514ef8c282410a3e341628a9e languageName: node linkType: hard -"@changesets/changelog-git@npm:^0.2.0": - version: 0.2.0 - resolution: "@changesets/changelog-git@npm:0.2.0" +"@backstage/plugin-auth-backend-module-gcp-iap-provider@npm:^0.3.1, @backstage/plugin-auth-backend-module-gcp-iap-provider@npm:^0.3.3": + version: 0.3.3 + resolution: "@backstage/plugin-auth-backend-module-gcp-iap-provider@npm:0.3.3" dependencies: - "@changesets/types": ^6.0.0 - checksum: 132660f7fdabbdda00ac803cc822d6427a1a38a17a5f414e87ad32f6dc4cbef5280a147ecdc087a28dc06c8bd0762f8d6e7132d01b8a4142b59fbe1bc2177034 + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/errors": ^1.2.6 + "@backstage/plugin-auth-node": ^0.5.5 + "@backstage/types": ^1.2.0 + google-auth-library: ^9.0.0 + checksum: 911cba93765c81bf64093c93e9d7e145d85dc836aa9ccfeff4e846eb335a97cafca81fffff8ee627951c3e8b141d850f4d3fec118679b9750cb8695baa747335 languageName: node linkType: hard -"@changesets/cli@npm:^2.27.1": - version: 2.27.9 - resolution: "@changesets/cli@npm:2.27.9" +"@backstage/plugin-auth-backend-module-github-provider@npm:^0.2.1, @backstage/plugin-auth-backend-module-github-provider@npm:^0.2.3": + version: 0.2.3 + resolution: "@backstage/plugin-auth-backend-module-github-provider@npm:0.2.3" dependencies: - "@changesets/apply-release-plan": ^7.0.5 - "@changesets/assemble-release-plan": ^6.0.4 - "@changesets/changelog-git": ^0.2.0 - "@changesets/config": ^3.0.3 - "@changesets/errors": ^0.2.0 - "@changesets/get-dependents-graph": ^2.1.2 - "@changesets/get-release-plan": ^4.0.4 - "@changesets/git": ^3.0.1 - "@changesets/logger": ^0.1.1 - "@changesets/pre": ^2.0.1 - "@changesets/read": ^0.6.1 - "@changesets/should-skip-package": ^0.1.1 - "@changesets/types": ^6.0.0 - "@changesets/write": ^0.3.2 - "@manypkg/get-packages": ^1.1.3 - ansi-colors: ^4.1.3 - ci-info: ^3.7.0 - enquirer: ^2.3.0 - external-editor: ^3.1.0 - fs-extra: ^7.0.1 - mri: ^1.2.0 - p-limit: ^2.2.0 - package-manager-detector: ^0.2.0 - picocolors: ^1.1.0 - resolve-from: ^5.0.0 - semver: ^7.5.3 - spawndamnit: ^2.0.0 - term-size: ^2.1.0 - bin: - changeset: bin.js - checksum: 4bd36c152f9f93716b001f3ed849717588d2a9eb97f058e86f95ba6a43d8e4311073174251150aabb96f0a1ab5f8ab5ee6a32f85fc9248363f92b3826227cb9d + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/plugin-auth-node": ^0.5.5 + passport-github2: ^0.1.12 + checksum: b0e995bbfc91dcd6b0ecc167ec08cc0499e04e96f50b4c48c783c7b09c44d727789b3ac09831170c69c978a216fe5b2cd29e8ef47d493e5cfe0fd770ecb95cc8 languageName: node linkType: hard -"@changesets/config@npm:^3.0.3": - version: 3.0.3 - resolution: "@changesets/config@npm:3.0.3" +"@backstage/plugin-auth-backend-module-gitlab-provider@npm:^0.2.1, @backstage/plugin-auth-backend-module-gitlab-provider@npm:^0.2.3": + version: 0.2.3 + resolution: "@backstage/plugin-auth-backend-module-gitlab-provider@npm:0.2.3" dependencies: - "@changesets/errors": ^0.2.0 - "@changesets/get-dependents-graph": ^2.1.2 - "@changesets/logger": ^0.1.1 - "@changesets/types": ^6.0.0 - "@manypkg/get-packages": ^1.1.3 - fs-extra: ^7.0.1 - micromatch: ^4.0.2 - checksum: f216f497e09c0fcdd4c397fc3998d1651a171b89981d2bed2a6c23c0f55ffa4e240cadbd13902bf91c218686165689a5183674a5b4682d80d3d5b8b9c569f5f1 + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/plugin-auth-node": ^0.5.5 + express: ^4.18.2 + passport: ^0.7.0 + passport-gitlab2: ^5.0.0 + checksum: 0129778e83d8fc9d8952d496f50cd5c882655f992df193935c4eefad5775b1fcecfeca88485dee65ec8382e5109a2b9b080b7668d08eab59318b168257eaa150 languageName: node linkType: hard -"@changesets/errors@npm:^0.2.0": - version: 0.2.0 - resolution: "@changesets/errors@npm:0.2.0" +"@backstage/plugin-auth-backend-module-google-provider@npm:^0.2.1, @backstage/plugin-auth-backend-module-google-provider@npm:^0.2.3": + version: 0.2.3 + resolution: "@backstage/plugin-auth-backend-module-google-provider@npm:0.2.3" dependencies: - extendable-error: ^0.1.5 - checksum: 4b79373f92287af4f723e8dbbccaf0299aa8735fc043243d0ad587f04a7614615ea50180be575d4438b9f00aa82d1cf85e902b77a55bdd3e0a8dd97e77b18c60 + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/plugin-auth-node": ^0.5.5 + google-auth-library: ^9.0.0 + passport-google-oauth20: ^2.0.0 + checksum: 5e4a2392f8206e4ebe362162e22b1b797b20dd6ad28e6218b59f93596420937e6efd6f56148fa95a0fc20bccaa7381264b329a70643de5bb5b2af51080cf6a5a languageName: node linkType: hard -"@changesets/get-dependents-graph@npm:^2.1.2": - version: 2.1.2 - resolution: "@changesets/get-dependents-graph@npm:2.1.2" +"@backstage/plugin-auth-backend-module-guest-provider@npm:^0.2.1": + version: 0.2.3 + resolution: "@backstage/plugin-auth-backend-module-guest-provider@npm:0.2.3" dependencies: - "@changesets/types": ^6.0.0 - "@manypkg/get-packages": ^1.1.3 - picocolors: ^1.1.0 - semver: ^7.5.3 - checksum: 38446343e43f9b8731098e3b42d2525d5399d59cfccc09bdb62c9a48de60c7a893882050202badca3b5cab8405e6deb82e88258a56a318e42749fa60d96d874a + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/catalog-model": ^1.7.2 + "@backstage/errors": ^1.2.6 + "@backstage/plugin-auth-node": ^0.5.5 + passport-oauth2: ^1.7.0 + checksum: 763570fda58c20404824c71f5c0f639e09bc947e9cdafaf0948251eaa3a2d2398ee5555eaaa9d14e7d0f1a62a0b6674d37457cc4421d2107d2321c5ead48fb15 languageName: node linkType: hard -"@changesets/get-release-plan@npm:^4.0.4": - version: 4.0.4 - resolution: "@changesets/get-release-plan@npm:4.0.4" +"@backstage/plugin-auth-backend-module-microsoft-provider@npm:^0.2.1, @backstage/plugin-auth-backend-module-microsoft-provider@npm:^0.2.3": + version: 0.2.3 + resolution: "@backstage/plugin-auth-backend-module-microsoft-provider@npm:0.2.3" dependencies: - "@changesets/assemble-release-plan": ^6.0.4 - "@changesets/config": ^3.0.3 - "@changesets/pre": ^2.0.1 - "@changesets/read": ^0.6.1 - "@changesets/types": ^6.0.0 - "@manypkg/get-packages": ^1.1.3 - checksum: 7217347f5bfaa56f97d3964e28e23a109d60c42b7c879c0cab6934feb30bdbdebb6dd0e81b4ecb5ec414be442d566b6af90d9224f6a48a52b6c5269c337f54a6 + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/plugin-auth-node": ^0.5.5 + express: ^4.18.2 + jose: ^5.0.0 + passport-microsoft: ^1.0.0 + checksum: ac56d374990a340263ba42b70100812aa561e05741752c615aba67d94b4364286dc3defb6b338764ad8c834987259c7f29dbb943ec21ea9707f58d3f479131a4 languageName: node linkType: hard -"@changesets/get-version-range-type@npm:^0.4.0": - version: 0.4.0 - resolution: "@changesets/get-version-range-type@npm:0.4.0" - checksum: 2e8c511e658e193f48de7f09522649c4cf072932f0cbe0f252a7f2703d7775b0b90b632254526338795d0658e340be9dff3879cfc8eba4534b8cd6071efff8c9 +"@backstage/plugin-auth-backend-module-oauth2-provider@npm:^0.3.1, @backstage/plugin-auth-backend-module-oauth2-provider@npm:^0.3.3": + version: 0.3.3 + resolution: "@backstage/plugin-auth-backend-module-oauth2-provider@npm:0.3.3" + dependencies: + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/plugin-auth-node": ^0.5.5 + passport: ^0.7.0 + passport-oauth2: ^1.6.1 + checksum: 9021087768985da64550651872496c94ea056bcf8f0eb3c04bed8229c6ac10fc7148ffc978a6beaf9170bc6142e8e450d4c993e1e8aafb284813abf53f8be285 languageName: node linkType: hard -"@changesets/git@npm:^3.0.1": - version: 3.0.1 - resolution: "@changesets/git@npm:3.0.1" +"@backstage/plugin-auth-backend-module-oauth2-proxy-provider@npm:^0.2.1, @backstage/plugin-auth-backend-module-oauth2-proxy-provider@npm:^0.2.3": + version: 0.2.3 + resolution: "@backstage/plugin-auth-backend-module-oauth2-proxy-provider@npm:0.2.3" dependencies: - "@changesets/errors": ^0.2.0 - "@manypkg/get-packages": ^1.1.3 - is-subdir: ^1.1.1 - micromatch: ^4.0.2 - spawndamnit: ^2.0.0 - checksum: 46d780fecd3dbdafde7c96dde7fe35a8461bc6edbff1de92d490971a99f021d60c5b4606a1d4fb778567146810090ede6610cf89407c14bde88edaa246801539 + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/errors": ^1.2.6 + "@backstage/plugin-auth-node": ^0.5.5 + jose: ^5.0.0 + checksum: 0003eda5c3a80ed193d97b569c272da58b4f251c889f8b68d58b5c088e5485283160249bdb556296d72570da1987bc3c491c292c658a7e56197c857b13c79835 languageName: node linkType: hard -"@changesets/logger@npm:^0.1.1": - version: 0.1.1 - resolution: "@changesets/logger@npm:0.1.1" +"@backstage/plugin-auth-backend-module-oidc-provider@npm:^0.3.1, @backstage/plugin-auth-backend-module-oidc-provider@npm:^0.3.3": + version: 0.3.3 + resolution: "@backstage/plugin-auth-backend-module-oidc-provider@npm:0.3.3" dependencies: - picocolors: ^1.1.0 - checksum: acca50ef6bf6e446b46eb576b32f1955bf4579dbf4bbc316768ed2c1d4ba4066c9c73b114eedefaa1b3e360b1060a020e6bd3dbdbc44b74da732df92307beab0 + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/plugin-auth-backend": ^0.24.1 + "@backstage/plugin-auth-node": ^0.5.5 + express: ^4.18.2 + openid-client: ^5.5.0 + passport: ^0.7.0 + checksum: fb20f84b97ae2f69547531ccb44fd6f3a2fb28529205d5a46b63ba5969e71bee27050fac0df498efd6ad0ee3cbc2aa3f916090f9b4ff5d583f158e0929f77c6a languageName: node linkType: hard -"@changesets/parse@npm:^0.4.0": - version: 0.4.0 - resolution: "@changesets/parse@npm:0.4.0" +"@backstage/plugin-auth-backend-module-okta-provider@npm:^0.1.1, @backstage/plugin-auth-backend-module-okta-provider@npm:^0.1.3": + version: 0.1.3 + resolution: "@backstage/plugin-auth-backend-module-okta-provider@npm:0.1.3" dependencies: - "@changesets/types": ^6.0.0 - js-yaml: ^3.13.1 - checksum: 3dd970b244479746233ebd357cfff3816cf9f344ebf2cf0c7c55ce8579adfd3f506978e86ad61222dc3acf1548a2105ffdd8b3e940b3f82b225741315cee2bf0 + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/plugin-auth-node": ^0.5.5 + "@davidzemon/passport-okta-oauth": ^0.0.5 + express: ^4.18.2 + passport: ^0.7.0 + checksum: 70c683063260d8cd712c9a07c0b1e2fc5ebed27237318350704d7c2dd0a515e4c06f54201f4ef9c57977ab0695f9107421f3907602977e13ddea3842229ebf4b languageName: node linkType: hard -"@changesets/pre@npm:^2.0.1": - version: 2.0.1 - resolution: "@changesets/pre@npm:2.0.1" +"@backstage/plugin-auth-backend-module-onelogin-provider@npm:^0.2.1, @backstage/plugin-auth-backend-module-onelogin-provider@npm:^0.2.3": + version: 0.2.3 + resolution: "@backstage/plugin-auth-backend-module-onelogin-provider@npm:0.2.3" dependencies: - "@changesets/errors": ^0.2.0 - "@changesets/types": ^6.0.0 - "@manypkg/get-packages": ^1.1.3 - fs-extra: ^7.0.1 - checksum: fbe94283dce0223ee79c12fa221105752ac89eb885b77e300ec755682cb06cc0145e10335f4bc6cb26d63473e549556c2b1c8c866242419aee5e41986379652a + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/plugin-auth-node": ^0.5.5 + express: ^4.18.2 + passport: ^0.7.0 + passport-onelogin-oauth: ^0.0.1 + checksum: db99e6645b7f386163cfb87f08e0d5a8fb7cf45b0f4113c0babae4a79522029fa3421712530cb77a403fb7dce2c81bbce51babec48fa4fa98ad7185cc05eed26 languageName: node linkType: hard -"@changesets/read@npm:^0.6.1": - version: 0.6.1 - resolution: "@changesets/read@npm:0.6.1" +"@backstage/plugin-auth-backend@npm:^0.23.1": + version: 0.23.1 + resolution: "@backstage/plugin-auth-backend@npm:0.23.1" dependencies: - "@changesets/git": ^3.0.1 - "@changesets/logger": ^0.1.1 - "@changesets/parse": ^0.4.0 - "@changesets/types": ^6.0.0 - fs-extra: ^7.0.1 - p-filter: ^2.1.0 - picocolors: ^1.1.0 - checksum: d00a18a3d04af5c76e7b763096650ebe16589864ab04eaf9e99c88aa77542f64de547b585037fc204d2055f9dd47fae94c789e2f173d3507a4e29dbe6609dd5b + "@backstage/backend-common": ^0.25.0 + "@backstage/backend-plugin-api": ^1.0.1 + "@backstage/catalog-client": ^1.7.1 + "@backstage/catalog-model": ^1.7.0 + "@backstage/config": ^1.2.0 + "@backstage/errors": ^1.2.4 + "@backstage/plugin-auth-backend-module-atlassian-provider": ^0.3.1 + "@backstage/plugin-auth-backend-module-auth0-provider": ^0.1.1 + "@backstage/plugin-auth-backend-module-aws-alb-provider": ^0.2.1 + "@backstage/plugin-auth-backend-module-azure-easyauth-provider": ^0.2.1 + "@backstage/plugin-auth-backend-module-bitbucket-provider": ^0.2.1 + "@backstage/plugin-auth-backend-module-bitbucket-server-provider": ^0.1.1 + "@backstage/plugin-auth-backend-module-cloudflare-access-provider": ^0.3.1 + "@backstage/plugin-auth-backend-module-gcp-iap-provider": ^0.3.1 + "@backstage/plugin-auth-backend-module-github-provider": ^0.2.1 + "@backstage/plugin-auth-backend-module-gitlab-provider": ^0.2.1 + "@backstage/plugin-auth-backend-module-google-provider": ^0.2.1 + "@backstage/plugin-auth-backend-module-microsoft-provider": ^0.2.1 + "@backstage/plugin-auth-backend-module-oauth2-provider": ^0.3.1 + "@backstage/plugin-auth-backend-module-oauth2-proxy-provider": ^0.2.1 + "@backstage/plugin-auth-backend-module-oidc-provider": ^0.3.1 + "@backstage/plugin-auth-backend-module-okta-provider": ^0.1.1 + "@backstage/plugin-auth-backend-module-onelogin-provider": ^0.2.1 + "@backstage/plugin-auth-node": ^0.5.3 + "@backstage/plugin-catalog-node": ^1.13.1 + "@backstage/types": ^1.1.1 + "@google-cloud/firestore": ^7.0.0 + "@node-saml/passport-saml": ^5.0.0 + "@types/express": ^4.17.6 + "@types/passport": ^1.0.3 + compression: ^1.7.4 + connect-session-knex: ^4.0.0 + cookie-parser: ^1.4.5 + cors: ^2.8.5 + express: ^4.17.1 + express-promise-router: ^4.1.0 + express-session: ^1.17.1 + fs-extra: ^11.2.0 + google-auth-library: ^9.0.0 + jose: ^5.0.0 + knex: ^3.0.0 + lodash: ^4.17.21 + luxon: ^3.0.0 + minimatch: ^9.0.0 + morgan: ^1.10.0 + node-cache: ^5.1.2 + node-fetch: ^2.7.0 + openid-client: ^5.2.1 + passport: ^0.7.0 + passport-auth0: ^1.4.3 + passport-github2: ^0.1.12 + passport-google-oauth20: ^2.0.0 + passport-microsoft: ^1.0.0 + passport-oauth2: ^1.6.1 + passport-onelogin-oauth: ^0.0.1 + uuid: ^9.0.0 + winston: ^3.2.1 + yn: ^4.0.0 + checksum: 6043cef12af321082c0961bbf73b9f8b525c56a241dfe631c544080f945712d76eb1dbcacea06043e3469f1d55c44a1595d53a138135072bf0b383ad5c1d845e languageName: node linkType: hard -"@changesets/should-skip-package@npm:^0.1.1": - version: 0.1.1 - resolution: "@changesets/should-skip-package@npm:0.1.1" +"@backstage/plugin-auth-backend@npm:^0.24.1": + version: 0.24.1 + resolution: "@backstage/plugin-auth-backend@npm:0.24.1" dependencies: - "@changesets/types": ^6.0.0 - "@manypkg/get-packages": ^1.1.3 - checksum: d187ef22495deb63e678d0ff65e8627701e2b52c25bd59dde10ce8646be8d605c0ed0a6af020dd825b137c2fc748fdc6cef52e7774bad4c7a4f404bf182a85cf + "@backstage/backend-common": ^0.25.0 + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/catalog-client": ^1.9.0 + "@backstage/catalog-model": ^1.7.2 + "@backstage/config": ^1.3.1 + "@backstage/errors": ^1.2.6 + "@backstage/plugin-auth-backend-module-atlassian-provider": ^0.3.3 + "@backstage/plugin-auth-backend-module-auth0-provider": ^0.1.3 + "@backstage/plugin-auth-backend-module-aws-alb-provider": ^0.3.1 + "@backstage/plugin-auth-backend-module-azure-easyauth-provider": ^0.2.3 + "@backstage/plugin-auth-backend-module-bitbucket-provider": ^0.2.3 + "@backstage/plugin-auth-backend-module-bitbucket-server-provider": ^0.1.3 + "@backstage/plugin-auth-backend-module-cloudflare-access-provider": ^0.3.3 + "@backstage/plugin-auth-backend-module-gcp-iap-provider": ^0.3.3 + "@backstage/plugin-auth-backend-module-github-provider": ^0.2.3 + "@backstage/plugin-auth-backend-module-gitlab-provider": ^0.2.3 + "@backstage/plugin-auth-backend-module-google-provider": ^0.2.3 + "@backstage/plugin-auth-backend-module-microsoft-provider": ^0.2.3 + "@backstage/plugin-auth-backend-module-oauth2-provider": ^0.3.3 + "@backstage/plugin-auth-backend-module-oauth2-proxy-provider": ^0.2.3 + "@backstage/plugin-auth-backend-module-oidc-provider": ^0.3.3 + "@backstage/plugin-auth-backend-module-okta-provider": ^0.1.3 + "@backstage/plugin-auth-backend-module-onelogin-provider": ^0.2.3 + "@backstage/plugin-auth-node": ^0.5.5 + "@backstage/plugin-catalog-node": ^1.15.0 + "@backstage/types": ^1.2.0 + "@google-cloud/firestore": ^7.0.0 + "@node-saml/passport-saml": ^5.0.0 + "@types/express": ^4.17.6 + "@types/passport": ^1.0.3 + compression: ^1.7.4 + connect-session-knex: ^4.0.0 + cookie-parser: ^1.4.5 + cors: ^2.8.5 + express: ^4.17.1 + express-promise-router: ^4.1.0 + express-session: ^1.17.1 + fs-extra: ^11.2.0 + google-auth-library: ^9.0.0 + jose: ^5.0.0 + knex: ^3.0.0 + lodash: ^4.17.21 + luxon: ^3.0.0 + minimatch: ^9.0.0 + morgan: ^1.10.0 + node-cache: ^5.1.2 + openid-client: ^5.2.1 + passport: ^0.7.0 + passport-auth0: ^1.4.3 + passport-github2: ^0.1.12 + passport-google-oauth20: ^2.0.0 + passport-microsoft: ^1.0.0 + passport-oauth2: ^1.6.1 + passport-onelogin-oauth: ^0.0.1 + uuid: ^11.0.0 + winston: ^3.2.1 + yn: ^4.0.0 + checksum: 968bbdc086813c92cdffab46932a334e867ba25a0cf8cd582f7d1d4a39ef0f6f3ead1d02c6f157c6477194a94969bbb905bd1ec197d052bc8f36e1e4429ffc12 languageName: node linkType: hard -"@changesets/types@npm:^4.0.1": - version: 4.1.0 - resolution: "@changesets/types@npm:4.1.0" - checksum: 72c1f58044178ca867dd9349ecc4b7c233ce3781bb03b5b72a70c3166fbbab54a2f2cb19a81f96b4649ba004442c8734569fba238be4dd737fb4624a135c6098 +"@backstage/plugin-auth-node@npm:^0.5.2, @backstage/plugin-auth-node@npm:^0.5.3, @backstage/plugin-auth-node@npm:^0.5.4, @backstage/plugin-auth-node@npm:^0.5.5": + version: 0.5.5 + resolution: "@backstage/plugin-auth-node@npm:0.5.5" + dependencies: + "@backstage/backend-common": ^0.25.0 + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/catalog-client": ^1.9.0 + "@backstage/catalog-model": ^1.7.2 + "@backstage/config": ^1.3.1 + "@backstage/errors": ^1.2.6 + "@backstage/types": ^1.2.0 + "@types/express": ^4.17.6 + "@types/passport": ^1.0.3 + express: ^4.17.1 + jose: ^5.0.0 + lodash: ^4.17.21 + passport: ^0.7.0 + winston: ^3.2.1 + zod: ^3.22.4 + zod-to-json-schema: ^3.21.4 + zod-validation-error: ^3.4.0 + checksum: a9c3e4ed16ce4bde26797719636045a3bf01bf07813952ef7b970b96a0b518e858ad77ee4f35bfbe5cb905f2bfe47540688f1239f108bea69920a360357339d9 languageName: node linkType: hard -"@changesets/types@npm:^6.0.0": - version: 6.0.0 - resolution: "@changesets/types@npm:6.0.0" - checksum: d528b5d712f62c26ea422c7d34ccf6eac57a353c0733d96716db3c796ecd9bba5d496d48b37d5d46b784dc45b69c06ce3345fa3515df981bb68456cad68e6465 +"@backstage/plugin-auth-react@npm:^0.1.10": + version: 0.1.10 + resolution: "@backstage/plugin-auth-react@npm:0.1.10" + dependencies: + "@backstage/core-components": ^0.16.2 + "@backstage/core-plugin-api": ^1.10.2 + "@backstage/errors": ^1.2.6 + "@material-ui/core": ^4.9.13 + "@react-hookz/web": ^24.0.0 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: df4ad537ebce06253c50ebb914e0fc062eeff6e0983a2cc217acbf565c51530734e9f102f08b4f73c6f828778964d67c2d72fe20ec8f64a443311ee939f40295 languageName: node linkType: hard -"@changesets/write@npm:^0.3.2": - version: 0.3.2 - resolution: "@changesets/write@npm:0.3.2" +"@backstage/plugin-bitbucket-cloud-common@npm:^0.2.26": + version: 0.2.26 + resolution: "@backstage/plugin-bitbucket-cloud-common@npm:0.2.26" dependencies: - "@changesets/types": ^6.0.0 - fs-extra: ^7.0.1 - human-id: ^1.0.2 - prettier: ^2.7.1 - checksum: 553ed0ba6bd6397784f5e0e2921794bd7417a3c4fb810f1abb15e7072bf9d312af74308ff743161c6ea01478884cebcaf9cee02e5c70e2c7552b2774960ee07c + "@backstage/integration": ^1.16.0 + cross-fetch: ^4.0.0 + checksum: 2fb2c5b788206f4573650f5266fd0de2329d0c74cbaabb05ff0309962cdab29233b1ab82b72075a89d105560c695493db70dbf047618253c545b6af1a0289e28 languageName: node linkType: hard -"@colors/colors@npm:1.6.0, @colors/colors@npm:^1.6.0": - version: 1.6.0 - resolution: "@colors/colors@npm:1.6.0" - checksum: aa209963e0c3218e80a4a20553ba8c0fbb6fa13140540b4e5f97923790be06801fc90172c1114fc8b7e888b3d012b67298cde6b9e81521361becfaee400c662f +"@backstage/plugin-catalog-backend-module-logs@npm:^0.1.2": + version: 0.1.5 + resolution: "@backstage/plugin-catalog-backend-module-logs@npm:0.1.5" + dependencies: + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/plugin-catalog-backend": ^1.29.0 + "@backstage/plugin-events-node": ^0.4.6 + checksum: f2127c115bde82d4b44a01fef8b7e3024b6e75e2601ae4c2979ae14a3348d2862e7e77f3b52b90567f446da6f6d905a763b822f1f90644d725e86f978fab7fd3 languageName: node linkType: hard -"@cspotcode/source-map-support@npm:^0.8.0": - version: 0.8.1 - resolution: "@cspotcode/source-map-support@npm:0.8.1" +"@backstage/plugin-catalog-backend-module-scaffolder-entity-model@npm:^0.2.1, @backstage/plugin-catalog-backend-module-scaffolder-entity-model@npm:^0.2.3": + version: 0.2.3 + resolution: "@backstage/plugin-catalog-backend-module-scaffolder-entity-model@npm:0.2.3" dependencies: - "@jridgewell/trace-mapping": 0.3.9 - checksum: 5718f267085ed8edb3e7ef210137241775e607ee18b77d95aa5bd7514f47f5019aa2d82d96b3bf342ef7aa890a346fa1044532ff7cc3009e7d24fce3ce6200fa + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/catalog-model": ^1.7.2 + "@backstage/plugin-catalog-common": ^1.1.2 + "@backstage/plugin-catalog-node": ^1.15.0 + "@backstage/plugin-scaffolder-common": ^1.5.8 + checksum: 0aeb5f6f02660c307af7334a37383f6215ae3e76422c4d509db5a6ce6997e7bbc6902148a3f8077363fb7f853f49e29d4bda13d532f24dc2191a5b5d8334878d languageName: node linkType: hard -"@dabh/diagnostics@npm:^2.0.2": - version: 2.0.3 - resolution: "@dabh/diagnostics@npm:2.0.3" +"@backstage/plugin-catalog-backend@npm:^1.27.0, @backstage/plugin-catalog-backend@npm:^1.29.0": + version: 1.29.0 + resolution: "@backstage/plugin-catalog-backend@npm:1.29.0" dependencies: - colorspace: 1.1.x - enabled: 2.0.x - kuler: ^2.0.0 - checksum: 4879600c55c8315a0fb85fbb19057bad1adc08f0a080a8cb4e2b63f723c379bfc4283b68123a2b078d367b327dd8df12fcb27464efe791addc0a48b9df6d79a1 + "@backstage/backend-common": ^0.25.0 + "@backstage/backend-openapi-utils": ^0.4.0 + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/catalog-client": ^1.9.0 + "@backstage/catalog-model": ^1.7.2 + "@backstage/config": ^1.3.1 + "@backstage/errors": ^1.2.6 + "@backstage/integration": ^1.16.0 + "@backstage/plugin-catalog-common": ^1.1.2 + "@backstage/plugin-catalog-node": ^1.15.0 + "@backstage/plugin-events-node": ^0.4.6 + "@backstage/plugin-permission-common": ^0.8.3 + "@backstage/plugin-permission-node": ^0.8.6 + "@backstage/plugin-search-backend-module-catalog": ^0.2.6 + "@backstage/types": ^1.2.0 + "@opentelemetry/api": ^1.9.0 + "@types/express": ^4.17.6 + codeowners-utils: ^1.0.2 + core-js: ^3.6.5 + express: ^4.17.1 + fast-json-stable-stringify: ^2.1.0 + fs-extra: ^11.2.0 + git-url-parse: ^15.0.0 + glob: ^7.1.6 + knex: ^3.0.0 + lodash: ^4.17.21 + luxon: ^3.0.0 + minimatch: ^9.0.0 + p-limit: ^3.0.2 + prom-client: ^15.0.0 + uuid: ^11.0.0 + yaml: ^2.0.0 + yn: ^4.0.0 + zod: ^3.22.4 + checksum: e2ac0e6c4780823004ae07c7d1310de944d790f5391b257173204f7cacdf3bb54e1b6713e1dbda30dfb9ae263c77caeadf90df3413d88db41e3cbd57d244211e languageName: node linkType: hard -"@esbuild/aix-ppc64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/aix-ppc64@npm:0.21.5" - conditions: os=aix & cpu=ppc64 +"@backstage/plugin-catalog-common@npm:^1.1.0, @backstage/plugin-catalog-common@npm:^1.1.2": + version: 1.1.2 + resolution: "@backstage/plugin-catalog-common@npm:1.1.2" + dependencies: + "@backstage/catalog-model": ^1.7.2 + "@backstage/plugin-permission-common": ^0.8.3 + "@backstage/plugin-search-common": ^1.2.16 + checksum: ec4190c708f3e98fe09fcea56480ac36311a6b11a5a351f0e273c3ab39c45dec039e67aafc7974c73e14170350a3aedd6a5f4a009173536427b3c72c9fb45352 + languageName: node + linkType: hard + +"@backstage/plugin-catalog-graph@npm:^0.4.11": + version: 0.4.14 + resolution: "@backstage/plugin-catalog-graph@npm:0.4.14" + dependencies: + "@backstage/catalog-client": ^1.9.0 + "@backstage/catalog-model": ^1.7.2 + "@backstage/core-compat-api": ^0.3.4 + "@backstage/core-components": ^0.16.2 + "@backstage/core-plugin-api": ^1.10.2 + "@backstage/frontend-plugin-api": ^0.9.3 + "@backstage/plugin-catalog-react": ^1.15.0 + "@backstage/types": ^1.2.0 + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + "@material-ui/lab": 4.0.0-alpha.61 + classnames: ^2.3.1 + lodash: ^4.17.15 + p-limit: ^3.1.0 + qs: ^6.9.4 + react-use: ^17.2.4 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: cf97cd5594fb73b39cd938c8b4c2f3217482735faa24f25553d46b964883d2b2592ef0692871e248028f694ae82173f2bb3e1ac3d30b7b7da075c296c48037a8 + languageName: node + linkType: hard + +"@backstage/plugin-catalog-import@npm:^0.12.5": + version: 0.12.8 + resolution: "@backstage/plugin-catalog-import@npm:0.12.8" + dependencies: + "@backstage/catalog-client": ^1.9.0 + "@backstage/catalog-model": ^1.7.2 + "@backstage/config": ^1.3.1 + "@backstage/core-compat-api": ^0.3.4 + "@backstage/core-components": ^0.16.2 + "@backstage/core-plugin-api": ^1.10.2 + "@backstage/errors": ^1.2.6 + "@backstage/frontend-plugin-api": ^0.9.3 + "@backstage/integration": ^1.16.0 + "@backstage/integration-react": ^1.2.2 + "@backstage/plugin-catalog-common": ^1.1.2 + "@backstage/plugin-catalog-react": ^1.15.0 + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + "@material-ui/lab": 4.0.0-alpha.61 + "@octokit/rest": ^19.0.3 + git-url-parse: ^15.0.0 + js-base64: ^3.6.0 + lodash: ^4.17.21 + react-hook-form: ^7.12.2 + react-use: ^17.2.4 + yaml: ^2.0.0 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 41859ecfe54b55add32d466c575a9ae49ddebc1b619e52edf9061f927ed456cde32262fb2e9e8ff5e5460ecdc17a4da5c587fda6e89ca6a89715961440271b95 + languageName: node + linkType: hard + +"@backstage/plugin-catalog-node@npm:^1.13.1, @backstage/plugin-catalog-node@npm:^1.15.0": + version: 1.15.0 + resolution: "@backstage/plugin-catalog-node@npm:1.15.0" + dependencies: + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/catalog-client": ^1.9.0 + "@backstage/catalog-model": ^1.7.2 + "@backstage/errors": ^1.2.6 + "@backstage/plugin-catalog-common": ^1.1.2 + "@backstage/plugin-permission-common": ^0.8.3 + "@backstage/plugin-permission-node": ^0.8.6 + "@backstage/types": ^1.2.0 + checksum: 2d87606b8d02b7bed1fd1d3fc5b96008a6b8b6c46ea0f18246ddab6f1c8f9159bdfdf814192d0e858c829c1ade05f70061a840b02ab91fc4422ec5e45e979505 + languageName: node + linkType: hard + +"@backstage/plugin-catalog-react@npm:^1.14.0, @backstage/plugin-catalog-react@npm:^1.15.0": + version: 1.15.0 + resolution: "@backstage/plugin-catalog-react@npm:1.15.0" + dependencies: + "@backstage/catalog-client": ^1.9.0 + "@backstage/catalog-model": ^1.7.2 + "@backstage/core-compat-api": ^0.3.4 + "@backstage/core-components": ^0.16.2 + "@backstage/core-plugin-api": ^1.10.2 + "@backstage/errors": ^1.2.6 + "@backstage/frontend-plugin-api": ^0.9.3 + "@backstage/frontend-test-utils": ^0.2.4 + "@backstage/integration-react": ^1.2.2 + "@backstage/plugin-catalog-common": ^1.1.2 + "@backstage/plugin-permission-common": ^0.8.3 + "@backstage/plugin-permission-react": ^0.4.29 + "@backstage/types": ^1.2.0 + "@backstage/version-bridge": ^1.0.10 + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + "@material-ui/lab": 4.0.0-alpha.61 + "@react-hookz/web": ^24.0.0 + classnames: ^2.2.6 + lodash: ^4.17.21 + material-ui-popup-state: ^1.9.3 + qs: ^6.9.4 + react-use: ^17.2.4 + yaml: ^2.0.0 + zen-observable: ^0.10.0 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: d94aafd1f9c81bceb4917f3e49a9d3dddd409f41684373d826b79fbcd4059a896dfcf908263ea5a5c78dfbbc2eb3c43cd1cc97129c22fe0f98a8d91032a005c0 + languageName: node + linkType: hard + +"@backstage/plugin-catalog@npm:^1.24.0": + version: 1.26.0 + resolution: "@backstage/plugin-catalog@npm:1.26.0" + dependencies: + "@backstage/catalog-client": ^1.9.0 + "@backstage/catalog-model": ^1.7.2 + "@backstage/core-compat-api": ^0.3.4 + "@backstage/core-components": ^0.16.2 + "@backstage/core-plugin-api": ^1.10.2 + "@backstage/errors": ^1.2.6 + "@backstage/frontend-plugin-api": ^0.9.3 + "@backstage/integration-react": ^1.2.2 + "@backstage/plugin-catalog-common": ^1.1.2 + "@backstage/plugin-catalog-react": ^1.15.0 + "@backstage/plugin-permission-react": ^0.4.29 + "@backstage/plugin-scaffolder-common": ^1.5.8 + "@backstage/plugin-search-common": ^1.2.16 + "@backstage/plugin-search-react": ^1.8.4 + "@backstage/types": ^1.2.0 + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + "@material-ui/lab": 4.0.0-alpha.61 + "@mui/utils": ^5.14.15 + dataloader: ^2.0.0 + expiry-map: ^2.0.0 + history: ^5.0.0 + lodash: ^4.17.21 + pluralize: ^8.0.0 + react-use: ^17.2.4 + zen-observable: ^0.10.0 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 29565eafbd38ed701dca477a80bcfe7940944ae2418a59a7eca8b103ca6c86e7b035b68fa6e2ef711d2d04deea479964c17bfa20159955395c4f2770e3cff3eb languageName: node linkType: hard -"@esbuild/aix-ppc64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/aix-ppc64@npm:0.23.1" - conditions: os=aix & cpu=ppc64 +"@backstage/plugin-events-node@npm:^0.4.0, @backstage/plugin-events-node@npm:^0.4.5, @backstage/plugin-events-node@npm:^0.4.6": + version: 0.4.6 + resolution: "@backstage/plugin-events-node@npm:0.4.6" + dependencies: + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/errors": ^1.2.6 + "@backstage/types": ^1.2.0 + cross-fetch: ^4.0.0 + uri-template: ^2.0.0 + checksum: ffe365ec94cf98d5d62099b735658ee3f1b3a90d34066689fb101cb55ebca919e502d9e05277b088b9c2a194b64789edbe7820569b0a85e6edeee0dce9e24283 languageName: node linkType: hard -"@esbuild/aix-ppc64@npm:0.24.0": - version: 0.24.0 - resolution: "@esbuild/aix-ppc64@npm:0.24.0" - conditions: os=aix & cpu=ppc64 +"@backstage/plugin-kubernetes-backend@npm:^0.18.7": + version: 0.18.7 + resolution: "@backstage/plugin-kubernetes-backend@npm:0.18.7" + dependencies: + "@aws-crypto/sha256-js": ^5.0.0 + "@aws-sdk/credential-providers": ^3.350.0 + "@aws-sdk/signature-v4": ^3.347.0 + "@azure/identity": ^4.0.0 + "@backstage/backend-common": ^0.25.0 + "@backstage/backend-plugin-api": ^1.0.1 + "@backstage/catalog-client": ^1.7.1 + "@backstage/catalog-model": ^1.7.0 + "@backstage/config": ^1.2.0 + "@backstage/errors": ^1.2.4 + "@backstage/integration-aws-node": ^0.1.12 + "@backstage/plugin-auth-node": ^0.5.3 + "@backstage/plugin-catalog-node": ^1.13.1 + "@backstage/plugin-kubernetes-common": ^0.8.3 + "@backstage/plugin-kubernetes-node": ^0.1.20 + "@backstage/plugin-permission-common": ^0.8.1 + "@backstage/plugin-permission-node": ^0.8.4 + "@backstage/types": ^1.1.1 + "@google-cloud/container": ^5.0.0 + "@jest-mock/express": ^2.0.1 + "@kubernetes/client-node": 0.20.0 + "@types/express": ^4.17.6 + "@types/http-proxy-middleware": ^1.0.0 + "@types/luxon": ^3.0.0 + compression: ^1.7.4 + cors: ^2.8.5 + express: ^4.17.1 + express-promise-router: ^4.1.0 + fs-extra: ^11.2.0 + helmet: ^6.0.0 + http-proxy-middleware: ^2.0.6 + lodash: ^4.17.21 + luxon: ^3.0.0 + morgan: ^1.10.0 + node-fetch: ^2.7.0 + stream-buffers: ^3.0.2 + winston: ^3.2.1 + yn: ^4.0.0 + checksum: d2997c45e0772ad5b6cf555921e72120d0c2003ed6ae2bcf6fbff7dc2ef2a9b76882b392bbdc1e6c9899fa1d284cfd97c59fe434b83779bd299681fa1d132905 languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/android-arm64@npm:0.16.17" - conditions: os=android & cpu=arm64 +"@backstage/plugin-kubernetes-common@npm:^0.8.3": + version: 0.8.3 + resolution: "@backstage/plugin-kubernetes-common@npm:0.8.3" + dependencies: + "@backstage/catalog-model": ^1.7.0 + "@backstage/plugin-permission-common": ^0.8.1 + "@backstage/types": ^1.1.1 + "@kubernetes/client-node": 0.20.0 + kubernetes-models: ^4.3.1 + lodash: ^4.17.21 + luxon: ^3.0.0 + checksum: 948c473f9656e039ee74fd5c724d520b09899cabf6713ab89c587492e542648385892fb1fa0f3872260707cfb3cd71d81bbfcd737e468f71a4080bd503e710a2 languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/android-arm64@npm:0.21.5" - conditions: os=android & cpu=arm64 +"@backstage/plugin-kubernetes-node@npm:^0.1.20": + version: 0.1.20 + resolution: "@backstage/plugin-kubernetes-node@npm:0.1.20" + dependencies: + "@backstage/backend-plugin-api": ^1.0.1 + "@backstage/catalog-model": ^1.7.0 + "@backstage/plugin-kubernetes-common": ^0.8.3 + "@backstage/types": ^1.1.1 + "@kubernetes/client-node": ^0.20.0 + node-fetch: ^2.7.0 + winston: ^3.2.1 + checksum: 6b9f3af235f521b7a3418c7e1f47261bb384b801f57634087f5efaadd4a3348e0d28d97625b1252a5e25957a161a382f73290b01128c76c04e29db1ce9f5ab83 languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/android-arm64@npm:0.23.1" - conditions: os=android & cpu=arm64 +"@backstage/plugin-kubernetes-react@npm:^0.4.4": + version: 0.4.4 + resolution: "@backstage/plugin-kubernetes-react@npm:0.4.4" + dependencies: + "@backstage/catalog-model": ^1.7.0 + "@backstage/core-components": ^0.15.1 + "@backstage/core-plugin-api": ^1.10.0 + "@backstage/errors": ^1.2.4 + "@backstage/plugin-kubernetes-common": ^0.8.3 + "@backstage/types": ^1.1.1 + "@kubernetes-models/apimachinery": ^2.0.0 + "@kubernetes-models/base": ^5.0.0 + "@kubernetes/client-node": ^0.20.0 + "@material-ui/core": ^4.9.13 + "@material-ui/icons": ^4.11.3 + "@material-ui/lab": ^4.0.0-alpha.61 + cronstrue: ^2.32.0 + js-yaml: ^4.1.0 + kubernetes-models: ^4.3.1 + lodash: ^4.17.21 + luxon: ^3.0.0 + react-use: ^17.4.0 + xterm: ^5.3.0 + xterm-addon-attach: ^0.9.0 + xterm-addon-fit: ^0.8.0 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: bb96e77a798a701315424701f005786c753a29c4483d7b2a71c6e56a36e54b203874356edd52e203645f92a69bb72e48190d5934a6b328b6a34235319af26e38 languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.24.0": - version: 0.24.0 - resolution: "@esbuild/android-arm64@npm:0.24.0" - conditions: os=android & cpu=arm64 +"@backstage/plugin-kubernetes@npm:^0.11.16": + version: 0.11.16 + resolution: "@backstage/plugin-kubernetes@npm:0.11.16" + dependencies: + "@backstage/catalog-model": ^1.7.0 + "@backstage/core-compat-api": ^0.3.1 + "@backstage/core-components": ^0.15.1 + "@backstage/core-plugin-api": ^1.10.0 + "@backstage/frontend-plugin-api": ^0.9.0 + "@backstage/plugin-catalog-react": ^1.14.0 + "@backstage/plugin-kubernetes-common": ^0.8.3 + "@backstage/plugin-kubernetes-react": ^0.4.4 + "@kubernetes-models/apimachinery": ^2.0.0 + "@kubernetes-models/base": ^5.0.0 + "@kubernetes/client-node": 0.20.0 + "@material-ui/core": ^4.12.2 + cronstrue: ^2.2.0 + js-yaml: ^4.0.0 + kubernetes-models: ^4.1.0 + lodash: ^4.17.21 + luxon: ^3.0.0 + xterm: ^5.2.1 + xterm-addon-attach: ^0.9.0 + xterm-addon-fit: ^0.8.0 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 59bc25ccaf1c8ab521c4361c13c06ec853607fa6ac0bc7d50c103134cb090e1d5d1143b23fb2f135ce1c16b6c3b1107a31fc6a27a09ec3e3786ebf2ee0af2f90 languageName: node linkType: hard -"@esbuild/android-arm@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/android-arm@npm:0.16.17" - conditions: os=android & cpu=arm +"@backstage/plugin-org@npm:^0.6.31": + version: 0.6.34 + resolution: "@backstage/plugin-org@npm:0.6.34" + dependencies: + "@backstage/catalog-model": ^1.7.2 + "@backstage/core-compat-api": ^0.3.4 + "@backstage/core-components": ^0.16.2 + "@backstage/core-plugin-api": ^1.10.2 + "@backstage/frontend-plugin-api": ^0.9.3 + "@backstage/plugin-catalog-common": ^1.1.2 + "@backstage/plugin-catalog-react": ^1.15.0 + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + "@material-ui/lab": 4.0.0-alpha.61 + lodash: ^4.17.21 + p-limit: ^3.1.0 + pluralize: ^8.0.0 + qs: ^6.10.1 + react-use: ^17.2.4 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 415baab8a980993abb99b0efa466e6ff37a7f96b5e9f1b9ba2d291869b86f251110ec4e9b26aef51109ab683e79727254a9d0a495ea67886dfc207c5b56b1f10 languageName: node linkType: hard -"@esbuild/android-arm@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/android-arm@npm:0.21.5" - conditions: os=android & cpu=arm +"@backstage/plugin-permission-backend-module-allow-all-policy@npm:^0.2.1": + version: 0.2.3 + resolution: "@backstage/plugin-permission-backend-module-allow-all-policy@npm:0.2.3" + dependencies: + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/plugin-auth-node": ^0.5.5 + "@backstage/plugin-permission-common": ^0.8.3 + "@backstage/plugin-permission-node": ^0.8.6 + checksum: b89c187c6222d7fa9034b06821b72ea80d103ef58e8845f86fb6c71de345c1f86c11f59290257105a77124849c908758c44b27531f172af46176255b05b9c501 languageName: node linkType: hard -"@esbuild/android-arm@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/android-arm@npm:0.23.1" - conditions: os=android & cpu=arm +"@backstage/plugin-permission-backend@npm:^0.5.50": + version: 0.5.52 + resolution: "@backstage/plugin-permission-backend@npm:0.5.52" + dependencies: + "@backstage/backend-common": ^0.25.0 + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/config": ^1.3.1 + "@backstage/errors": ^1.2.6 + "@backstage/plugin-auth-node": ^0.5.5 + "@backstage/plugin-permission-common": ^0.8.3 + "@backstage/plugin-permission-node": ^0.8.6 + "@types/express": ^4.17.6 + dataloader: ^2.0.0 + express: ^4.17.1 + express-promise-router: ^4.1.0 + lodash: ^4.17.21 + yn: ^4.0.0 + zod: ^3.22.4 + checksum: 1c69bb034181421a691460a2b091471e07b51b939a968ddc777cdd0dab36e3ad7302b7fb4cac1707622c269c6e81006ee9eba8ad9cf1d2f8b7579c4ae06586f3 languageName: node linkType: hard -"@esbuild/android-arm@npm:0.24.0": - version: 0.24.0 - resolution: "@esbuild/android-arm@npm:0.24.0" - conditions: os=android & cpu=arm +"@backstage/plugin-permission-common@npm:^0.8.1, @backstage/plugin-permission-common@npm:^0.8.3": + version: 0.8.3 + resolution: "@backstage/plugin-permission-common@npm:0.8.3" + dependencies: + "@backstage/config": ^1.3.1 + "@backstage/errors": ^1.2.6 + "@backstage/types": ^1.2.0 + cross-fetch: ^4.0.0 + uuid: ^11.0.0 + zod: ^3.22.4 + zod-to-json-schema: ^3.20.4 + checksum: cd8c91a6ce615d5689c9eb53f457d5c5bb85ca104061bd83d9e2f177acd6810f840e532c0b4850d0466dc68ce41650e19df50f91e78ab35f9355bb76a0c4809e languageName: node linkType: hard -"@esbuild/android-x64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/android-x64@npm:0.16.17" - conditions: os=android & cpu=x64 +"@backstage/plugin-permission-node@npm:^0.8.4, @backstage/plugin-permission-node@npm:^0.8.5, @backstage/plugin-permission-node@npm:^0.8.6": + version: 0.8.6 + resolution: "@backstage/plugin-permission-node@npm:0.8.6" + dependencies: + "@backstage/backend-common": ^0.25.0 + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/config": ^1.3.1 + "@backstage/errors": ^1.2.6 + "@backstage/plugin-auth-node": ^0.5.5 + "@backstage/plugin-permission-common": ^0.8.3 + "@types/express": ^4.17.6 + express: ^4.17.1 + express-promise-router: ^4.1.0 + zod: ^3.22.4 + zod-to-json-schema: ^3.20.4 + checksum: dbb4e52362c98ea3566a63ab27e09ca99fb6c34f40e3821277fcfafa2e9157c98d19484d829cb4fbdb9971b7a5afe31147fa372442041ff838968b40fd97ec5d languageName: node linkType: hard -"@esbuild/android-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/android-x64@npm:0.21.5" - conditions: os=android & cpu=x64 +"@backstage/plugin-permission-react@npm:^0.4.27, @backstage/plugin-permission-react@npm:^0.4.29": + version: 0.4.29 + resolution: "@backstage/plugin-permission-react@npm:0.4.29" + dependencies: + "@backstage/config": ^1.3.1 + "@backstage/core-plugin-api": ^1.10.2 + "@backstage/plugin-permission-common": ^0.8.3 + swr: ^2.0.0 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 4fe663b2d46f54e4878f579306802c84f238611822b929d5099d527e97fa3211872c85a51cb3fefddcff0231b92ba6d70a25971a7119ada2a03126e76cd8c006 languageName: node linkType: hard -"@esbuild/android-x64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/android-x64@npm:0.23.1" - conditions: os=android & cpu=x64 +"@backstage/plugin-proxy-backend@npm:^0.5.7": + version: 0.5.9 + resolution: "@backstage/plugin-proxy-backend@npm:0.5.9" + dependencies: + "@backstage/backend-common": ^0.25.0 + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/config": ^1.3.1 + "@backstage/types": ^1.2.0 + "@types/express": ^4.17.6 + express: ^4.17.1 + express-promise-router: ^4.1.0 + http-proxy-middleware: ^2.0.0 + morgan: ^1.10.0 + uuid: ^11.0.0 + winston: ^3.2.1 + yaml: ^2.0.0 + yn: ^4.0.0 + yup: ^1.0.0 + checksum: 37b18fd8ae2ec0f9285a5d8bdb7ae4c4f6831101be57a46f8d10f9767bd409e6f3ff26c0a8c45999c48b59a255d75cc88c2d52fcb5bbf8b84bda37bed71d7a48 languageName: node linkType: hard -"@esbuild/android-x64@npm:0.24.0": - version: 0.24.0 - resolution: "@esbuild/android-x64@npm:0.24.0" - conditions: os=android & cpu=x64 +"@backstage/plugin-scaffolder-backend-module-azure@npm:^0.2.4": + version: 0.2.4 + resolution: "@backstage/plugin-scaffolder-backend-module-azure@npm:0.2.4" + dependencies: + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/config": ^1.3.1 + "@backstage/errors": ^1.2.6 + "@backstage/integration": ^1.16.0 + "@backstage/plugin-scaffolder-node": ^0.6.2 + azure-devops-node-api: ^14.0.0 + yaml: ^2.0.0 + checksum: fa6d3632263c45ba5dbe4762e1a22a2cc5153f5c10903e39feae461962a6e1331f327ea2da04c17c6c540f105b1dc44c98077c14ca36fe616935cff47e7e28b3 languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/darwin-arm64@npm:0.16.17" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/darwin-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/darwin-arm64@npm:0.21.5" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/darwin-arm64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/darwin-arm64@npm:0.23.1" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/darwin-arm64@npm:0.24.0": - version: 0.24.0 - resolution: "@esbuild/darwin-arm64@npm:0.24.0" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/darwin-x64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/darwin-x64@npm:0.16.17" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/darwin-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/darwin-x64@npm:0.21.5" - conditions: os=darwin & cpu=x64 +"@backstage/plugin-scaffolder-backend-module-bitbucket-cloud@npm:^0.2.4": + version: 0.2.4 + resolution: "@backstage/plugin-scaffolder-backend-module-bitbucket-cloud@npm:0.2.4" + dependencies: + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/config": ^1.3.1 + "@backstage/errors": ^1.2.6 + "@backstage/integration": ^1.16.0 + "@backstage/plugin-bitbucket-cloud-common": ^0.2.26 + "@backstage/plugin-scaffolder-node": ^0.6.2 + fs-extra: ^11.2.0 + yaml: ^2.0.0 + checksum: c0eaff4b200ee9a7ddb0242465f38522baf37817f6c87d2740e043a77a10ce958589f7406214abb391233faed978af5934b6eea92c73e1820f48509b64921d3f languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/darwin-x64@npm:0.23.1" - conditions: os=darwin & cpu=x64 +"@backstage/plugin-scaffolder-backend-module-bitbucket-server@npm:^0.2.4": + version: 0.2.4 + resolution: "@backstage/plugin-scaffolder-backend-module-bitbucket-server@npm:0.2.4" + dependencies: + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/config": ^1.3.1 + "@backstage/errors": ^1.2.6 + "@backstage/integration": ^1.16.0 + "@backstage/plugin-scaffolder-node": ^0.6.2 + fs-extra: ^11.2.0 + yaml: ^2.0.0 + checksum: 91adb87381d1e843867495ec4089922765ef35cd059f21260731dbf1fd6767ea3f2f7b077e8c111009c22d702406eb5686e09c6a57796cc8c48b8a722642cba8 languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.24.0": - version: 0.24.0 - resolution: "@esbuild/darwin-x64@npm:0.24.0" - conditions: os=darwin & cpu=x64 +"@backstage/plugin-scaffolder-backend-module-bitbucket@npm:^0.3.5": + version: 0.3.5 + resolution: "@backstage/plugin-scaffolder-backend-module-bitbucket@npm:0.3.5" + dependencies: + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/config": ^1.3.1 + "@backstage/errors": ^1.2.6 + "@backstage/integration": ^1.16.0 + "@backstage/plugin-scaffolder-backend-module-bitbucket-cloud": ^0.2.4 + "@backstage/plugin-scaffolder-backend-module-bitbucket-server": ^0.2.4 + "@backstage/plugin-scaffolder-node": ^0.6.2 + fs-extra: ^11.2.0 + yaml: ^2.0.0 + checksum: f8013ccbba649ea3d20b3b5c02e2c8aedc48992178fc3ef3903713d5d1cf1cccfb8eeadde2b7377607f0276f046d9cf94b7329eadabfd86d05f12b248e2179e6 languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/freebsd-arm64@npm:0.16.17" - conditions: os=freebsd & cpu=arm64 +"@backstage/plugin-scaffolder-backend-module-gerrit@npm:^0.2.4": + version: 0.2.4 + resolution: "@backstage/plugin-scaffolder-backend-module-gerrit@npm:0.2.4" + dependencies: + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/config": ^1.3.1 + "@backstage/errors": ^1.2.6 + "@backstage/integration": ^1.16.0 + "@backstage/plugin-scaffolder-node": ^0.6.2 + yaml: ^2.0.0 + checksum: fa304b238afefda5895769b5138819f1980caec2aa492da4af789f31f068f1f07c6b6015f89227cd267554eb5c0722f17c9381985a069b9ed1b96c2d66b233b5 languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/freebsd-arm64@npm:0.21.5" - conditions: os=freebsd & cpu=arm64 +"@backstage/plugin-scaffolder-backend-module-gitea@npm:^0.2.4": + version: 0.2.4 + resolution: "@backstage/plugin-scaffolder-backend-module-gitea@npm:0.2.4" + dependencies: + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/config": ^1.3.1 + "@backstage/errors": ^1.2.6 + "@backstage/integration": ^1.16.0 + "@backstage/plugin-scaffolder-node": ^0.6.2 + yaml: ^2.0.0 + checksum: ec96d39236dc4204e21d2d8a83d2ca5acde3beb75cc6ea6797414ce2864ad8cc7658e232e729e4fd7cd8d912597d633d9d81b5efd28a9129feb58343abe09796 languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/freebsd-arm64@npm:0.23.1" - conditions: os=freebsd & cpu=arm64 +"@backstage/plugin-scaffolder-backend-module-github@npm:^0.5.4": + version: 0.5.4 + resolution: "@backstage/plugin-scaffolder-backend-module-github@npm:0.5.4" + dependencies: + "@backstage/backend-common": ^0.25.0 + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/catalog-client": ^1.9.0 + "@backstage/catalog-model": ^1.7.2 + "@backstage/config": ^1.3.1 + "@backstage/errors": ^1.2.6 + "@backstage/integration": ^1.16.0 + "@backstage/plugin-scaffolder-node": ^0.6.2 + "@octokit/webhooks": ^10.9.2 + libsodium-wrappers: ^0.7.11 + octokit: ^3.0.0 + octokit-plugin-create-pull-request: ^5.0.0 + yaml: ^2.0.0 + checksum: 8659cd41d9135ee235fc637239b2e4dfac381cfacd7d5581f69aa41462e424cbe9249ff9138819349836bc238569b2346f3bdebe10a6d898f962112b23c73204 languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.24.0": - version: 0.24.0 - resolution: "@esbuild/freebsd-arm64@npm:0.24.0" - conditions: os=freebsd & cpu=arm64 +"@backstage/plugin-scaffolder-backend-module-gitlab@npm:^0.7.0": + version: 0.7.0 + resolution: "@backstage/plugin-scaffolder-backend-module-gitlab@npm:0.7.0" + dependencies: + "@backstage/backend-common": ^0.25.0 + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/config": ^1.3.1 + "@backstage/errors": ^1.2.6 + "@backstage/integration": ^1.16.0 + "@backstage/plugin-scaffolder-node": ^0.6.2 + "@gitbeaker/rest": ^41.2.0 + luxon: ^3.0.0 + winston: ^3.2.1 + yaml: ^2.0.0 + zod: ^3.22.4 + checksum: f1d8e2116769cecb169d9142087dddf2c9a5be5842dff6f4d16db0885ae90dbf48a236de7c126a76459b8d3accc56bda66dd8af863e34c39a2eefb6b0bc06229 languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/freebsd-x64@npm:0.16.17" - conditions: os=freebsd & cpu=x64 +"@backstage/plugin-scaffolder-backend@npm:^1.26.0": + version: 1.28.0 + resolution: "@backstage/plugin-scaffolder-backend@npm:1.28.0" + dependencies: + "@backstage/backend-common": ^0.25.0 + "@backstage/backend-defaults": ^0.6.0 + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/catalog-client": ^1.9.0 + "@backstage/catalog-model": ^1.7.2 + "@backstage/config": ^1.3.1 + "@backstage/errors": ^1.2.6 + "@backstage/integration": ^1.16.0 + "@backstage/plugin-auth-node": ^0.5.5 + "@backstage/plugin-bitbucket-cloud-common": ^0.2.26 + "@backstage/plugin-catalog-backend-module-scaffolder-entity-model": ^0.2.3 + "@backstage/plugin-catalog-node": ^1.15.0 + "@backstage/plugin-events-node": ^0.4.6 + "@backstage/plugin-permission-common": ^0.8.3 + "@backstage/plugin-permission-node": ^0.8.6 + "@backstage/plugin-scaffolder-backend-module-azure": ^0.2.4 + "@backstage/plugin-scaffolder-backend-module-bitbucket": ^0.3.5 + "@backstage/plugin-scaffolder-backend-module-bitbucket-cloud": ^0.2.4 + "@backstage/plugin-scaffolder-backend-module-bitbucket-server": ^0.2.4 + "@backstage/plugin-scaffolder-backend-module-gerrit": ^0.2.4 + "@backstage/plugin-scaffolder-backend-module-gitea": ^0.2.4 + "@backstage/plugin-scaffolder-backend-module-github": ^0.5.4 + "@backstage/plugin-scaffolder-backend-module-gitlab": ^0.7.0 + "@backstage/plugin-scaffolder-common": ^1.5.8 + "@backstage/plugin-scaffolder-node": ^0.6.2 + "@backstage/types": ^1.2.0 + "@opentelemetry/api": ^1.9.0 + "@types/express": ^4.17.6 + "@types/luxon": ^3.0.0 + concat-stream: ^2.0.0 + express: ^4.17.1 + express-promise-router: ^4.1.0 + fs-extra: ^11.2.0 + globby: ^11.0.0 + isbinaryfile: ^5.0.0 + isolated-vm: ^5.0.1 + jsonschema: ^1.2.6 + knex: ^3.0.0 + lodash: ^4.17.21 + logform: ^2.3.2 + luxon: ^3.0.0 + nunjucks: ^3.2.3 + p-limit: ^3.1.0 + p-queue: ^6.6.2 + prom-client: ^15.0.0 + tar: ^6.1.12 + triple-beam: ^1.4.1 + uuid: ^11.0.0 + winston: ^3.2.1 + winston-transport: ^4.7.0 + yaml: ^2.0.0 + zen-observable: ^0.10.0 + zod: ^3.22.4 + checksum: af82bde65c80b198baacd892abb7e3177ffaad4a041501f46e2e12f719ba837c95336861d03d0b78e8ad96288b97dff2a7201c71a9d0dfd325554ebc1807cf7e languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/freebsd-x64@npm:0.21.5" - conditions: os=freebsd & cpu=x64 +"@backstage/plugin-scaffolder-common@npm:^1.5.8": + version: 1.5.8 + resolution: "@backstage/plugin-scaffolder-common@npm:1.5.8" + dependencies: + "@backstage/catalog-model": ^1.7.2 + "@backstage/plugin-permission-common": ^0.8.3 + "@backstage/types": ^1.2.0 + checksum: 6c61a51dc56564f921cd3b604b2802154d6c6aea9a6695ebfbcf7e30411b25a09b28ea93d009cb1622107c65173c2f644eec63dd3d51726bf94876209d32be00 languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/freebsd-x64@npm:0.23.1" - conditions: os=freebsd & cpu=x64 +"@backstage/plugin-scaffolder-node@npm:^0.6.2": + version: 0.6.2 + resolution: "@backstage/plugin-scaffolder-node@npm:0.6.2" + dependencies: + "@backstage/backend-common": ^0.25.0 + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/catalog-model": ^1.7.2 + "@backstage/errors": ^1.2.6 + "@backstage/integration": ^1.16.0 + "@backstage/plugin-scaffolder-common": ^1.5.8 + "@backstage/types": ^1.2.0 + concat-stream: ^2.0.0 + fs-extra: ^11.2.0 + globby: ^11.0.0 + isomorphic-git: ^1.23.0 + jsonschema: ^1.2.6 + p-limit: ^3.1.0 + tar: ^6.1.12 + winston: ^3.2.1 + zod: ^3.22.4 + zod-to-json-schema: ^3.20.4 + checksum: ab743ee3fd716063794bf1e4f46944241bdc917230da94106c467d06eebb5114f954fb96845961de1e6bebd21f426977da320592afd6ea64efa43a71a987fb0a + languageName: node + linkType: hard + +"@backstage/plugin-scaffolder-react@npm:^1.14.2": + version: 1.14.2 + resolution: "@backstage/plugin-scaffolder-react@npm:1.14.2" + dependencies: + "@backstage/catalog-client": ^1.9.0 + "@backstage/catalog-model": ^1.7.2 + "@backstage/core-components": ^0.16.2 + "@backstage/core-plugin-api": ^1.10.2 + "@backstage/frontend-plugin-api": ^0.9.3 + "@backstage/plugin-catalog-react": ^1.15.0 + "@backstage/plugin-permission-react": ^0.4.29 + "@backstage/plugin-scaffolder-common": ^1.5.8 + "@backstage/theme": ^0.6.3 + "@backstage/types": ^1.2.0 + "@backstage/version-bridge": ^1.0.10 + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + "@material-ui/lab": 4.0.0-alpha.61 + "@react-hookz/web": ^24.0.0 + "@rjsf/core": 5.23.1 + "@rjsf/material-ui": 5.23.1 + "@rjsf/utils": 5.23.1 + "@rjsf/validator-ajv8": 5.23.1 + "@types/json-schema": ^7.0.9 + ajv-errors: ^3.0.0 + classnames: ^2.2.6 + flatted: 3.3.2 + humanize-duration: ^3.25.1 + json-schema: ^0.4.0 + json-schema-library: ^9.0.0 + lodash: ^4.17.21 + luxon: ^3.0.0 + qs: ^6.9.4 + react-use: ^17.2.4 + use-immer: ^0.10.0 + zen-observable: ^0.10.0 + zod: ^3.22.4 + zod-to-json-schema: ^3.20.4 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 4d17c955e0ab6da2b23499c48a1a8952a7fd69f639304f48c8f04554e4526236e0cc93bb22b276ef77661d4d4da996515154f881e345e392017159aa46812c2a + languageName: node + linkType: hard + +"@backstage/plugin-scaffolder@npm:^1.26.0": + version: 1.27.3 + resolution: "@backstage/plugin-scaffolder@npm:1.27.3" + dependencies: + "@backstage/catalog-client": ^1.9.0 + "@backstage/catalog-model": ^1.7.2 + "@backstage/core-compat-api": ^0.3.4 + "@backstage/core-components": ^0.16.2 + "@backstage/core-plugin-api": ^1.10.2 + "@backstage/errors": ^1.2.6 + "@backstage/frontend-plugin-api": ^0.9.3 + "@backstage/integration": ^1.16.0 + "@backstage/integration-react": ^1.2.2 + "@backstage/plugin-catalog-common": ^1.1.2 + "@backstage/plugin-catalog-react": ^1.15.0 + "@backstage/plugin-permission-react": ^0.4.29 + "@backstage/plugin-scaffolder-common": ^1.5.8 + "@backstage/plugin-scaffolder-react": ^1.14.2 + "@backstage/types": ^1.2.0 + "@codemirror/language": ^6.0.0 + "@codemirror/legacy-modes": ^6.1.0 + "@codemirror/view": ^6.0.0 + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + "@material-ui/lab": 4.0.0-alpha.61 + "@microsoft/fetch-event-source": ^2.0.1 + "@react-hookz/web": ^24.0.0 + "@rjsf/core": 5.23.1 + "@rjsf/material-ui": 5.23.1 + "@rjsf/utils": 5.23.1 + "@rjsf/validator-ajv8": 5.23.1 + "@uiw/react-codemirror": ^4.9.3 + classnames: ^2.2.6 + git-url-parse: ^15.0.0 + humanize-duration: ^3.25.1 + idb-keyval: 5.1.5 + json-schema: ^0.4.0 + json-schema-library: ^9.0.0 + jszip: ^3.10.1 + lodash: ^4.17.21 + luxon: ^3.0.0 + qs: ^6.9.4 + react-resizable: ^3.0.5 + react-use: ^17.2.4 + react-window: ^1.8.10 + yaml: ^2.0.0 + zen-observable: ^0.10.0 + zod: ^3.22.4 + zod-to-json-schema: ^3.20.4 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 81311c50fabdd06e91949e3aceea68c7961c0f80467c8e083fcbc4f088a3ca8dc0ffd0b4be46e2637f70b8d2d57517d61e804c2e2cc75a9b8f6c6baf5de305e9 languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.24.0": - version: 0.24.0 - resolution: "@esbuild/freebsd-x64@npm:0.24.0" - conditions: os=freebsd & cpu=x64 +"@backstage/plugin-search-backend-module-catalog@npm:^0.2.3, @backstage/plugin-search-backend-module-catalog@npm:^0.2.6": + version: 0.2.6 + resolution: "@backstage/plugin-search-backend-module-catalog@npm:0.2.6" + dependencies: + "@backstage/backend-common": ^0.25.0 + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/catalog-client": ^1.9.0 + "@backstage/catalog-model": ^1.7.2 + "@backstage/config": ^1.3.1 + "@backstage/errors": ^1.2.6 + "@backstage/plugin-catalog-common": ^1.1.2 + "@backstage/plugin-catalog-node": ^1.15.0 + "@backstage/plugin-permission-common": ^0.8.3 + "@backstage/plugin-search-backend-node": ^1.3.6 + "@backstage/plugin-search-common": ^1.2.16 + checksum: 06af6b448cb67fbd1b6f6d4870b0869a641d76b7b33ed8fd9d709767143f292d0d6cda8a93c699bace09611aeef8fa783db0604f7dbeb5e72c59c848fd549e1a languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-arm64@npm:0.16.17" - conditions: os=linux & cpu=arm64 +"@backstage/plugin-search-backend-module-pg@npm:^0.5.36": + version: 0.5.39 + resolution: "@backstage/plugin-search-backend-module-pg@npm:0.5.39" + dependencies: + "@backstage/backend-common": ^0.25.0 + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/config": ^1.3.1 + "@backstage/plugin-search-backend-node": ^1.3.6 + "@backstage/plugin-search-common": ^1.2.16 + knex: ^3.0.0 + lodash: ^4.17.21 + uuid: ^11.0.0 + checksum: ee59838a97ab3299ca0a69e01c05a69e76103da1076b83eb3c388c8a82dcc485ff147a54b2591fc6b702f014d87612082889dca253c5eb81a0a326b203559678 languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-arm64@npm:0.21.5" - conditions: os=linux & cpu=arm64 +"@backstage/plugin-search-backend-module-techdocs@npm:^0.3.0, @backstage/plugin-search-backend-module-techdocs@npm:^0.3.4": + version: 0.3.4 + resolution: "@backstage/plugin-search-backend-module-techdocs@npm:0.3.4" + dependencies: + "@backstage/backend-common": ^0.25.0 + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/catalog-client": ^1.9.0 + "@backstage/catalog-model": ^1.7.2 + "@backstage/config": ^1.3.1 + "@backstage/plugin-catalog-common": ^1.1.2 + "@backstage/plugin-catalog-node": ^1.15.0 + "@backstage/plugin-permission-common": ^0.8.3 + "@backstage/plugin-search-backend-node": ^1.3.6 + "@backstage/plugin-search-common": ^1.2.16 + "@backstage/plugin-techdocs-node": ^1.12.15 + lodash: ^4.17.21 + p-limit: ^3.1.0 + checksum: 3f023972267b62a1571c1eb385ce6412c9c910963364026c528aebc2dc6356310f4f41288b5f8330e7b04ff3d4fe30271493f04b72e85c84b343a44bd59d78e6 languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/linux-arm64@npm:0.23.1" - conditions: os=linux & cpu=arm64 +"@backstage/plugin-search-backend-node@npm:^1.3.3, @backstage/plugin-search-backend-node@npm:^1.3.6": + version: 1.3.6 + resolution: "@backstage/plugin-search-backend-node@npm:1.3.6" + dependencies: + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/config": ^1.3.1 + "@backstage/errors": ^1.2.6 + "@backstage/plugin-permission-common": ^0.8.3 + "@backstage/plugin-search-common": ^1.2.16 + "@types/lunr": ^2.3.3 + lodash: ^4.17.21 + lunr: ^2.3.9 + ndjson: ^2.0.0 + uuid: ^11.0.0 + checksum: 59df3dbe4ce80ec181ba42396a5bd1e272c8e06ecbb9116a4dc8ac33c25f720599f24cece6a7717d155e94bf39207eaae82aa6f3859acb529204a049a54cc020 languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.24.0": - version: 0.24.0 - resolution: "@esbuild/linux-arm64@npm:0.24.0" - conditions: os=linux & cpu=arm64 +"@backstage/plugin-search-backend@npm:^1.6.0": + version: 1.8.0 + resolution: "@backstage/plugin-search-backend@npm:1.8.0" + dependencies: + "@backstage/backend-common": ^0.25.0 + "@backstage/backend-defaults": ^0.6.0 + "@backstage/backend-openapi-utils": ^0.4.0 + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/config": ^1.3.1 + "@backstage/errors": ^1.2.6 + "@backstage/plugin-permission-common": ^0.8.3 + "@backstage/plugin-permission-node": ^0.8.6 + "@backstage/plugin-search-backend-node": ^1.3.6 + "@backstage/plugin-search-common": ^1.2.16 + "@backstage/types": ^1.2.0 + "@types/express": ^4.17.6 + dataloader: ^2.0.0 + express: ^4.17.1 + lodash: ^4.17.21 + qs: ^6.10.1 + yn: ^4.0.0 + zod: ^3.22.4 + checksum: 0ff0249ea09c36490534e03b8a320084832afa33a67830ef76e675da623ec7a51933175cdcfc5e4d51209f82ffc4a4bafefcd55894a6f4bb0deafd65f0285028 languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-arm@npm:0.16.17" - conditions: os=linux & cpu=arm +"@backstage/plugin-search-common@npm:^1.2.16": + version: 1.2.16 + resolution: "@backstage/plugin-search-common@npm:1.2.16" + dependencies: + "@backstage/plugin-permission-common": ^0.8.3 + "@backstage/types": ^1.2.0 + checksum: b4694b4be71dfbeac9352fc0f6dfc5b7d21f3fa69b15f9ff8efb22de2453e71c4f02340726325c7213e296a8bb07eaf60de552e3b6b13b40d97d53486b350389 languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-arm@npm:0.21.5" - conditions: os=linux & cpu=arm +"@backstage/plugin-search-react@npm:^1.8.1, @backstage/plugin-search-react@npm:^1.8.4": + version: 1.8.4 + resolution: "@backstage/plugin-search-react@npm:1.8.4" + dependencies: + "@backstage/core-components": ^0.16.2 + "@backstage/core-plugin-api": ^1.10.2 + "@backstage/frontend-plugin-api": ^0.9.3 + "@backstage/plugin-search-common": ^1.2.16 + "@backstage/theme": ^0.6.3 + "@backstage/types": ^1.2.0 + "@backstage/version-bridge": ^1.0.10 + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + "@material-ui/lab": 4.0.0-alpha.61 + lodash: ^4.17.21 + qs: ^6.9.4 + react-use: ^17.3.2 + uuid: ^11.0.2 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: e79ca8653fc148cdacd5dcc2cd846f3871989e332fbec329e2dcfea72a8f04d586117d7dadef4d4a85ccb97b3406a64ae31a3d6557839ef49b22019563879de9 + languageName: node + linkType: hard + +"@backstage/plugin-search@npm:^1.4.18": + version: 1.4.21 + resolution: "@backstage/plugin-search@npm:1.4.21" + dependencies: + "@backstage/core-compat-api": ^0.3.4 + "@backstage/core-components": ^0.16.2 + "@backstage/core-plugin-api": ^1.10.2 + "@backstage/errors": ^1.2.6 + "@backstage/frontend-plugin-api": ^0.9.3 + "@backstage/plugin-catalog-react": ^1.15.0 + "@backstage/plugin-search-common": ^1.2.16 + "@backstage/plugin-search-react": ^1.8.4 + "@backstage/types": ^1.2.0 + "@backstage/version-bridge": ^1.0.10 + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + qs: ^6.9.4 + react-use: ^17.2.4 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 93f2ff7b183ef3a5a668f094a1fdff10cd5133204effe42dbb52c9ef66b21821ca08c34380cfb9428f93f9dfa822a51d1f9b04ef8d497dfed69541a2b020248c languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/linux-arm@npm:0.23.1" - conditions: os=linux & cpu=arm +"@backstage/plugin-signals-react@npm:^0.0.8": + version: 0.0.8 + resolution: "@backstage/plugin-signals-react@npm:0.0.8" + dependencies: + "@backstage/core-plugin-api": ^1.10.2 + "@backstage/types": ^1.2.0 + "@material-ui/core": ^4.12.4 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: ae23e88aa262e2ccba5cf8fc192095d2629960ae790d91755f22f48ba3c8e07db653e4f3e9c3a92791c2d86c75a144914446c891b04ec98f2ebb145dfd6c5a12 languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.24.0": - version: 0.24.0 - resolution: "@esbuild/linux-arm@npm:0.24.0" - conditions: os=linux & cpu=arm +"@backstage/plugin-techdocs-backend@npm:^1.11.0": + version: 1.11.4 + resolution: "@backstage/plugin-techdocs-backend@npm:1.11.4" + dependencies: + "@backstage/backend-common": ^0.25.0 + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/catalog-client": ^1.9.0 + "@backstage/catalog-model": ^1.7.2 + "@backstage/config": ^1.3.1 + "@backstage/errors": ^1.2.6 + "@backstage/integration": ^1.16.0 + "@backstage/plugin-catalog-common": ^1.1.2 + "@backstage/plugin-catalog-node": ^1.15.0 + "@backstage/plugin-permission-common": ^0.8.3 + "@backstage/plugin-search-backend-module-techdocs": ^0.3.4 + "@backstage/plugin-techdocs-common": ^0.1.0 + "@backstage/plugin-techdocs-node": ^1.12.15 + "@types/express": ^4.17.6 + express: ^4.17.1 + express-promise-router: ^4.1.0 + fs-extra: ^11.2.0 + knex: ^3.0.0 + lodash: ^4.17.21 + p-limit: ^3.1.0 + winston: ^3.2.1 + checksum: 90bec22503f8e7d266d35ca8f77ab6ad9aea3ca3a8608a487ce1c67d8bec882d5669a5880b027ff51fcc8a2f33c037c03eb152611dbf9ea7829298eeb095fe7b languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-ia32@npm:0.16.17" - conditions: os=linux & cpu=ia32 +"@backstage/plugin-techdocs-common@npm:^0.1.0": + version: 0.1.0 + resolution: "@backstage/plugin-techdocs-common@npm:0.1.0" + checksum: e38752e54cd4d516e6ab4908dca16cad7863ecd8c81cf4f0d52a4dbe159c3a2080788f3941395b45011dd47d72930236cd44567a5c7a39efb9a3a037df1b2cba languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-ia32@npm:0.21.5" - conditions: os=linux & cpu=ia32 +"@backstage/plugin-techdocs-module-addons-contrib@npm:^1.1.16": + version: 1.1.19 + resolution: "@backstage/plugin-techdocs-module-addons-contrib@npm:1.1.19" + dependencies: + "@backstage/core-components": ^0.16.2 + "@backstage/core-plugin-api": ^1.10.2 + "@backstage/integration": ^1.16.0 + "@backstage/integration-react": ^1.2.2 + "@backstage/plugin-techdocs-react": ^1.2.12 + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + "@react-hookz/web": ^24.0.0 + git-url-parse: ^15.0.0 + photoswipe: ^5.3.7 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 120770752a347e4ab5ec7a271402a6c502d54c9e0ce802dfebf8d5baf3ac90383276b59a602a8a55353f10d47cca2bc80b2363b98300bb76ba84c798b9539d12 languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/linux-ia32@npm:0.23.1" - conditions: os=linux & cpu=ia32 +"@backstage/plugin-techdocs-node@npm:^1.12.15": + version: 1.12.15 + resolution: "@backstage/plugin-techdocs-node@npm:1.12.15" + dependencies: + "@aws-sdk/client-s3": ^3.350.0 + "@aws-sdk/credential-providers": ^3.350.0 + "@aws-sdk/lib-storage": ^3.350.0 + "@aws-sdk/types": ^3.347.0 + "@azure/identity": ^4.0.0 + "@azure/storage-blob": ^12.5.0 + "@backstage/backend-plugin-api": ^1.1.0 + "@backstage/catalog-model": ^1.7.2 + "@backstage/config": ^1.3.1 + "@backstage/errors": ^1.2.6 + "@backstage/integration": ^1.16.0 + "@backstage/integration-aws-node": ^0.1.14 + "@backstage/plugin-search-common": ^1.2.16 + "@backstage/plugin-techdocs-common": ^0.1.0 + "@google-cloud/storage": ^7.0.0 + "@smithy/node-http-handler": ^3.0.0 + "@trendyol-js/openstack-swift-sdk": ^0.0.7 + "@types/express": ^4.17.6 + dockerode: ^4.0.0 + express: ^4.17.1 + fs-extra: ^11.2.0 + git-url-parse: ^15.0.0 + hpagent: ^1.2.0 + js-yaml: ^4.0.0 + json5: ^2.1.3 + mime-types: ^2.1.27 + p-limit: ^3.1.0 + recursive-readdir: ^2.2.2 + winston: ^3.2.1 + checksum: 77ec565f8c5b5712df33353d912504460f2e968edd701fd23f80e07e9369c7afd86418ef715f2ba7cbf3691aa742b6004382680ff03db4ac33b2d73d75e356ef languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.24.0": - version: 0.24.0 - resolution: "@esbuild/linux-ia32@npm:0.24.0" - conditions: os=linux & cpu=ia32 +"@backstage/plugin-techdocs-react@npm:^1.2.12, @backstage/plugin-techdocs-react@npm:^1.2.9": + version: 1.2.12 + resolution: "@backstage/plugin-techdocs-react@npm:1.2.12" + dependencies: + "@backstage/catalog-model": ^1.7.2 + "@backstage/config": ^1.3.1 + "@backstage/core-components": ^0.16.2 + "@backstage/core-plugin-api": ^1.10.2 + "@backstage/version-bridge": ^1.0.10 + "@material-ui/core": ^4.12.2 + "@material-ui/styles": ^4.11.0 + jss: ~10.10.0 + lodash: ^4.17.21 + react-helmet: 6.1.0 + react-use: ^17.2.4 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 457868cdc3be965c26e39f74f8b02bf3ce3bcfa0dbe049833c1369ae56928aa46038099a97db6a2c7ba735f8bef99209c0980c26a499a6f02840a2b0ea7c16f1 + languageName: node + linkType: hard + +"@backstage/plugin-techdocs@npm:^1.11.0": + version: 1.12.0 + resolution: "@backstage/plugin-techdocs@npm:1.12.0" + dependencies: + "@backstage/catalog-model": ^1.7.2 + "@backstage/config": ^1.3.1 + "@backstage/core-compat-api": ^0.3.4 + "@backstage/core-components": ^0.16.2 + "@backstage/core-plugin-api": ^1.10.2 + "@backstage/errors": ^1.2.6 + "@backstage/frontend-plugin-api": ^0.9.3 + "@backstage/integration": ^1.16.0 + "@backstage/integration-react": ^1.2.2 + "@backstage/plugin-auth-react": ^0.1.10 + "@backstage/plugin-catalog-react": ^1.15.0 + "@backstage/plugin-search-common": ^1.2.16 + "@backstage/plugin-search-react": ^1.8.4 + "@backstage/plugin-techdocs-common": ^0.1.0 + "@backstage/plugin-techdocs-react": ^1.2.12 + "@backstage/theme": ^0.6.3 + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + "@material-ui/lab": 4.0.0-alpha.61 + "@material-ui/styles": ^4.10.0 + "@microsoft/fetch-event-source": ^2.0.1 + dompurify: ^3.0.0 + git-url-parse: ^15.0.0 + jss: ~10.10.0 + lodash: ^4.17.21 + react-helmet: 6.1.0 + react-use: ^17.2.4 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: a6282fd1e7b861371fdb9b8ed50669626b8d3512d5abe090af255ed17c1115044ba0a1924d639d29eceb3d2e097925808c487b7617efc2088023a4d96c7b0e75 languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-loong64@npm:0.16.17" - conditions: os=linux & cpu=loong64 +"@backstage/plugin-user-settings-common@npm:^0.0.1": + version: 0.0.1 + resolution: "@backstage/plugin-user-settings-common@npm:0.0.1" + checksum: f3441e1b8891d34588a2fbf4dcddacad2d3732ca2f14128e8736ed6afb85debb63ba365bfc32a66f30e7112c1ebd7a22ee793e87feb84647c4e48f6d3bec227e + languageName: node + linkType: hard + +"@backstage/plugin-user-settings@npm:^0.8.14": + version: 0.8.17 + resolution: "@backstage/plugin-user-settings@npm:0.8.17" + dependencies: + "@backstage/catalog-model": ^1.7.2 + "@backstage/core-app-api": ^1.15.3 + "@backstage/core-compat-api": ^0.3.4 + "@backstage/core-components": ^0.16.2 + "@backstage/core-plugin-api": ^1.10.2 + "@backstage/errors": ^1.2.6 + "@backstage/frontend-plugin-api": ^0.9.3 + "@backstage/plugin-catalog-react": ^1.15.0 + "@backstage/plugin-signals-react": ^0.0.8 + "@backstage/plugin-user-settings-common": ^0.0.1 + "@backstage/theme": ^0.6.3 + "@backstage/types": ^1.2.0 + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + "@material-ui/lab": 4.0.0-alpha.61 + react-use: ^17.2.4 + zen-observable: ^0.10.0 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: b3c6d391582df0ded387e813f636186f4317ed1e1adfcd02d5532da788cbd8b24782914c5e1d7104d71c3748d8cd7cf4379ca976d24cfef97088fff7a07ceab6 languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-loong64@npm:0.21.5" - conditions: os=linux & cpu=loong64 +"@backstage/release-manifests@npm:^0.0.11": + version: 0.0.11 + resolution: "@backstage/release-manifests@npm:0.0.11" + dependencies: + cross-fetch: ^4.0.0 + checksum: c03a21524436f1e423a40ac15f685b7f13ce3205e2684ce859571db3b70c78d783b3e1702ba3ffb2ba2d446f7444e8c592c6696b7c618fbf6648e91cb4c4fe07 languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/linux-loong64@npm:0.23.1" - conditions: os=linux & cpu=loong64 +"@backstage/repo-tools@npm:^0.10.0": + version: 0.10.0 + resolution: "@backstage/repo-tools@npm:0.10.0" + dependencies: + "@apidevtools/swagger-parser": ^10.1.0 + "@apisyouwonthate/style-guide": ^1.4.0 + "@backstage/backend-plugin-api": ^1.0.1 + "@backstage/catalog-model": ^1.7.0 + "@backstage/cli-common": ^0.1.14 + "@backstage/cli-node": ^0.2.9 + "@backstage/config-loader": ^1.9.1 + "@backstage/errors": ^1.2.4 + "@manypkg/get-packages": ^1.1.3 + "@microsoft/api-documenter": ^7.25.7 + "@microsoft/api-extractor": ^7.47.2 + "@openapitools/openapi-generator-cli": ^2.7.0 + "@stoplight/spectral-core": ^1.18.0 + "@stoplight/spectral-formatters": ^1.1.0 + "@stoplight/spectral-functions": ^1.7.2 + "@stoplight/spectral-parsers": ^1.0.2 + "@stoplight/spectral-rulesets": ^1.18.0 + "@stoplight/spectral-runtime": ^1.1.2 + "@stoplight/types": ^14.0.0 + "@useoptic/openapi-utilities": ^0.55.0 + chalk: ^4.0.0 + codeowners-utils: ^1.0.2 + command-exists: ^1.2.9 + commander: ^12.0.0 + fs-extra: ^11.2.0 + glob: ^8.0.3 + is-glob: ^4.0.3 + js-yaml: ^4.1.0 + lodash: ^4.17.21 + minimatch: ^9.0.0 + p-limit: ^3.0.2 + portfinder: ^1.0.32 + ts-morph: ^23.0.0 + yaml-diff-patch: ^2.0.0 + peerDependencies: + "@microsoft/api-extractor-model": "*" + "@microsoft/tsdoc": "*" + "@microsoft/tsdoc-config": "*" + "@useoptic/optic": ^1.0.0 + prettier: ^2.8.1 + typescript: "> 3.0.0" + peerDependenciesMeta: + prettier: + optional: true + bin: + backstage-repo-tools: bin/backstage-repo-tools + checksum: 8a68c69f053edadd087d829823880902d8e6d55e77d756d6b4ba4640af29493036ac5fa08cec08666b59ddfb27cacf4975fd24ac7ba785dab5b1d8a96df62bec languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.24.0": - version: 0.24.0 - resolution: "@esbuild/linux-loong64@npm:0.24.0" - conditions: os=linux & cpu=loong64 +"@backstage/test-utils@npm:1.7.0": + version: 1.7.0 + resolution: "@backstage/test-utils@npm:1.7.0" + dependencies: + "@backstage/config": ^1.2.0 + "@backstage/core-app-api": ^1.15.1 + "@backstage/core-plugin-api": ^1.10.0 + "@backstage/plugin-permission-common": ^0.8.1 + "@backstage/plugin-permission-react": ^0.4.27 + "@backstage/theme": ^0.6.0 + "@backstage/types": ^1.1.1 + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + cross-fetch: ^4.0.0 + i18next: ^22.4.15 + zen-observable: ^0.10.0 + peerDependencies: + "@testing-library/react": ^16.0.0 + "@types/jest": "*" + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/jest": + optional: true + "@types/react": + optional: true + checksum: a2510b9b2cde88ba636af2d09d30d8349b80167a9408e416b2245771f5138dfd56745a6b08ecad64ec7f9656d2b5a15d9ab15dbcd695d3981db49e272d8a3260 languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-mips64el@npm:0.16.17" - conditions: os=linux & cpu=mips64el +"@backstage/test-utils@npm:^1.7.0, @backstage/test-utils@npm:^1.7.3": + version: 1.7.3 + resolution: "@backstage/test-utils@npm:1.7.3" + dependencies: + "@backstage/config": ^1.3.1 + "@backstage/core-app-api": ^1.15.3 + "@backstage/core-plugin-api": ^1.10.2 + "@backstage/plugin-permission-common": ^0.8.3 + "@backstage/plugin-permission-react": ^0.4.29 + "@backstage/theme": ^0.6.3 + "@backstage/types": ^1.2.0 + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + cross-fetch: ^4.0.0 + i18next: ^22.4.15 + zen-observable: ^0.10.0 + peerDependencies: + "@testing-library/react": ^16.0.0 + "@types/jest": "*" + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/jest": + optional: true + "@types/react": + optional: true + checksum: 46d13417a0e3e8b6db2d4ab536729e8f9575db320f0d0e5ded38cafb71571122b9b610d36f98e0674a3300469511408e608d277590c1a9b8dede05d73fc793ae languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-mips64el@npm:0.21.5" - conditions: os=linux & cpu=mips64el +"@backstage/theme@npm:^0.6.0, @backstage/theme@npm:^0.6.3": + version: 0.6.3 + resolution: "@backstage/theme@npm:0.6.3" + dependencies: + "@emotion/react": ^11.10.5 + "@emotion/styled": ^11.10.5 + "@mui/material": ^5.12.2 + peerDependencies: + "@material-ui/core": ^4.12.2 + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 597713cfbbb91bd4d31f33d04d296766ea76afe00a04133af5b25422941fc89d4dcc2ec476450980690fa3df1dcc16c8b0b1c5bf6425b77d962604a758fc60f0 languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/linux-mips64el@npm:0.23.1" - conditions: os=linux & cpu=mips64el +"@backstage/types@npm:^1.1.1, @backstage/types@npm:^1.2.0": + version: 1.2.0 + resolution: "@backstage/types@npm:1.2.0" + checksum: a8b22a95b7c64bde31927e18f6892bb0be949bd1a7bc5d9ef1e4d9df984ff80144148a6019a69d1084f6214fcb9536fdd7d8f2fb3708ef373ff2e1bac28442b0 languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.24.0": - version: 0.24.0 - resolution: "@esbuild/linux-mips64el@npm:0.24.0" - conditions: os=linux & cpu=mips64el +"@backstage/version-bridge@npm:^1.0.10": + version: 1.0.10 + resolution: "@backstage/version-bridge@npm:1.0.10" + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: f24c02c071aecf5a9557602252dc458a6db93393960b9f4a51dc649c1886afcfaae3f3a46ce3c846721ea56a112c0c604de52782e19f495daec2b16ae7e72af4 languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-ppc64@npm:0.16.17" - conditions: os=linux & cpu=ppc64 +"@balena/dockerignore@npm:^1.0.2": + version: 1.0.2 + resolution: "@balena/dockerignore@npm:1.0.2" + checksum: 0d39f8fbcfd1a983a44bced54508471ab81aaaa40e2c62b46a9f97eac9d6b265790799f16919216db486331dedaacdde6ecbd6b7abe285d39bc50de111991699 languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-ppc64@npm:0.21.5" - conditions: os=linux & cpu=ppc64 +"@bcoe/v8-coverage@npm:^0.2.3": + version: 0.2.3 + resolution: "@bcoe/v8-coverage@npm:0.2.3" + checksum: 850f9305536d0f2bd13e9e0881cb5f02e4f93fad1189f7b2d4bebf694e3206924eadee1068130d43c11b750efcc9405f88a8e42ef098b6d75239c0f047de1a27 languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/linux-ppc64@npm:0.23.1" - conditions: os=linux & cpu=ppc64 +"@braintree/sanitize-url@npm:=7.0.4": + version: 7.0.4 + resolution: "@braintree/sanitize-url@npm:7.0.4" + checksum: e613da3aa3e2139c3a5cf0121c7d6520c109d9b94540b3967ffff76714f3b2b0e99f4f3f7387f16cf1c189fc0041c6f010ca6e786c73d4ef3221cca0ede38f74 languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.24.0": - version: 0.24.0 - resolution: "@esbuild/linux-ppc64@npm:0.24.0" - conditions: os=linux & cpu=ppc64 +"@changesets/apply-release-plan@npm:^7.0.7": + version: 7.0.7 + resolution: "@changesets/apply-release-plan@npm:7.0.7" + dependencies: + "@changesets/config": ^3.0.5 + "@changesets/get-version-range-type": ^0.4.0 + "@changesets/git": ^3.0.2 + "@changesets/should-skip-package": ^0.1.1 + "@changesets/types": ^6.0.0 + "@manypkg/get-packages": ^1.1.3 + detect-indent: ^6.0.0 + fs-extra: ^7.0.1 + lodash.startcase: ^4.4.0 + outdent: ^0.5.0 + prettier: ^2.7.1 + resolve-from: ^5.0.0 + semver: ^7.5.3 + checksum: 775e8f86ab8b82ebdb44471dfbdf14e669144e63b6c972bc8502d608247ef909baca63973f71b8d15acd4fff8740a61802256bc261de12b956e4c2b8fd34d929 languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-riscv64@npm:0.16.17" - conditions: os=linux & cpu=riscv64 +"@changesets/assemble-release-plan@npm:^6.0.5": + version: 6.0.5 + resolution: "@changesets/assemble-release-plan@npm:6.0.5" + dependencies: + "@changesets/errors": ^0.2.0 + "@changesets/get-dependents-graph": ^2.1.2 + "@changesets/should-skip-package": ^0.1.1 + "@changesets/types": ^6.0.0 + "@manypkg/get-packages": ^1.1.3 + semver: ^7.5.3 + checksum: d13c28a8666509a1e20dd496d2ec640ab11f610fcd88f69bd6c6166ae285ce647862e6a6a786d537f8d5070720dbca883cc4d1b08f83ed08b8a89b26221ad6c2 languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-riscv64@npm:0.21.5" - conditions: os=linux & cpu=riscv64 +"@changesets/changelog-git@npm:^0.2.0": + version: 0.2.0 + resolution: "@changesets/changelog-git@npm:0.2.0" + dependencies: + "@changesets/types": ^6.0.0 + checksum: 132660f7fdabbdda00ac803cc822d6427a1a38a17a5f414e87ad32f6dc4cbef5280a147ecdc087a28dc06c8bd0762f8d6e7132d01b8a4142b59fbe1bc2177034 languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/linux-riscv64@npm:0.23.1" - conditions: os=linux & cpu=riscv64 +"@changesets/cli@npm:^2.27.1": + version: 2.27.11 + resolution: "@changesets/cli@npm:2.27.11" + dependencies: + "@changesets/apply-release-plan": ^7.0.7 + "@changesets/assemble-release-plan": ^6.0.5 + "@changesets/changelog-git": ^0.2.0 + "@changesets/config": ^3.0.5 + "@changesets/errors": ^0.2.0 + "@changesets/get-dependents-graph": ^2.1.2 + "@changesets/get-release-plan": ^4.0.6 + "@changesets/git": ^3.0.2 + "@changesets/logger": ^0.1.1 + "@changesets/pre": ^2.0.1 + "@changesets/read": ^0.6.2 + "@changesets/should-skip-package": ^0.1.1 + "@changesets/types": ^6.0.0 + "@changesets/write": ^0.3.2 + "@manypkg/get-packages": ^1.1.3 + ansi-colors: ^4.1.3 + ci-info: ^3.7.0 + enquirer: ^2.4.1 + external-editor: ^3.1.0 + fs-extra: ^7.0.1 + mri: ^1.2.0 + p-limit: ^2.2.0 + package-manager-detector: ^0.2.0 + picocolors: ^1.1.0 + resolve-from: ^5.0.0 + semver: ^7.5.3 + spawndamnit: ^3.0.1 + term-size: ^2.1.0 + bin: + changeset: bin.js + checksum: 0c9d1f03ad113494ad3091caa7eca1ee167761af8257911f74c64bff670fb8a542fe9f84921b1e7e29c584b2f5883b8a6287c4f42afe59007369f4fd1cc94cec languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.24.0": - version: 0.24.0 - resolution: "@esbuild/linux-riscv64@npm:0.24.0" - conditions: os=linux & cpu=riscv64 +"@changesets/config@npm:^3.0.5": + version: 3.0.5 + resolution: "@changesets/config@npm:3.0.5" + dependencies: + "@changesets/errors": ^0.2.0 + "@changesets/get-dependents-graph": ^2.1.2 + "@changesets/logger": ^0.1.1 + "@changesets/types": ^6.0.0 + "@manypkg/get-packages": ^1.1.3 + fs-extra: ^7.0.1 + micromatch: ^4.0.8 + checksum: 75cdb5c4965656935277c69591336dd3aa825eef91d971c1d3e37777d181b6e3c1f1d78bf7ec826bbae9d70841af28c4a9cb1ea477808b3d9101413bd9f04fcf languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-s390x@npm:0.16.17" - conditions: os=linux & cpu=s390x +"@changesets/errors@npm:^0.2.0": + version: 0.2.0 + resolution: "@changesets/errors@npm:0.2.0" + dependencies: + extendable-error: ^0.1.5 + checksum: 4b79373f92287af4f723e8dbbccaf0299aa8735fc043243d0ad587f04a7614615ea50180be575d4438b9f00aa82d1cf85e902b77a55bdd3e0a8dd97e77b18c60 languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-s390x@npm:0.21.5" - conditions: os=linux & cpu=s390x +"@changesets/get-dependents-graph@npm:^2.1.2": + version: 2.1.2 + resolution: "@changesets/get-dependents-graph@npm:2.1.2" + dependencies: + "@changesets/types": ^6.0.0 + "@manypkg/get-packages": ^1.1.3 + picocolors: ^1.1.0 + semver: ^7.5.3 + checksum: 38446343e43f9b8731098e3b42d2525d5399d59cfccc09bdb62c9a48de60c7a893882050202badca3b5cab8405e6deb82e88258a56a318e42749fa60d96d874a languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/linux-s390x@npm:0.23.1" - conditions: os=linux & cpu=s390x +"@changesets/get-release-plan@npm:^4.0.6": + version: 4.0.6 + resolution: "@changesets/get-release-plan@npm:4.0.6" + dependencies: + "@changesets/assemble-release-plan": ^6.0.5 + "@changesets/config": ^3.0.5 + "@changesets/pre": ^2.0.1 + "@changesets/read": ^0.6.2 + "@changesets/types": ^6.0.0 + "@manypkg/get-packages": ^1.1.3 + checksum: 1aabe351e39ce0b0a057f96eb3ac4183907ad0458cffe1a7e0b5651ae1ef3aefb22cc6021df5114d646a2b5dc2a665bc670f9b705a85dca0bd31f7792b22403c languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.24.0": - version: 0.24.0 - resolution: "@esbuild/linux-s390x@npm:0.24.0" - conditions: os=linux & cpu=s390x +"@changesets/get-version-range-type@npm:^0.4.0": + version: 0.4.0 + resolution: "@changesets/get-version-range-type@npm:0.4.0" + checksum: 2e8c511e658e193f48de7f09522649c4cf072932f0cbe0f252a7f2703d7775b0b90b632254526338795d0658e340be9dff3879cfc8eba4534b8cd6071efff8c9 languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-x64@npm:0.16.17" - conditions: os=linux & cpu=x64 +"@changesets/git@npm:^3.0.2": + version: 3.0.2 + resolution: "@changesets/git@npm:3.0.2" + dependencies: + "@changesets/errors": ^0.2.0 + "@manypkg/get-packages": ^1.1.3 + is-subdir: ^1.1.1 + micromatch: ^4.0.8 + spawndamnit: ^3.0.1 + checksum: 56d15fd74881fccd7d46aa8e4d6b808e8d5a349103a5a54f2dd52d91a17056b271b04c28f7709fb162bab48ecaee2f51678fca01ed77be5a8392bf8efa6340c7 languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-x64@npm:0.21.5" - conditions: os=linux & cpu=x64 +"@changesets/logger@npm:^0.1.1": + version: 0.1.1 + resolution: "@changesets/logger@npm:0.1.1" + dependencies: + picocolors: ^1.1.0 + checksum: acca50ef6bf6e446b46eb576b32f1955bf4579dbf4bbc316768ed2c1d4ba4066c9c73b114eedefaa1b3e360b1060a020e6bd3dbdbc44b74da732df92307beab0 languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/linux-x64@npm:0.23.1" - conditions: os=linux & cpu=x64 +"@changesets/parse@npm:^0.4.0": + version: 0.4.0 + resolution: "@changesets/parse@npm:0.4.0" + dependencies: + "@changesets/types": ^6.0.0 + js-yaml: ^3.13.1 + checksum: 3dd970b244479746233ebd357cfff3816cf9f344ebf2cf0c7c55ce8579adfd3f506978e86ad61222dc3acf1548a2105ffdd8b3e940b3f82b225741315cee2bf0 languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.24.0": - version: 0.24.0 - resolution: "@esbuild/linux-x64@npm:0.24.0" - conditions: os=linux & cpu=x64 +"@changesets/pre@npm:^2.0.1": + version: 2.0.1 + resolution: "@changesets/pre@npm:2.0.1" + dependencies: + "@changesets/errors": ^0.2.0 + "@changesets/types": ^6.0.0 + "@manypkg/get-packages": ^1.1.3 + fs-extra: ^7.0.1 + checksum: fbe94283dce0223ee79c12fa221105752ac89eb885b77e300ec755682cb06cc0145e10335f4bc6cb26d63473e549556c2b1c8c866242419aee5e41986379652a languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/netbsd-x64@npm:0.16.17" - conditions: os=netbsd & cpu=x64 +"@changesets/read@npm:^0.6.2": + version: 0.6.2 + resolution: "@changesets/read@npm:0.6.2" + dependencies: + "@changesets/git": ^3.0.2 + "@changesets/logger": ^0.1.1 + "@changesets/parse": ^0.4.0 + "@changesets/types": ^6.0.0 + fs-extra: ^7.0.1 + p-filter: ^2.1.0 + picocolors: ^1.1.0 + checksum: e47e9a6417c92d9d81f1fb51bf8ba03296daa812acd84a0b30e007f89918822bec6d06148db00ed2fd2eab1fb705b9fa54da931ee8841cd470b1d36e42784ea1 languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/netbsd-x64@npm:0.21.5" - conditions: os=netbsd & cpu=x64 +"@changesets/should-skip-package@npm:^0.1.1": + version: 0.1.1 + resolution: "@changesets/should-skip-package@npm:0.1.1" + dependencies: + "@changesets/types": ^6.0.0 + "@manypkg/get-packages": ^1.1.3 + checksum: d187ef22495deb63e678d0ff65e8627701e2b52c25bd59dde10ce8646be8d605c0ed0a6af020dd825b137c2fc748fdc6cef52e7774bad4c7a4f404bf182a85cf languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/netbsd-x64@npm:0.23.1" - conditions: os=netbsd & cpu=x64 +"@changesets/types@npm:^4.0.1": + version: 4.1.0 + resolution: "@changesets/types@npm:4.1.0" + checksum: 72c1f58044178ca867dd9349ecc4b7c233ce3781bb03b5b72a70c3166fbbab54a2f2cb19a81f96b4649ba004442c8734569fba238be4dd737fb4624a135c6098 languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.24.0": - version: 0.24.0 - resolution: "@esbuild/netbsd-x64@npm:0.24.0" - conditions: os=netbsd & cpu=x64 +"@changesets/types@npm:^6.0.0": + version: 6.0.0 + resolution: "@changesets/types@npm:6.0.0" + checksum: d528b5d712f62c26ea422c7d34ccf6eac57a353c0733d96716db3c796ecd9bba5d496d48b37d5d46b784dc45b69c06ce3345fa3515df981bb68456cad68e6465 languageName: node linkType: hard -"@esbuild/openbsd-arm64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/openbsd-arm64@npm:0.23.1" - conditions: os=openbsd & cpu=arm64 +"@changesets/write@npm:^0.3.2": + version: 0.3.2 + resolution: "@changesets/write@npm:0.3.2" + dependencies: + "@changesets/types": ^6.0.0 + fs-extra: ^7.0.1 + human-id: ^1.0.2 + prettier: ^2.7.1 + checksum: 553ed0ba6bd6397784f5e0e2921794bd7417a3c4fb810f1abb15e7072bf9d312af74308ff743161c6ea01478884cebcaf9cee02e5c70e2c7552b2774960ee07c languageName: node linkType: hard -"@esbuild/openbsd-arm64@npm:0.24.0": - version: 0.24.0 - resolution: "@esbuild/openbsd-arm64@npm:0.24.0" - conditions: os=openbsd & cpu=arm64 +"@codemirror/autocomplete@npm:^6.0.0": + version: 6.18.4 + resolution: "@codemirror/autocomplete@npm:6.18.4" + dependencies: + "@codemirror/language": ^6.0.0 + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.17.0 + "@lezer/common": ^1.0.0 + checksum: 4216f45a17f6cfd8d33df53f940396f7d3707662570bf3a79d8d333f926e273a265fac13c362e29e3fa57ccdf444f1a047862f5f56c672cfc669c87ee975858f languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/openbsd-x64@npm:0.16.17" - conditions: os=openbsd & cpu=x64 +"@codemirror/commands@npm:^6.0.0, @codemirror/commands@npm:^6.1.0": + version: 6.7.1 + resolution: "@codemirror/commands@npm:6.7.1" + dependencies: + "@codemirror/language": ^6.0.0 + "@codemirror/state": ^6.4.0 + "@codemirror/view": ^6.27.0 + "@lezer/common": ^1.1.0 + checksum: 507ae0cc7f3a7bd869bca0de7e942ecb2bc0bd95a42484e5b06835ebf8caf7626c39d2bea26cefab99d07ab83ba5934afd2d07ce00dac4190aca014523f3c97e languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/openbsd-x64@npm:0.21.5" - conditions: os=openbsd & cpu=x64 +"@codemirror/language@npm:^6.0.0": + version: 6.10.7 + resolution: "@codemirror/language@npm:6.10.7" + dependencies: + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.23.0 + "@lezer/common": ^1.1.0 + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + style-mod: ^4.0.0 + checksum: c9b71e2df8559bc677edae293a825a0dd196c98d49a6e20a98cc6bea51a01c67d268b07b5a761d7ac15b1d65415e17af1f644d5629ab4207268804e71cd48d7c languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/openbsd-x64@npm:0.23.1" - conditions: os=openbsd & cpu=x64 +"@codemirror/legacy-modes@npm:^6.1.0": + version: 6.4.2 + resolution: "@codemirror/legacy-modes@npm:6.4.2" + dependencies: + "@codemirror/language": ^6.0.0 + checksum: fe55df97efe980a573ff5572f480eae323d7652a4a61435c654a90142def7102218023590112de7cd826c495ecaadae68a89fb5e5d4323d207af267bcce1d0c1 languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.24.0": - version: 0.24.0 - resolution: "@esbuild/openbsd-x64@npm:0.24.0" - conditions: os=openbsd & cpu=x64 +"@codemirror/lint@npm:^6.0.0": + version: 6.8.4 + resolution: "@codemirror/lint@npm:6.8.4" + dependencies: + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.35.0 + crelt: ^1.0.5 + checksum: 640e3dd44eb167d952eb5c5b8518919ba46e164aa3471776342f7f9361e676b4627a76a9f01d51b22127b97413f2bc9b8c60299d8dfdd5fc8ad0225d42de7669 languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/sunos-x64@npm:0.16.17" - conditions: os=sunos & cpu=x64 +"@codemirror/search@npm:^6.0.0": + version: 6.5.8 + resolution: "@codemirror/search@npm:6.5.8" + dependencies: + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.0.0 + crelt: ^1.0.5 + checksum: 0f9633037492a7b647b606c30255ea42c4327319e643be7ea3aa2913ed8e4aa662589f457e376636521c7d4d1215fae0e8939f127db9c0790b19ae3b654c3bc4 languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/sunos-x64@npm:0.21.5" - conditions: os=sunos & cpu=x64 +"@codemirror/state@npm:^6.0.0, @codemirror/state@npm:^6.1.1, @codemirror/state@npm:^6.4.0, @codemirror/state@npm:^6.5.0": + version: 6.5.0 + resolution: "@codemirror/state@npm:6.5.0" + dependencies: + "@marijn/find-cluster-break": ^1.0.0 + checksum: f7fbed072cc67bf250f7d231668a00b988748cacaaa2ce3ea74ff13c7c392db76000e7d517933521cc6ad9dc3651c7b6d33accab3e3d4b9816cd3c5714661a84 languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/sunos-x64@npm:0.23.1" - conditions: os=sunos & cpu=x64 +"@codemirror/theme-one-dark@npm:^6.0.0": + version: 6.1.2 + resolution: "@codemirror/theme-one-dark@npm:6.1.2" + dependencies: + "@codemirror/language": ^6.0.0 + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.0.0 + "@lezer/highlight": ^1.0.0 + checksum: 29bc09f79534115f62658caf3d0db527fe347d058b69a8c7f580ae636827377aadd0606fd0d83dbab8d6f3b0a5df53d3253c619341b5fb93d2c8291a8efb9556 languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.24.0": - version: 0.24.0 - resolution: "@esbuild/sunos-x64@npm:0.24.0" - conditions: os=sunos & cpu=x64 +"@codemirror/view@npm:^6.0.0, @codemirror/view@npm:^6.17.0, @codemirror/view@npm:^6.23.0, @codemirror/view@npm:^6.27.0, @codemirror/view@npm:^6.35.0": + version: 6.36.1 + resolution: "@codemirror/view@npm:6.36.1" + dependencies: + "@codemirror/state": ^6.5.0 + style-mod: ^4.1.0 + w3c-keyname: ^2.2.4 + checksum: 77728cbc6f07f16abc4b98c487b6fad522781c928e4b31597b28d54364da6aa5542ed7c9b5c77b90bec5095527c3c062450f156f54fc8ddbcacdf86b4b32c608 languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/win32-arm64@npm:0.16.17" - conditions: os=win32 & cpu=arm64 +"@colors/colors@npm:1.6.0, @colors/colors@npm:^1.6.0": + version: 1.6.0 + resolution: "@colors/colors@npm:1.6.0" + checksum: aa209963e0c3218e80a4a20553ba8c0fbb6fa13140540b4e5f97923790be06801fc90172c1114fc8b7e888b3d012b67298cde6b9e81521361becfaee400c662f languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/win32-arm64@npm:0.21.5" - conditions: os=win32 & cpu=arm64 +"@cspotcode/source-map-support@npm:^0.8.0": + version: 0.8.1 + resolution: "@cspotcode/source-map-support@npm:0.8.1" + dependencies: + "@jridgewell/trace-mapping": 0.3.9 + checksum: 5718f267085ed8edb3e7ef210137241775e607ee18b77d95aa5bd7514f47f5019aa2d82d96b3bf342ef7aa890a346fa1044532ff7cc3009e7d24fce3ce6200fa languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/win32-arm64@npm:0.23.1" - conditions: os=win32 & cpu=arm64 +"@dabh/diagnostics@npm:^2.0.2": + version: 2.0.3 + resolution: "@dabh/diagnostics@npm:2.0.3" + dependencies: + colorspace: 1.1.x + enabled: 2.0.x + kuler: ^2.0.0 + checksum: 4879600c55c8315a0fb85fbb19057bad1adc08f0a080a8cb4e2b63f723c379bfc4283b68123a2b078d367b327dd8df12fcb27464efe791addc0a48b9df6d79a1 languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.24.0": - version: 0.24.0 - resolution: "@esbuild/win32-arm64@npm:0.24.0" - conditions: os=win32 & cpu=arm64 +"@date-io/core@npm:1.x, @date-io/core@npm:^1.3.13": + version: 1.3.13 + resolution: "@date-io/core@npm:1.3.13" + checksum: 5a9e9d1de20f0346a3c7d2d5946190caef4bfb0b64d82ba1f4c566657a9192667c94ebe7f438d11d4286d9c190974daad4fb2159294225cd8af4d9a140239879 languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/win32-ia32@npm:0.16.17" - conditions: os=win32 & cpu=ia32 +"@date-io/date-fns@npm:^1.3.13": + version: 1.3.13 + resolution: "@date-io/date-fns@npm:1.3.13" + dependencies: + "@date-io/core": ^1.3.13 + peerDependencies: + date-fns: ^2.0.0 + checksum: 0026c0e538ea4add57a11936ff6bdb07e99f25275f8bb28c4702bbb7e82c3a41b3e8124132aa719180d462c01a26a3b4801e41b7349cdb73813749d4bf5e8fbd languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/win32-ia32@npm:0.21.5" - conditions: os=win32 & cpu=ia32 +"@davidzemon/passport-okta-oauth@npm:^0.0.5": + version: 0.0.5 + resolution: "@davidzemon/passport-okta-oauth@npm:0.0.5" + dependencies: + "@types/passport-oauth2": ^1.4.11 + passport-oauth2: ^1.6.1 + pkginfo: ^0.4.1 + uid2: ^1.0.0 + checksum: 0bd7c33ffd34a7fed4c6a43704792817b8ea6d0783060c32a55619d50b05c79db6f0a8e23b15327a4c7ce0cd8ea2d7486f320eebae3d4ca73e36baa415802ec4 languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/win32-ia32@npm:0.23.1" - conditions: os=win32 & cpu=ia32 +"@emotion/babel-plugin@npm:^11.13.5": + version: 11.13.5 + resolution: "@emotion/babel-plugin@npm:11.13.5" + dependencies: + "@babel/helper-module-imports": ^7.16.7 + "@babel/runtime": ^7.18.3 + "@emotion/hash": ^0.9.2 + "@emotion/memoize": ^0.9.0 + "@emotion/serialize": ^1.3.3 + babel-plugin-macros: ^3.1.0 + convert-source-map: ^1.5.0 + escape-string-regexp: ^4.0.0 + find-root: ^1.1.0 + source-map: ^0.5.7 + stylis: 4.2.0 + checksum: c41df7e6c19520e76d1939f884be878bf88b5ba00bd3de9d05c5b6c5baa5051686ab124d7317a0645de1b017b574d8139ae1d6390ec267fbe8e85a5252afb542 languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.24.0": - version: 0.24.0 - resolution: "@esbuild/win32-ia32@npm:0.24.0" - conditions: os=win32 & cpu=ia32 +"@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/memoize": ^0.9.0 + "@emotion/sheet": ^1.4.0 + "@emotion/utils": ^1.4.2 + "@emotion/weak-memoize": ^0.4.0 + stylis: 4.2.0 + checksum: 0a81591541ea43bc7851742e6444b7800d72e98006f94e775ae6ea0806662d14e0a86ff940f5f19d33b4bb2c427c882aa65d417e7322a6e0d5f20fe65ed920c9 languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/win32-x64@npm:0.16.17" - conditions: os=win32 & cpu=x64 +"@emotion/hash@npm:^0.8.0": + version: 0.8.0 + resolution: "@emotion/hash@npm:0.8.0" + checksum: 4b35d88a97e67275c1d990c96d3b0450451d089d1508619488fc0acb882cb1ac91e93246d471346ebd1b5402215941ef4162efe5b51534859b39d8b3a0e3ffaa languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/win32-x64@npm:0.21.5" - conditions: os=win32 & cpu=x64 +"@emotion/hash@npm:^0.9.2": + version: 0.9.2 + resolution: "@emotion/hash@npm:0.9.2" + checksum: 379bde2830ccb0328c2617ec009642321c0e009a46aa383dfbe75b679c6aea977ca698c832d225a893901f29d7b3eef0e38cf341f560f6b2b56f1ff23c172387 languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.23.1": - version: 0.23.1 - resolution: "@esbuild/win32-x64@npm:0.23.1" - conditions: os=win32 & cpu=x64 +"@emotion/is-prop-valid@npm:^0.8.2": + version: 0.8.8 + resolution: "@emotion/is-prop-valid@npm:0.8.8" + dependencies: + "@emotion/memoize": 0.7.4 + checksum: bb7ec6d48c572c540e24e47cc94fc2f8dec2d6a342ae97bc9c8b6388d9b8d283862672172a1bb62d335c02662afe6291e10c71e9b8642664a8b43416cdceffac languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.24.0": - version: 0.24.0 - resolution: "@esbuild/win32-x64@npm:0.24.0" - conditions: os=win32 & cpu=x64 +"@emotion/is-prop-valid@npm:^1.3.0": + version: 1.3.1 + resolution: "@emotion/is-prop-valid@npm:1.3.1" + dependencies: + "@emotion/memoize": ^0.9.0 + checksum: fe6549d54f389e1a17cb02d832af7ee85fb6ea126fc18d02ca47216e8ff19332c1983f4a0ba68602cfcd3b325ffd4ebf0b2d0c6270f1e7e6fe3fca4ba7741e1a languageName: node linkType: hard -"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": - version: 4.4.1 - resolution: "@eslint-community/eslint-utils@npm:4.4.1" - dependencies: - eslint-visitor-keys: ^3.4.3 - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - checksum: a7ffc838eb6a9ef594cda348458ccf38f34439ac77dc090fa1c120024bcd4eb911dfd74d5ef44d42063e7949fa7c5123ce714a015c4abb917d4124be1bd32bfe +"@emotion/memoize@npm:0.7.4": + version: 0.7.4 + resolution: "@emotion/memoize@npm:0.7.4" + checksum: 4e3920d4ec95995657a37beb43d3f4b7d89fed6caa2b173a4c04d10482d089d5c3ea50bbc96618d918b020f26ed6e9c4026bbd45433566576c1f7b056c3271dc languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1": - version: 4.12.1 - resolution: "@eslint-community/regexpp@npm:4.12.1" - checksum: 0d628680e204bc316d545b4993d3658427ca404ae646ce541fcc65306b8c712c340e5e573e30fb9f85f4855c0c5f6dca9868931f2fcced06417fbe1a0c6cd2d6 +"@emotion/memoize@npm:^0.9.0": + version: 0.9.0 + resolution: "@emotion/memoize@npm:0.9.0" + checksum: 038132359397348e378c593a773b1148cd0cf0a2285ffd067a0f63447b945f5278860d9de718f906a74c7c940ba1783ac2ca18f1c06a307b01cc0e3944e783b1 languageName: node linkType: hard -"@eslint/eslintrc@npm:^2.1.4": - version: 2.1.4 - resolution: "@eslint/eslintrc@npm:2.1.4" +"@emotion/react@npm:^11.10.5": + version: 11.14.0 + resolution: "@emotion/react@npm:11.14.0" dependencies: - ajv: ^6.12.4 - debug: ^4.3.2 - espree: ^9.6.0 - globals: ^13.19.0 - ignore: ^5.2.0 - import-fresh: ^3.2.1 - js-yaml: ^4.1.0 - minimatch: ^3.1.2 - strip-json-comments: ^3.1.1 - checksum: 10957c7592b20ca0089262d8c2a8accbad14b4f6507e35416c32ee6b4dbf9cad67dfb77096bbd405405e9ada2b107f3797fe94362e1c55e0b09d6e90dd149127 + "@babel/runtime": ^7.18.3 + "@emotion/babel-plugin": ^11.13.5 + "@emotion/cache": ^11.14.0 + "@emotion/serialize": ^1.3.3 + "@emotion/use-insertion-effect-with-fallbacks": ^1.2.0 + "@emotion/utils": ^1.4.2 + "@emotion/weak-memoize": ^0.4.0 + hoist-non-react-statics: ^3.3.1 + peerDependencies: + react: ">=16.8.0" + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 3cf023b11d132b56168713764d6fced8e5a1f0687dfe0caa2782dfd428c8f9e30f9826a919965a311d87b523cd196722aaf75919cd0f6bd0fd57f8a6a0281500 languageName: node linkType: hard -"@eslint/js@npm:8.57.1": - version: 8.57.1 - resolution: "@eslint/js@npm:8.57.1" - checksum: 2afb77454c06e8316793d2e8e79a0154854d35e6782a1217da274ca60b5044d2c69d6091155234ed0551a1e408f86f09dd4ece02752c59568fa403e60611e880 +"@emotion/serialize@npm:^1.3.3": + version: 1.3.3 + resolution: "@emotion/serialize@npm:1.3.3" + dependencies: + "@emotion/hash": ^0.9.2 + "@emotion/memoize": ^0.9.0 + "@emotion/unitless": ^0.10.0 + "@emotion/utils": ^1.4.2 + csstype: ^3.0.2 + checksum: 510331233767ae4e09e925287ca2c7269b320fa1d737ea86db5b3c861a734483ea832394c0c1fe5b21468fe335624a75e72818831d303ba38125f54f44ba02e7 languageName: node linkType: hard -"@fastify/busboy@npm:^2.0.0": - version: 2.1.1 - resolution: "@fastify/busboy@npm:2.1.1" - checksum: 42c32ef75e906c9a4809c1e1930a5ca6d4ddc8d138e1a8c8ba5ea07f997db32210617d23b2e4a85fe376316a41a1a0439fc6ff2dedf5126d96f45a9d80754fb2 +"@emotion/sheet@npm:^1.4.0": + version: 1.4.0 + resolution: "@emotion/sheet@npm:1.4.0" + checksum: eeb1212e3289db8e083e72e7e401cd6d1a84deece87e9ce184f7b96b9b5dbd6f070a89057255a6ff14d9865c3ce31f27c39248a053e4cdd875540359042586b4 languageName: node linkType: hard -"@gar/promisify@npm:^1.1.3": - version: 1.1.3 - resolution: "@gar/promisify@npm:1.1.3" - checksum: 4059f790e2d07bf3c3ff3e0fec0daa8144fe35c1f6e0111c9921bd32106adaa97a4ab096ad7dab1e28ee6a9060083c4d1a4ada42a7f5f3f7a96b8812e2b757c1 +"@emotion/styled@npm:^11.10.5": + version: 11.14.0 + resolution: "@emotion/styled@npm:11.14.0" + dependencies: + "@babel/runtime": ^7.18.3 + "@emotion/babel-plugin": ^11.13.5 + "@emotion/is-prop-valid": ^1.3.0 + "@emotion/serialize": ^1.3.3 + "@emotion/use-insertion-effect-with-fallbacks": ^1.2.0 + "@emotion/utils": ^1.4.2 + peerDependencies: + "@emotion/react": ^11.0.0-rc.0 + react: ">=16.8.0" + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 9c1b842e942e69fb6037d1ab161046d2bcfeff95fd2ccfdab30acaaf6b89dc07b14bb00f8cc8ec14df11e6746c8e4e1d781bc54d10bd739aab44966ded64d4fb languageName: node linkType: hard -"@google-cloud/paginator@npm:^5.0.0": - version: 5.0.2 - resolution: "@google-cloud/paginator@npm:5.0.2" - dependencies: - arrify: ^2.0.0 - extend: ^3.0.2 - checksum: eeb4a387807270ba9f69f22d7439d60c5bd6663573c2da9ea7d998c373d77671d77450b87f0f229c28418df654af4064e70554fa4dcde7edb3c0f5c05f208246 +"@emotion/unitless@npm:^0.10.0": + version: 0.10.0 + resolution: "@emotion/unitless@npm:0.10.0" + checksum: d79346df31a933e6d33518e92636afeb603ce043f3857d0a39a2ac78a09ef0be8bedff40130930cb25df1beeee12d96ee38613963886fa377c681a89970b787c languageName: node linkType: hard -"@google-cloud/projectify@npm:^4.0.0": - version: 4.0.0 - resolution: "@google-cloud/projectify@npm:4.0.0" - checksum: 973d28414ae200433333a3c315aebb881ced42ea4afe6f3f8520d2fecded75e76c913f5189fea8fb29ce6ca36117c4f44001b3c503eecdd3ac7f02597a98354a +"@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: 8ff6aec7f2924526ff8c8f8f93d4b8236376e2e12c435314a18c9a373016e24dfdf984e82bbc83712b8e90ff4783cd765eb39fc7050d1a43245e5728740ddd71 languageName: node linkType: hard -"@google-cloud/promisify@npm:^4.0.0": - version: 4.0.0 - resolution: "@google-cloud/promisify@npm:4.0.0" - checksum: edd189398c5ed5b7b64a373177d77c87d076a248c31b8ae878bb91e2411d89860108bcb948c349f32628973a823bd131beb53ec008fd613a8cb466ef1d89de49 +"@emotion/utils@npm:^1.4.2": + version: 1.4.2 + resolution: "@emotion/utils@npm:1.4.2" + checksum: 04cf76849c6401205c058b82689fd0ec5bf501aed6974880fe9681a1d61543efb97e848f4c38664ac4a9068c7ad2d1cb84f73bde6cf95f1208aa3c28e0190321 languageName: node linkType: hard -"@google-cloud/storage@npm:^7.0.0": - version: 7.13.0 - resolution: "@google-cloud/storage@npm:7.13.0" - dependencies: - "@google-cloud/paginator": ^5.0.0 - "@google-cloud/projectify": ^4.0.0 - "@google-cloud/promisify": ^4.0.0 - abort-controller: ^3.0.0 - async-retry: ^1.3.3 - duplexify: ^4.1.3 - fast-xml-parser: ^4.4.1 - gaxios: ^6.0.2 - google-auth-library: ^9.6.3 - html-entities: ^2.5.2 - mime: ^3.0.0 - p-limit: ^3.0.1 - retry-request: ^7.0.0 - teeny-request: ^9.0.0 - uuid: ^8.0.0 - checksum: b5e61b3123f2924aae17f3b1e9aa97092e999f2097c00d90d85329212219cd6b6a63a65fd84d228791b534e4747e96d430007c4a507b37f3e1d6e42a98d4e7e2 +"@emotion/weak-memoize@npm:^0.4.0": + version: 0.4.0 + resolution: "@emotion/weak-memoize@npm:0.4.0" + checksum: db5da0e89bd752c78b6bd65a1e56231f0abebe2f71c0bd8fc47dff96408f7065b02e214080f99924f6a3bfe7ee15afc48dad999d76df86b39b16e513f7a94f52 languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.13.0": - version: 0.13.0 - resolution: "@humanwhocodes/config-array@npm:0.13.0" - dependencies: - "@humanwhocodes/object-schema": ^2.0.3 - debug: ^4.3.1 - minimatch: ^3.0.5 - checksum: eae69ff9134025dd2924f0b430eb324981494be26f0fddd267a33c28711c4db643242cf9fddf7dadb9d16c96b54b2d2c073e60a56477df86e0173149313bd5d6 +"@esbuild/aix-ppc64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/aix-ppc64@npm:0.21.5" + conditions: os=aix & cpu=ppc64 languageName: node linkType: hard -"@humanwhocodes/module-importer@npm:^1.0.1": - version: 1.0.1 - resolution: "@humanwhocodes/module-importer@npm:1.0.1" - checksum: 0fd22007db8034a2cdf2c764b140d37d9020bbfce8a49d3ec5c05290e77d4b0263b1b972b752df8c89e5eaa94073408f2b7d977aed131faf6cf396ebb5d7fb61 +"@esbuild/aix-ppc64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/aix-ppc64@npm:0.23.1" + conditions: os=aix & cpu=ppc64 languageName: node linkType: hard -"@humanwhocodes/object-schema@npm:^2.0.3": - version: 2.0.3 - resolution: "@humanwhocodes/object-schema@npm:2.0.3" - checksum: d3b78f6c5831888c6ecc899df0d03bcc25d46f3ad26a11d7ea52944dc36a35ef543fad965322174238d677a43d5c694434f6607532cff7077062513ad7022631 +"@esbuild/aix-ppc64@npm:0.24.1": + version: 0.24.1 + resolution: "@esbuild/aix-ppc64@npm:0.24.1" + conditions: os=aix & cpu=ppc64 languageName: node linkType: hard -"@ianvs/prettier-plugin-sort-imports@npm:^4.3.1": - version: 4.3.1 - resolution: "@ianvs/prettier-plugin-sort-imports@npm:4.3.1" - dependencies: - "@babel/core": ^7.24.0 - "@babel/generator": ^7.23.6 - "@babel/parser": ^7.24.0 - "@babel/traverse": ^7.24.0 - "@babel/types": ^7.24.0 - semver: ^7.5.2 - peerDependencies: - "@vue/compiler-sfc": 2.7.x || 3.x - prettier: 2 || 3 - peerDependenciesMeta: - "@vue/compiler-sfc": - optional: true - checksum: 50af027d8b182893f247efa4c197259919c4796bea216b2a2323d0ced327c9f22785d7f8866b084566491fe7943640bb75457a724957bda92ee4c633fb2be9e6 +"@esbuild/android-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-arm64@npm:0.21.5" + conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@internal/kiali@workspace:.": - version: 0.0.0-use.local - resolution: "@internal/kiali@workspace:." - dependencies: - "@backstage/cli": ^0.28.0 - "@backstage/e2e-test-utils": ^0.1.1 - "@backstage/repo-tools": ^0.10.0 - "@changesets/cli": ^2.27.1 - "@ianvs/prettier-plugin-sort-imports": ^4.3.1 - "@spotify/prettier-config": ^12.0.0 - knip: ^5.27.4 - node-gyp: ^9.0.0 - prettier: ^2.3.2 - typescript: ~5.3.0 - languageName: unknown - linkType: soft +"@esbuild/android-arm64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/android-arm64@npm:0.23.1" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard -"@ioredis/commands@npm:^1.1.1": - version: 1.2.0 - resolution: "@ioredis/commands@npm:1.2.0" - checksum: 9b20225ba36ef3e5caf69b3c0720597c3016cc9b1e157f519ea388f621dd9037177f84cfe7e25c4c32dad7dd90c70ff9123cd411f747e053cf292193c9c461e2 +"@esbuild/android-arm64@npm:0.24.1": + version: 0.24.1 + resolution: "@esbuild/android-arm64@npm:0.24.1" + conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@isaacs/cliui@npm:^8.0.2": - version: 8.0.2 - resolution: "@isaacs/cliui@npm:8.0.2" - dependencies: - string-width: ^5.1.2 - string-width-cjs: "npm:string-width@^4.2.0" - strip-ansi: ^7.0.1 - strip-ansi-cjs: "npm:strip-ansi@^6.0.1" - wrap-ansi: ^8.1.0 - wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" - checksum: 4a473b9b32a7d4d3cfb7a614226e555091ff0c5a29a1734c28c72a182c2f6699b26fc6b5c2131dfd841e86b185aea714c72201d7c98c2fba5f17709333a67aeb +"@esbuild/android-arm@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-arm@npm:0.21.5" + conditions: os=android & cpu=arm languageName: node linkType: hard -"@istanbuljs/load-nyc-config@npm:^1.0.0": - version: 1.1.0 - resolution: "@istanbuljs/load-nyc-config@npm:1.1.0" - dependencies: - camelcase: ^5.3.1 - find-up: ^4.1.0 - get-package-type: ^0.1.0 - js-yaml: ^3.13.1 - resolve-from: ^5.0.0 - checksum: d578da5e2e804d5c93228450a1380e1a3c691de4953acc162f387b717258512a3e07b83510a936d9fab03eac90817473917e24f5d16297af3867f59328d58568 +"@esbuild/android-arm@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/android-arm@npm:0.23.1" + conditions: os=android & cpu=arm languageName: node linkType: hard -"@istanbuljs/schema@npm:^0.1.2, @istanbuljs/schema@npm:^0.1.3": - version: 0.1.3 - resolution: "@istanbuljs/schema@npm:0.1.3" - checksum: 5282759d961d61350f33d9118d16bcaed914ebf8061a52f4fa474b2cb08720c9c81d165e13b82f2e5a8a212cc5af482f0c6fc1ac27b9e067e5394c9a6ed186c9 +"@esbuild/android-arm@npm:0.24.1": + version: 0.24.1 + resolution: "@esbuild/android-arm@npm:0.24.1" + conditions: os=android & cpu=arm languageName: node linkType: hard -"@janus-idp/cli@npm:1.19.1": - version: 1.19.1 - resolution: "@janus-idp/cli@npm:1.19.1" - dependencies: - "@backstage/cli-common": ^0.1.14 - "@backstage/cli-node": ^0.2.9 - "@backstage/config": ^1.2.0 - "@backstage/config-loader": ^1.9.1 - "@backstage/errors": ^1.2.4 - "@backstage/eslint-plugin": ^0.1.10 - "@backstage/types": ^1.1.1 - "@manypkg/get-packages": ^1.1.3 - "@openshift/dynamic-plugin-sdk-webpack": ^3.0.0 - "@pmmmwh/react-refresh-webpack-plugin": ^0.5.7 - "@rollup/plugin-commonjs": ^25.0.4 - "@rollup/plugin-json": ^6.0.0 - "@rollup/plugin-node-resolve": ^15.2.1 - "@rollup/plugin-yaml": ^4.0.0 - "@svgr/rollup": ^8.1.0 - "@svgr/webpack": ^6.5.1 - "@yarnpkg/lockfile": ^1.1.0 - "@yarnpkg/parsers": ^3.0.0-rc.4 - bfj: ^8.0.0 - chalk: ^4.0.0 - chokidar: ^3.3.1 - codeowners: ^5.1.1 - commander: ^9.1.0 - css-loader: ^6.5.1 - esbuild: ^0.23.0 - esbuild-loader: ^2.18.0 - eslint: ^8.49.0 - eslint-config-prettier: ^8.10.0 - eslint-webpack-plugin: ^3.2.0 - fork-ts-checker-webpack-plugin: ^7.0.0-alpha.8 - fs-extra: ^10.1.0 - gitconfiglocal: 2.1.0 - handlebars: ^4.7.7 - html-webpack-plugin: ^5.3.1 - is-native-module: ^1.1.3 - lodash: ^4.17.21 - mini-css-extract-plugin: ^2.4.2 - node-libs-browser: ^2.2.1 - npm-packlist: ^5.0.0 - ora: ^5.3.0 - postcss: ^8.2.13 - react-dev-utils: ^12.0.0-next.60 - react-refresh: ^0.14.0 - recursive-readdir: ^2.2.2 - rollup: ^2.78.0 - rollup-plugin-dts: ^4.0.1 - rollup-plugin-esbuild: ^4.7.2 - rollup-plugin-postcss: ^4.0.0 - rollup-pluginutils: ^2.8.2 - semver: ^7.5.4 - style-loader: ^3.3.1 - swc-loader: ^0.2.3 - typescript-json-schema: ^0.64.0 - webpack: ^5.89.0 - webpack-dev-server: ^4.15.1 - yaml: ^2.5.1 - yml-loader: ^2.1.0 - yn: ^4.0.0 - peerDependencies: - "@microsoft/api-extractor": ^7.21.2 - peerDependenciesMeta: - "@microsoft/api-extractor": - optional: true - bin: - janus-cli: bin/janus-cli - checksum: f9418392f21e88d6eb24a4520b57e9446207bef696a7fbf212562fb3721f105141d9e975935db25bf27431513af9aad8ddfad2d29716a607cb0a4fcc844b73b4 +"@esbuild/android-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-x64@npm:0.21.5" + conditions: os=android & cpu=x64 languageName: node linkType: hard -"@jest/console@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/console@npm:29.7.0" - dependencies: - "@jest/types": ^29.6.3 - "@types/node": "*" - chalk: ^4.0.0 - jest-message-util: ^29.7.0 - jest-util: ^29.7.0 - slash: ^3.0.0 - checksum: 0e3624e32c5a8e7361e889db70b170876401b7d70f509a2538c31d5cd50deb0c1ae4b92dc63fe18a0902e0a48c590c21d53787a0df41a52b34fa7cab96c384d6 +"@esbuild/android-x64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/android-x64@npm:0.23.1" + conditions: os=android & cpu=x64 languageName: node linkType: hard -"@jest/core@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/core@npm:29.7.0" - dependencies: - "@jest/console": ^29.7.0 - "@jest/reporters": ^29.7.0 - "@jest/test-result": ^29.7.0 - "@jest/transform": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/node": "*" - ansi-escapes: ^4.2.1 - chalk: ^4.0.0 - ci-info: ^3.2.0 - exit: ^0.1.2 - graceful-fs: ^4.2.9 - jest-changed-files: ^29.7.0 - jest-config: ^29.7.0 - jest-haste-map: ^29.7.0 - jest-message-util: ^29.7.0 - jest-regex-util: ^29.6.3 - jest-resolve: ^29.7.0 - jest-resolve-dependencies: ^29.7.0 - jest-runner: ^29.7.0 - jest-runtime: ^29.7.0 - jest-snapshot: ^29.7.0 - jest-util: ^29.7.0 - jest-validate: ^29.7.0 - jest-watcher: ^29.7.0 - micromatch: ^4.0.4 - pretty-format: ^29.7.0 - slash: ^3.0.0 - strip-ansi: ^6.0.0 - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - checksum: af759c9781cfc914553320446ce4e47775ae42779e73621c438feb1e4231a5d4862f84b1d8565926f2d1aab29b3ec3dcfdc84db28608bdf5f29867124ebcfc0d +"@esbuild/android-x64@npm:0.24.1": + version: 0.24.1 + resolution: "@esbuild/android-x64@npm:0.24.1" + conditions: os=android & cpu=x64 languageName: node linkType: hard -"@jest/create-cache-key-function@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/create-cache-key-function@npm:29.7.0" - dependencies: - "@jest/types": ^29.6.3 - checksum: 681bc761fa1d6fa3dd77578d444f97f28296ea80755e90e46d1c8fa68661b9e67f54dd38b988742db636d26cf160450dc6011892cec98b3a7ceb58cad8ff3aae +"@esbuild/darwin-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/darwin-arm64@npm:0.21.5" + conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@jest/environment@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/environment@npm:29.7.0" - dependencies: - "@jest/fake-timers": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/node": "*" - jest-mock: ^29.7.0 - checksum: 6fb398143b2543d4b9b8d1c6dbce83fa5247f84f550330604be744e24c2bd2178bb893657d62d1b97cf2f24baf85c450223f8237cccb71192c36a38ea2272934 +"@esbuild/darwin-arm64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/darwin-arm64@npm:0.23.1" + conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@jest/expect-utils@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/expect-utils@npm:29.7.0" - dependencies: - jest-get-type: ^29.6.3 - checksum: 75eb177f3d00b6331bcaa057e07c0ccb0733a1d0a1943e1d8db346779039cb7f103789f16e502f888a3096fb58c2300c38d1f3748b36a7fa762eb6f6d1b160ed +"@esbuild/darwin-arm64@npm:0.24.1": + version: 0.24.1 + resolution: "@esbuild/darwin-arm64@npm:0.24.1" + conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@jest/expect@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/expect@npm:29.7.0" - dependencies: - expect: ^29.7.0 - jest-snapshot: ^29.7.0 - checksum: a01cb85fd9401bab3370618f4b9013b90c93536562222d920e702a0b575d239d74cecfe98010aaec7ad464f67cf534a353d92d181646a4b792acaa7e912ae55e +"@esbuild/darwin-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/darwin-x64@npm:0.21.5" + conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@jest/fake-timers@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/fake-timers@npm:29.7.0" - dependencies: - "@jest/types": ^29.6.3 - "@sinonjs/fake-timers": ^10.0.2 - "@types/node": "*" - jest-message-util: ^29.7.0 - jest-mock: ^29.7.0 - jest-util: ^29.7.0 - checksum: caf2bbd11f71c9241b458d1b5a66cbe95debc5a15d96442444b5d5c7ba774f523c76627c6931cca5e10e76f0d08761f6f1f01a608898f4751a0eee54fc3d8d00 +"@esbuild/darwin-x64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/darwin-x64@npm:0.23.1" + conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@jest/globals@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/globals@npm:29.7.0" - dependencies: - "@jest/environment": ^29.7.0 - "@jest/expect": ^29.7.0 - "@jest/types": ^29.6.3 - jest-mock: ^29.7.0 - checksum: 97dbb9459135693ad3a422e65ca1c250f03d82b2a77f6207e7fa0edd2c9d2015fbe4346f3dc9ebff1678b9d8da74754d4d440b7837497f8927059c0642a22123 +"@esbuild/darwin-x64@npm:0.24.1": + version: 0.24.1 + resolution: "@esbuild/darwin-x64@npm:0.24.1" + conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@jest/reporters@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/reporters@npm:29.7.0" - dependencies: - "@bcoe/v8-coverage": ^0.2.3 - "@jest/console": ^29.7.0 - "@jest/test-result": ^29.7.0 - "@jest/transform": ^29.7.0 - "@jest/types": ^29.6.3 - "@jridgewell/trace-mapping": ^0.3.18 - "@types/node": "*" - chalk: ^4.0.0 - collect-v8-coverage: ^1.0.0 - exit: ^0.1.2 - glob: ^7.1.3 - graceful-fs: ^4.2.9 - istanbul-lib-coverage: ^3.0.0 - istanbul-lib-instrument: ^6.0.0 - istanbul-lib-report: ^3.0.0 - istanbul-lib-source-maps: ^4.0.0 - istanbul-reports: ^3.1.3 - jest-message-util: ^29.7.0 - jest-util: ^29.7.0 - jest-worker: ^29.7.0 - slash: ^3.0.0 - string-length: ^4.0.1 - strip-ansi: ^6.0.0 - v8-to-istanbul: ^9.0.1 - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - checksum: 7eadabd62cc344f629024b8a268ecc8367dba756152b761bdcb7b7e570a3864fc51b2a9810cd310d85e0a0173ef002ba4528d5ea0329fbf66ee2a3ada9c40455 +"@esbuild/freebsd-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/freebsd-arm64@npm:0.21.5" + conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"@jest/schemas@npm:^29.6.3": - version: 29.6.3 - resolution: "@jest/schemas@npm:29.6.3" - dependencies: - "@sinclair/typebox": ^0.27.8 - checksum: 910040425f0fc93cd13e68c750b7885590b8839066dfa0cd78e7def07bbb708ad869381f725945d66f2284de5663bbecf63e8fdd856e2ae6e261ba30b1687e93 +"@esbuild/freebsd-arm64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/freebsd-arm64@npm:0.23.1" + conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"@jest/source-map@npm:^29.6.3": - version: 29.6.3 - resolution: "@jest/source-map@npm:29.6.3" - dependencies: - "@jridgewell/trace-mapping": ^0.3.18 - callsites: ^3.0.0 - graceful-fs: ^4.2.9 - checksum: bcc5a8697d471396c0003b0bfa09722c3cd879ad697eb9c431e6164e2ea7008238a01a07193dfe3cbb48b1d258eb7251f6efcea36f64e1ebc464ea3c03ae2deb +"@esbuild/freebsd-arm64@npm:0.24.1": + version: 0.24.1 + resolution: "@esbuild/freebsd-arm64@npm:0.24.1" + conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"@jest/test-result@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/test-result@npm:29.7.0" - dependencies: - "@jest/console": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/istanbul-lib-coverage": ^2.0.0 - collect-v8-coverage: ^1.0.0 - checksum: 67b6317d526e335212e5da0e768e3b8ab8a53df110361b80761353ad23b6aea4432b7c5665bdeb87658ea373b90fb1afe02ed3611ef6c858c7fba377505057fa +"@esbuild/freebsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/freebsd-x64@npm:0.21.5" + conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@jest/test-sequencer@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/test-sequencer@npm:29.7.0" - dependencies: - "@jest/test-result": ^29.7.0 - graceful-fs: ^4.2.9 - jest-haste-map: ^29.7.0 - slash: ^3.0.0 - checksum: 73f43599017946be85c0b6357993b038f875b796e2f0950487a82f4ebcb115fa12131932dd9904026b4ad8be131fe6e28bd8d0aa93b1563705185f9804bff8bd +"@esbuild/freebsd-x64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/freebsd-x64@npm:0.23.1" + conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@jest/transform@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/transform@npm:29.7.0" - dependencies: - "@babel/core": ^7.11.6 - "@jest/types": ^29.6.3 - "@jridgewell/trace-mapping": ^0.3.18 - babel-plugin-istanbul: ^6.1.1 - chalk: ^4.0.0 - convert-source-map: ^2.0.0 - fast-json-stable-stringify: ^2.1.0 - graceful-fs: ^4.2.9 - jest-haste-map: ^29.7.0 - jest-regex-util: ^29.6.3 - jest-util: ^29.7.0 - micromatch: ^4.0.4 - pirates: ^4.0.4 - slash: ^3.0.0 - write-file-atomic: ^4.0.2 - checksum: 0f8ac9f413903b3cb6d240102db848f2a354f63971ab885833799a9964999dd51c388162106a807f810071f864302cdd8e3f0c241c29ce02d85a36f18f3f40ab +"@esbuild/freebsd-x64@npm:0.24.1": + version: 0.24.1 + resolution: "@esbuild/freebsd-x64@npm:0.24.1" + conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@jest/types@npm:^29.6.3": - version: 29.6.3 - resolution: "@jest/types@npm:29.6.3" - dependencies: - "@jest/schemas": ^29.6.3 - "@types/istanbul-lib-coverage": ^2.0.0 - "@types/istanbul-reports": ^3.0.0 - "@types/node": "*" - "@types/yargs": ^17.0.8 - chalk: ^4.0.0 - checksum: a0bcf15dbb0eca6bdd8ce61a3fb055349d40268622a7670a3b2eb3c3dbafe9eb26af59938366d520b86907b9505b0f9b29b85cec11579a9e580694b87cd90fcc +"@esbuild/linux-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-arm64@npm:0.21.5" + conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@jridgewell/gen-mapping@npm:^0.3.2, @jridgewell/gen-mapping@npm:^0.3.5": - version: 0.3.5 - resolution: "@jridgewell/gen-mapping@npm:0.3.5" - dependencies: - "@jridgewell/set-array": ^1.2.1 - "@jridgewell/sourcemap-codec": ^1.4.10 - "@jridgewell/trace-mapping": ^0.3.24 - checksum: ff7a1764ebd76a5e129c8890aa3e2f46045109dabde62b0b6c6a250152227647178ff2069ea234753a690d8f3c4ac8b5e7b267bbee272bffb7f3b0a370ab6e52 +"@esbuild/linux-arm64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-arm64@npm:0.23.1" + conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@jridgewell/resolve-uri@npm:^3.0.3, @jridgewell/resolve-uri@npm:^3.1.0": - version: 3.1.2 - resolution: "@jridgewell/resolve-uri@npm:3.1.2" - checksum: 83b85f72c59d1c080b4cbec0fef84528963a1b5db34e4370fa4bd1e3ff64a0d80e0cee7369d11d73c704e0286fb2865b530acac7a871088fbe92b5edf1000870 +"@esbuild/linux-arm64@npm:0.24.1": + version: 0.24.1 + resolution: "@esbuild/linux-arm64@npm:0.24.1" + conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@jridgewell/set-array@npm:^1.2.1": - version: 1.2.1 - resolution: "@jridgewell/set-array@npm:1.2.1" - checksum: 832e513a85a588f8ed4f27d1279420d8547743cc37fcad5a5a76fc74bb895b013dfe614d0eed9cb860048e6546b798f8f2652020b4b2ba0561b05caa8c654b10 +"@esbuild/linux-arm@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-arm@npm:0.21.5" + conditions: os=linux & cpu=arm languageName: node linkType: hard -"@jridgewell/source-map@npm:^0.3.3": - version: 0.3.6 - resolution: "@jridgewell/source-map@npm:0.3.6" - dependencies: - "@jridgewell/gen-mapping": ^0.3.5 - "@jridgewell/trace-mapping": ^0.3.25 - checksum: c9dc7d899397df95e3c9ec287b93c0b56f8e4453cd20743e2b9c8e779b1949bc3cccf6c01bb302779e46560eb45f62ea38d19fedd25370d814734268450a9f30 +"@esbuild/linux-arm@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-arm@npm:0.23.1" + conditions: os=linux & cpu=arm languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.5.0": - version: 1.5.0 - resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" - checksum: 05df4f2538b3b0f998ea4c1cd34574d0feba216fa5d4ccaef0187d12abf82eafe6021cec8b49f9bb4d90f2ba4582ccc581e72986a5fcf4176ae0cfeb04cf52ec +"@esbuild/linux-arm@npm:0.24.1": + version: 0.24.1 + resolution: "@esbuild/linux-arm@npm:0.24.1" + conditions: os=linux & cpu=arm languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:0.3.9": - version: 0.3.9 - resolution: "@jridgewell/trace-mapping@npm:0.3.9" - dependencies: - "@jridgewell/resolve-uri": ^3.0.3 - "@jridgewell/sourcemap-codec": ^1.4.10 - checksum: d89597752fd88d3f3480845691a05a44bd21faac18e2185b6f436c3b0fd0c5a859fbbd9aaa92050c4052caf325ad3e10e2e1d1b64327517471b7d51babc0ddef +"@esbuild/linux-ia32@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-ia32@npm:0.21.5" + conditions: os=linux & cpu=ia32 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": - version: 0.3.25 - resolution: "@jridgewell/trace-mapping@npm:0.3.25" - dependencies: - "@jridgewell/resolve-uri": ^3.1.0 - "@jridgewell/sourcemap-codec": ^1.4.14 - checksum: 9d3c40d225e139987b50c48988f8717a54a8c994d8a948ee42e1412e08988761d0754d7d10b803061cc3aebf35f92a5dbbab493bd0e1a9ef9e89a2130e83ba34 +"@esbuild/linux-ia32@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-ia32@npm:0.23.1" + conditions: os=linux & cpu=ia32 languageName: node linkType: hard -"@jsdevtools/ono@npm:^7.1.3": - version: 7.1.3 - resolution: "@jsdevtools/ono@npm:7.1.3" - checksum: 2297fcd472ba810bffe8519d2249171132844c7174f3a16634f9260761c8c78bc0428a4190b5b6d72d45673c13918ab9844d706c3ed4ef8f62ab11a2627a08ad +"@esbuild/linux-ia32@npm:0.24.1": + version: 0.24.1 + resolution: "@esbuild/linux-ia32@npm:0.24.1" + conditions: os=linux & cpu=ia32 languageName: node linkType: hard -"@jsep-plugin/regex@npm:^1.0.1": - version: 1.0.3 - resolution: "@jsep-plugin/regex@npm:1.0.3" - peerDependencies: - jsep: ^0.4.0||^1.0.0 - checksum: a57718ae5c86bd10ff5de51843a771b96a10a9c6b5c5f4e02aa5318257c3d5fdec96f8b389fcbe129c7a6ad6b0746d9a0fd934c949b80882230fbc14b548c922 +"@esbuild/linux-loong64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-loong64@npm:0.21.5" + conditions: os=linux & cpu=loong64 languageName: node linkType: hard -"@jsep-plugin/ternary@npm:^1.0.2": - version: 1.1.3 - resolution: "@jsep-plugin/ternary@npm:1.1.3" - peerDependencies: - jsep: ^0.4.0||^1.0.0 - checksum: c05408b0302844723f98b90787425beb4e8ad14029df3d98e88b9d61343d81201a7f0bf3db5806dcf0378c7be69f5b4c9fcd04f055bda282c73f4d1b425e502a +"@esbuild/linux-loong64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-loong64@npm:0.23.1" + conditions: os=linux & cpu=loong64 languageName: node linkType: hard -"@jsonjoy.com/base64@npm:^1.1.1": - version: 1.1.2 - resolution: "@jsonjoy.com/base64@npm:1.1.2" - peerDependencies: - tslib: 2 - checksum: 00dbf9cbc6ecb3af0e58288a305cc4ee3dfca9efa24443d98061756e8f6de4d6d2d3764bdfde07f2b03e6ce56db27c8a59b490bd134bf3d8122b4c6b394c7010 +"@esbuild/linux-loong64@npm:0.24.1": + version: 0.24.1 + resolution: "@esbuild/linux-loong64@npm:0.24.1" + conditions: os=linux & cpu=loong64 languageName: node linkType: hard -"@jsonjoy.com/json-pack@npm:^1.0.3": - version: 1.1.0 - resolution: "@jsonjoy.com/json-pack@npm:1.1.0" - dependencies: - "@jsonjoy.com/base64": ^1.1.1 - "@jsonjoy.com/util": ^1.1.2 - hyperdyperid: ^1.2.0 - thingies: ^1.20.0 - peerDependencies: - tslib: 2 - checksum: 5c89a01814d5a7464639c3cbd4dbbcbf19165e9e6d6cc3cc985f8a7594fc2c5ac3a29e4f49f9ddf029979ec26ab980960a250db044173798509d0ea388c2ae26 +"@esbuild/linux-mips64el@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-mips64el@npm:0.21.5" + conditions: os=linux & cpu=mips64el languageName: node linkType: hard -"@jsonjoy.com/util@npm:^1.1.2, @jsonjoy.com/util@npm:^1.3.0": - version: 1.5.0 - resolution: "@jsonjoy.com/util@npm:1.5.0" - peerDependencies: - tslib: 2 - checksum: 62892928e1223798e3d910be8dde4fdceaddf2ebdd4bdc0c50495b8ee33503317adf7b5118cd8f5a63045e3f232d70e95fb0279828caf1ec392ffeeb7ea129b8 +"@esbuild/linux-mips64el@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-mips64el@npm:0.23.1" + conditions: os=linux & cpu=mips64el languageName: node linkType: hard -"@keyv/memcache@npm:^1.3.5": - version: 1.4.1 - resolution: "@keyv/memcache@npm:1.4.1" - dependencies: - json-buffer: ^3.0.1 - memjs: ^1.3.2 - checksum: bee66686af965aa3bdd78ccd7c67658b424d32578936e894d3aa42ff616ef653f8ecc439f4ea28fc51ed04a68502e445fc8ff836bd142b38509787712b6ec04d +"@esbuild/linux-mips64el@npm:0.24.1": + version: 0.24.1 + resolution: "@esbuild/linux-mips64el@npm:0.24.1" + conditions: os=linux & cpu=mips64el languageName: node linkType: hard -"@keyv/redis@npm:^2.5.3": - version: 2.8.5 - resolution: "@keyv/redis@npm:2.8.5" - dependencies: - ioredis: ^5.4.1 - checksum: 87ffec61d31fa9de128ba3e5a7b616535ddbdaa4d92cbc9e1a9fab143adf967135e9cca16e192e8f52cc1ba00ed2a7f10eca9944d7550385530dab95333e81ef +"@esbuild/linux-ppc64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-ppc64@npm:0.21.5" + conditions: os=linux & cpu=ppc64 languageName: node linkType: hard -"@keyv/serialize@npm:*": - version: 1.0.1 - resolution: "@keyv/serialize@npm:1.0.1" - dependencies: - buffer: ^6.0.3 - checksum: ff3dd9a6246b17fca3d1b0aba312dea931059fdecc36027f4d8133e59dbb3554a0a516b1f3dfc7fb2b3ca7a3d6fa307804f299566ab214febd3fb9d0502eebed +"@esbuild/linux-ppc64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-ppc64@npm:0.23.1" + conditions: os=linux & cpu=ppc64 languageName: node linkType: hard -"@kubernetes/client-node@npm:0.20.0": - version: 0.20.0 - resolution: "@kubernetes/client-node@npm:0.20.0" - dependencies: - "@types/js-yaml": ^4.0.1 - "@types/node": ^20.1.1 - "@types/request": ^2.47.1 - "@types/ws": ^8.5.3 - byline: ^5.0.0 - isomorphic-ws: ^5.0.0 - js-yaml: ^4.1.0 - jsonpath-plus: ^7.2.0 - openid-client: ^5.3.0 - request: ^2.88.0 - rfc4648: ^1.3.0 - stream-buffers: ^3.0.2 - tar: ^6.1.11 - tslib: ^2.4.1 - ws: ^8.11.0 - dependenciesMeta: - openid-client: - optional: true - checksum: c7c2ec9c597b5579ec452bcc13647feeaa3eaf93601afa5d9a4e06b5fe91d2cafa444a1da07b5330a7596f0e07e107d6abe4acabc5998f7bedf43cd0ab8bf343 +"@esbuild/linux-ppc64@npm:0.24.1": + version: 0.24.1 + resolution: "@esbuild/linux-ppc64@npm:0.24.1" + conditions: os=linux & cpu=ppc64 languageName: node linkType: hard -"@leichtgewicht/ip-codec@npm:^2.0.1": - version: 2.0.5 - resolution: "@leichtgewicht/ip-codec@npm:2.0.5" - checksum: 4fcd025d0a923cb6b87b631a83436a693b255779c583158bbeacde6b4dd75b94cc1eba1c9c188de5fc36c218d160524ea08bfe4ef03a056b00ff14126d66f881 +"@esbuild/linux-riscv64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-riscv64@npm:0.21.5" + conditions: os=linux & cpu=riscv64 languageName: node linkType: hard -"@lukeed/csprng@npm:^1.0.0": - version: 1.1.0 - resolution: "@lukeed/csprng@npm:1.1.0" - checksum: 926f5f7fc629470ca9a8af355bfcd0271d34535f7be3890f69902432bddc3262029bb5dbe9025542cf6c9883d878692eef2815fc2f3ba5b92e9da1f9eba2e51b +"@esbuild/linux-riscv64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-riscv64@npm:0.23.1" + conditions: os=linux & cpu=riscv64 languageName: node linkType: hard -"@manypkg/find-root@npm:^1.1.0": - version: 1.1.0 - resolution: "@manypkg/find-root@npm:1.1.0" - dependencies: - "@babel/runtime": ^7.5.5 - "@types/node": ^12.7.1 - find-up: ^4.1.0 - fs-extra: ^8.1.0 - checksum: f0fd881a5a81a351cb6561cd24117e8ee9481bbf3b6d1c7d9d10bef1f4744ca2ba3d064713e83c0a0574416d1e5b4a4c6c414aad91913c4a1c6040d87283ac50 +"@esbuild/linux-riscv64@npm:0.24.1": + version: 0.24.1 + resolution: "@esbuild/linux-riscv64@npm:0.24.1" + conditions: os=linux & cpu=riscv64 languageName: node linkType: hard -"@manypkg/get-packages@npm:^1.1.3": - version: 1.1.3 - resolution: "@manypkg/get-packages@npm:1.1.3" - dependencies: - "@babel/runtime": ^7.5.5 - "@changesets/types": ^4.0.1 - "@manypkg/find-root": ^1.1.0 - fs-extra: ^8.1.0 - globby: ^11.0.0 - read-yaml-file: ^1.1.0 - checksum: f5a756e5a659e0e1c33f48852d56826d170d5b10a3cdea89ce4fcaa77678d8799aa4004b30e1985c87b73dbc390b95bb6411b78336dd1e0db87c08c74b5c0e74 +"@esbuild/linux-s390x@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-s390x@npm:0.21.5" + conditions: os=linux & cpu=s390x languageName: node linkType: hard -"@microsoft/api-documenter@npm:^7.25.7": - version: 7.25.21 - resolution: "@microsoft/api-documenter@npm:7.25.21" - dependencies: - "@microsoft/api-extractor-model": 7.29.8 - "@microsoft/tsdoc": ~0.15.0 - "@rushstack/node-core-library": 5.9.0 - "@rushstack/terminal": 0.14.2 - "@rushstack/ts-command-line": 4.23.0 - js-yaml: ~3.13.1 - resolve: ~1.22.1 - bin: - api-documenter: bin/api-documenter - checksum: a45c33f2b2f3425b8bfaea6fd6ca985c9df21b85b46531c1e028153d9553629e33f5c3b04c6dfd63873aaae4285dacfc541d10b9aa4a0756b3c440ebf70179cc +"@esbuild/linux-s390x@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-s390x@npm:0.23.1" + conditions: os=linux & cpu=s390x languageName: node linkType: hard -"@microsoft/api-extractor-model@npm:7.29.8": - version: 7.29.8 - resolution: "@microsoft/api-extractor-model@npm:7.29.8" - dependencies: - "@microsoft/tsdoc": ~0.15.0 - "@microsoft/tsdoc-config": ~0.17.0 - "@rushstack/node-core-library": 5.9.0 - checksum: 95a6b5df089d8bf44555f4565a6f0eda9323917266b2f4730b606aeb2c7f36df7c2cbcae9ca48a9198af7a33442cda8ce2c791e0f4c7c92f3bdaee6c3190b1f5 +"@esbuild/linux-s390x@npm:0.24.1": + version: 0.24.1 + resolution: "@esbuild/linux-s390x@npm:0.24.1" + conditions: os=linux & cpu=s390x languageName: node linkType: hard -"@microsoft/api-extractor@npm:^7.47.2": - version: 7.47.11 - resolution: "@microsoft/api-extractor@npm:7.47.11" - dependencies: - "@microsoft/api-extractor-model": 7.29.8 - "@microsoft/tsdoc": ~0.15.0 - "@microsoft/tsdoc-config": ~0.17.0 - "@rushstack/node-core-library": 5.9.0 - "@rushstack/rig-package": 0.5.3 - "@rushstack/terminal": 0.14.2 - "@rushstack/ts-command-line": 4.23.0 - lodash: ~4.17.15 - minimatch: ~3.0.3 - resolve: ~1.22.1 - semver: ~7.5.4 - source-map: ~0.6.1 - typescript: 5.4.2 - bin: - api-extractor: bin/api-extractor - checksum: 1ae7634c21e20fe191b5297a03b87547b03e9db4ee3439809363e554bcc7610ebd43dd71d30db5fbee573b7f84a2e1fa6ab3bdf320500a266b7c7c1ccc6049b2 +"@esbuild/linux-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-x64@npm:0.21.5" + conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@microsoft/tsdoc-config@npm:~0.17.0": - version: 0.17.0 - resolution: "@microsoft/tsdoc-config@npm:0.17.0" - dependencies: - "@microsoft/tsdoc": 0.15.0 - ajv: ~8.12.0 - jju: ~1.4.0 - resolve: ~1.22.2 - checksum: dd2de8247d0fc29608da83edf4ab73a21370f6ce10d089853303e91b135fdb1436ccec3bd1024f235dd3180dfe5dae7342989eadd03af55cf06f0e974e5fc213 +"@esbuild/linux-x64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-x64@npm:0.23.1" + conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@microsoft/tsdoc@npm:0.15.0, @microsoft/tsdoc@npm:~0.15.0": - version: 0.15.0 - resolution: "@microsoft/tsdoc@npm:0.15.0" - checksum: 3f693cff07b220b68563e3f86e9f94a9c8d0791a7446f76149c7d62ae5ed5cb4578bb48b9b5f9baa3dd9a9f77be81903c74654a41e0ca4ecf78936654952a8d4 +"@esbuild/linux-x64@npm:0.24.1": + version: 0.24.1 + resolution: "@esbuild/linux-x64@npm:0.24.1" + conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@module-federation/bridge-react-webpack-plugin@npm:0.6.13": - version: 0.6.13 - resolution: "@module-federation/bridge-react-webpack-plugin@npm:0.6.13" - dependencies: - "@module-federation/sdk": 0.6.13 - "@types/semver": 7.5.8 - semver: 7.6.3 - checksum: b5e33fd4a2f6dc5bc0d17af026ac0b9247c78bbcc6de8e3d0e20301c9b72fb59ac6355ea7d790ea352784f73e2e460b3fa52c2771ea077cbf944f78fbae56389 +"@esbuild/netbsd-arm64@npm:0.24.1": + version: 0.24.1 + resolution: "@esbuild/netbsd-arm64@npm:0.24.1" + conditions: os=netbsd & cpu=arm64 languageName: node linkType: hard -"@module-federation/data-prefetch@npm:0.6.13": - version: 0.6.13 - resolution: "@module-federation/data-prefetch@npm:0.6.13" - dependencies: - "@module-federation/runtime": 0.6.13 - "@module-federation/sdk": 0.6.13 - fs-extra: 9.1.0 - peerDependencies: - react: ">=16.9.0" - react-dom: ">=16.9.0" - checksum: 4223ef7e84194cc029aa57af94475c3753a71c66134dca22ba3566d44f7eb5972adaaf8ac8c439fc6294f3ebbe090bbebee0ec136df6285072e3f9cf38a2f01a +"@esbuild/netbsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/netbsd-x64@npm:0.21.5" + conditions: os=netbsd & cpu=x64 languageName: node linkType: hard -"@module-federation/dts-plugin@npm:0.6.13": - version: 0.6.13 - resolution: "@module-federation/dts-plugin@npm:0.6.13" - dependencies: - "@module-federation/managers": 0.6.13 - "@module-federation/sdk": 0.6.13 - "@module-federation/third-party-dts-extractor": 0.6.13 - adm-zip: ^0.5.10 - ansi-colors: ^4.1.3 - axios: ^1.7.4 - chalk: 3.0.0 - fs-extra: 9.1.0 - isomorphic-ws: 5.0.0 - koa: 2.15.3 - lodash.clonedeepwith: 4.5.0 - log4js: 6.9.1 - node-schedule: 2.1.1 - rambda: ^9.1.0 - ws: 8.18.0 - peerDependencies: - typescript: ^4.9.0 || ^5.0.0 - vue-tsc: ">=1.0.24" - peerDependenciesMeta: - vue-tsc: - optional: true - checksum: 9752250ea3fa49c8bfc52fb9c58c1472bd2d231d4c1574b5991f496d572be953117fc50f1080a041b51c488bd7a894806442faa712a1f78ef90bc0f83d2e287b +"@esbuild/netbsd-x64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/netbsd-x64@npm:0.23.1" + conditions: os=netbsd & cpu=x64 languageName: node linkType: hard -"@module-federation/enhanced@npm:^0.6.0": - version: 0.6.13 - resolution: "@module-federation/enhanced@npm:0.6.13" - dependencies: - "@module-federation/bridge-react-webpack-plugin": 0.6.13 - "@module-federation/data-prefetch": 0.6.13 - "@module-federation/dts-plugin": 0.6.13 - "@module-federation/managers": 0.6.13 - "@module-federation/manifest": 0.6.13 - "@module-federation/rspack": 0.6.13 - "@module-federation/runtime-tools": 0.6.13 - "@module-federation/sdk": 0.6.13 - btoa: ^1.2.1 - upath: 2.0.1 - peerDependencies: - typescript: ^4.9.0 || ^5.0.0 - vue-tsc: ">=1.0.24" - webpack: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true - vue-tsc: - optional: true - webpack: - optional: true - checksum: 76d351e42aba4afcd460b8089a3013fab0faba0144f2d76479a478d1a1ef97f50882b1dde85c66fd18c9eb13ba2656b1bee270466385a83a083a9eaddaf83125 +"@esbuild/netbsd-x64@npm:0.24.1": + version: 0.24.1 + resolution: "@esbuild/netbsd-x64@npm:0.24.1" + conditions: os=netbsd & cpu=x64 languageName: node linkType: hard -"@module-federation/managers@npm:0.6.13": - version: 0.6.13 - resolution: "@module-federation/managers@npm:0.6.13" - dependencies: - "@module-federation/sdk": 0.6.13 - find-pkg: 2.0.0 - fs-extra: 9.1.0 - checksum: 75f7bb65a6d187bdd635245bc816bc302a95f42c37e1fa7973da224da23c85172fd6bb289b01deb0c4abd1c43e14a49f20c0ab258f9cd5a46d8178219c4f6756 +"@esbuild/openbsd-arm64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/openbsd-arm64@npm:0.23.1" + conditions: os=openbsd & cpu=arm64 languageName: node linkType: hard -"@module-federation/manifest@npm:0.6.13": - version: 0.6.13 - resolution: "@module-federation/manifest@npm:0.6.13" - dependencies: - "@module-federation/dts-plugin": 0.6.13 - "@module-federation/managers": 0.6.13 - "@module-federation/sdk": 0.6.13 - chalk: 3.0.0 - find-pkg: 2.0.0 - checksum: ef9564ee50e297083022eb622abce604628e730535e29b93d4d97e22a28b3726fc9064bd937124b12285ad9249cd9b99a0fd1d657bd6c0ec9244248dda680d42 +"@esbuild/openbsd-arm64@npm:0.24.1": + version: 0.24.1 + resolution: "@esbuild/openbsd-arm64@npm:0.24.1" + conditions: os=openbsd & cpu=arm64 languageName: node linkType: hard -"@module-federation/rspack@npm:0.6.13": - version: 0.6.13 - resolution: "@module-federation/rspack@npm:0.6.13" - dependencies: - "@module-federation/bridge-react-webpack-plugin": 0.6.13 - "@module-federation/dts-plugin": 0.6.13 - "@module-federation/managers": 0.6.13 - "@module-federation/manifest": 0.6.13 - "@module-federation/runtime-tools": 0.6.13 - "@module-federation/sdk": 0.6.13 - peerDependencies: - typescript: ^4.9.0 || ^5.0.0 - vue-tsc: ">=1.0.24" - peerDependenciesMeta: - typescript: - optional: true - vue-tsc: - optional: true - checksum: a1ac18d988899428b09f3f6b175aaf34b7a169c5cf5f4ba59437993e747c7a76693a92ea8004e5368f87f3110b6bac310f9518a2be8377e58da81ad88f08a4c5 +"@esbuild/openbsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/openbsd-x64@npm:0.21.5" + conditions: os=openbsd & cpu=x64 languageName: node linkType: hard -"@module-federation/runtime-tools@npm:0.6.13": - version: 0.6.13 - resolution: "@module-federation/runtime-tools@npm:0.6.13" - dependencies: - "@module-federation/runtime": 0.6.13 - "@module-federation/webpack-bundler-runtime": 0.6.13 - checksum: 8651fa502dd25c269624d2e1192538ce48380ea7ed8cac68598d8609dc79e769c6b083f810f1f0beaf6475bd0850c8dcca8e1e6b89b97b3b33268a0bbd602cdd +"@esbuild/openbsd-x64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/openbsd-x64@npm:0.23.1" + conditions: os=openbsd & cpu=x64 languageName: node linkType: hard -"@module-federation/runtime@npm:0.6.13": - version: 0.6.13 - resolution: "@module-federation/runtime@npm:0.6.13" - dependencies: - "@module-federation/sdk": 0.6.13 - checksum: 09e007a27376201679200cc866b29dcccdde11d1c635393fa599d6f313be1b8aeaf13467443c8eb64776b999302844893d6143ad8c99d19c4043bb36ef00c3a8 +"@esbuild/openbsd-x64@npm:0.24.1": + version: 0.24.1 + resolution: "@esbuild/openbsd-x64@npm:0.24.1" + conditions: os=openbsd & cpu=x64 languageName: node linkType: hard -"@module-federation/sdk@npm:0.6.13": - version: 0.6.13 - resolution: "@module-federation/sdk@npm:0.6.13" - checksum: e9c2ff5c496bdc79babe728aa1bce8e1cf8a8302e4da2e815f557c8b8969fbd92db9d1072d2a7f654111503e96f4761fe71e0b3ab55de40da469ca39a334581d +"@esbuild/sunos-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/sunos-x64@npm:0.21.5" + conditions: os=sunos & cpu=x64 languageName: node linkType: hard -"@module-federation/third-party-dts-extractor@npm:0.6.13": - version: 0.6.13 - resolution: "@module-federation/third-party-dts-extractor@npm:0.6.13" - dependencies: - find-pkg: 2.0.0 - fs-extra: 9.1.0 - resolve: 1.22.8 - checksum: 2ffe8b7c69c6b47b8ae70156608637466a2ab8106b62a672dafda268546efbb90043864bb80605cf6b352197b56d175788c103caa794b7521fa212a34deb9f03 +"@esbuild/sunos-x64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/sunos-x64@npm:0.23.1" + conditions: os=sunos & cpu=x64 languageName: node linkType: hard -"@module-federation/webpack-bundler-runtime@npm:0.6.13": - version: 0.6.13 - resolution: "@module-federation/webpack-bundler-runtime@npm:0.6.13" - dependencies: - "@module-federation/runtime": 0.6.13 - "@module-federation/sdk": 0.6.13 - checksum: bdbe0bb993c77d7fc53f285cefb73d8e257cfdc73648d3e2d3198ed8061f1122d0774846085d2e08787bc5a0842bfae7d99477034d1d6e0f2d31b2c7c2b9a1f9 +"@esbuild/sunos-x64@npm:0.24.1": + version: 0.24.1 + resolution: "@esbuild/sunos-x64@npm:0.24.1" + conditions: os=sunos & cpu=x64 languageName: node linkType: hard -"@mswjs/cookies@npm:^0.2.2": - version: 0.2.2 - resolution: "@mswjs/cookies@npm:0.2.2" - dependencies: - "@types/set-cookie-parser": ^2.4.0 - set-cookie-parser: ^2.4.6 - checksum: 23b1ef56d57efcc1b44600076f531a1fb703855af342a31e01bad4adaf0dab51f6d3b5595a95a7988c3f612ba075835f9a06c52833205284d101eb9a51dd72b0 +"@esbuild/win32-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-arm64@npm:0.21.5" + conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@mswjs/interceptors@npm:^0.17.10": - version: 0.17.10 - resolution: "@mswjs/interceptors@npm:0.17.10" - dependencies: - "@open-draft/until": ^1.0.3 - "@types/debug": ^4.1.7 - "@xmldom/xmldom": ^0.8.3 - debug: ^4.3.3 - headers-polyfill: 3.2.5 - outvariant: ^1.2.1 - strict-event-emitter: ^0.2.4 - web-encoding: ^1.1.5 - checksum: 0e6d32f399144b5cefe6fd7620f2776c83adc9bbbbccf2eb4ea347332be059f585136c44168c09b544c41cd3d686f88e43432e10192227a24fbb0c98a2f52dc8 +"@esbuild/win32-arm64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/win32-arm64@npm:0.23.1" + conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@nestjs/axios@npm:3.1.0": - version: 3.1.0 - resolution: "@nestjs/axios@npm:3.1.0" - peerDependencies: - "@nestjs/common": ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 - axios: ^1.3.1 - rxjs: ^6.0.0 || ^7.0.0 - checksum: 75481841feb022b417e1a9cc6fc205878b8299b8c5077d4ae156ca97a5042de1a52c29d3138eb7662e028782ea98e209bf061c6f76fdd27fd32a586adfb6fbca +"@esbuild/win32-arm64@npm:0.24.1": + version: 0.24.1 + resolution: "@esbuild/win32-arm64@npm:0.24.1" + conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@nestjs/common@npm:10.4.5": - version: 10.4.5 - resolution: "@nestjs/common@npm:10.4.5" - dependencies: - iterare: 1.2.1 - tslib: 2.7.0 - uid: 2.0.2 - peerDependencies: - class-transformer: "*" - class-validator: "*" - reflect-metadata: ^0.1.12 || ^0.2.0 - rxjs: ^7.1.0 - peerDependenciesMeta: - class-transformer: - optional: true - class-validator: - optional: true - checksum: 4d98b3f27099ee17dd63fae46eda23980de209c542e72ddc0e626a8f0c3d5c5236c41dc51b421ecb2b0ac1405321689afea16235952b6d41a20aedce14964c47 +"@esbuild/win32-ia32@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-ia32@npm:0.21.5" + conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@nestjs/core@npm:10.4.5": - version: 10.4.5 - resolution: "@nestjs/core@npm:10.4.5" - dependencies: - "@nuxtjs/opencollective": 0.3.2 - fast-safe-stringify: 2.1.1 - iterare: 1.2.1 - path-to-regexp: 3.3.0 - tslib: 2.7.0 - uid: 2.0.2 - peerDependencies: - "@nestjs/common": ^10.0.0 - "@nestjs/microservices": ^10.0.0 - "@nestjs/platform-express": ^10.0.0 - "@nestjs/websockets": ^10.0.0 - reflect-metadata: ^0.1.12 || ^0.2.0 - rxjs: ^7.1.0 - peerDependenciesMeta: - "@nestjs/microservices": - optional: true - "@nestjs/platform-express": - optional: true - "@nestjs/websockets": - optional: true - checksum: 768315ef5065e208fd9da4139a0d3fc576e860d51f40c5485032d0f0c2431ba60bfd44aa0726cedbab8bbf5d1c221efd6f1eb9c34e33524144d9c033f0f5f978 +"@esbuild/win32-ia32@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/win32-ia32@npm:0.23.1" + conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@nodelib/fs.scandir@npm:2.1.5": - version: 2.1.5 - resolution: "@nodelib/fs.scandir@npm:2.1.5" - dependencies: - "@nodelib/fs.stat": 2.0.5 - run-parallel: ^1.1.9 - checksum: a970d595bd23c66c880e0ef1817791432dbb7acbb8d44b7e7d0e7a22f4521260d4a83f7f9fd61d44fda4610105577f8f58a60718105fb38352baed612fd79e59 +"@esbuild/win32-ia32@npm:0.24.1": + version: 0.24.1 + resolution: "@esbuild/win32-ia32@npm:0.24.1" + conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2": - version: 2.0.5 - resolution: "@nodelib/fs.stat@npm:2.0.5" - checksum: 012480b5ca9d97bff9261571dbbec7bbc6033f69cc92908bc1ecfad0792361a5a1994bc48674b9ef76419d056a03efadfce5a6cf6dbc0a36559571a7a483f6f0 +"@esbuild/win32-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-x64@npm:0.21.5" + conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@nodelib/fs.walk@npm:1.2.8, @nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.6, @nodelib/fs.walk@npm:^1.2.8": - version: 1.2.8 - resolution: "@nodelib/fs.walk@npm:1.2.8" - dependencies: - "@nodelib/fs.scandir": 2.1.5 - fastq: ^1.6.0 - checksum: 190c643f156d8f8f277bf2a6078af1ffde1fd43f498f187c2db24d35b4b4b5785c02c7dc52e356497b9a1b65b13edc996de08de0b961c32844364da02986dc53 +"@esbuild/win32-x64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/win32-x64@npm:0.23.1" + conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@npmcli/agent@npm:^2.0.0": - version: 2.2.2 - resolution: "@npmcli/agent@npm:2.2.2" - dependencies: - agent-base: ^7.1.0 - http-proxy-agent: ^7.0.0 - https-proxy-agent: ^7.0.1 - lru-cache: ^10.0.1 - socks-proxy-agent: ^8.0.3 - checksum: 67de7b88cc627a79743c88bab35e023e23daf13831a8aa4e15f998b92f5507b644d8ffc3788afc8e64423c612e0785a6a92b74782ce368f49a6746084b50d874 +"@esbuild/win32-x64@npm:0.24.1": + version: 0.24.1 + resolution: "@esbuild/win32-x64@npm:0.24.1" + conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@npmcli/fs@npm:^2.1.0": - version: 2.1.2 - resolution: "@npmcli/fs@npm:2.1.2" +"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": + version: 4.4.1 + resolution: "@eslint-community/eslint-utils@npm:4.4.1" dependencies: - "@gar/promisify": ^1.1.3 - semver: ^7.3.5 - checksum: 405074965e72d4c9d728931b64d2d38e6ea12066d4fad651ac253d175e413c06fe4350970c783db0d749181da8fe49c42d3880bd1cbc12cd68e3a7964d820225 + eslint-visitor-keys: ^3.4.3 + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + checksum: a7ffc838eb6a9ef594cda348458ccf38f34439ac77dc090fa1c120024bcd4eb911dfd74d5ef44d42063e7949fa7c5123ce714a015c4abb917d4124be1bd32bfe languageName: node linkType: hard -"@npmcli/fs@npm:^3.1.0": - version: 3.1.1 - resolution: "@npmcli/fs@npm:3.1.1" - dependencies: - semver: ^7.3.5 - checksum: d960cab4b93adcb31ce223bfb75c5714edbd55747342efb67dcc2f25e023d930a7af6ece3e75f2f459b6f38fc14d031c766f116cd124fdc937fd33112579e820 +"@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1": + version: 4.12.1 + resolution: "@eslint-community/regexpp@npm:4.12.1" + checksum: 0d628680e204bc316d545b4993d3658427ca404ae646ce541fcc65306b8c712c340e5e573e30fb9f85f4855c0c5f6dca9868931f2fcced06417fbe1a0c6cd2d6 languageName: node linkType: hard -"@npmcli/move-file@npm:^2.0.0": - version: 2.0.1 - resolution: "@npmcli/move-file@npm:2.0.1" +"@eslint/eslintrc@npm:^2.1.4": + version: 2.1.4 + resolution: "@eslint/eslintrc@npm:2.1.4" dependencies: - mkdirp: ^1.0.4 - rimraf: ^3.0.2 - checksum: 52dc02259d98da517fae4cb3a0a3850227bdae4939dda1980b788a7670636ca2b4a01b58df03dd5f65c1e3cb70c50fa8ce5762b582b3f499ec30ee5ce1fd9380 + ajv: ^6.12.4 + debug: ^4.3.2 + espree: ^9.6.0 + globals: ^13.19.0 + ignore: ^5.2.0 + import-fresh: ^3.2.1 + js-yaml: ^4.1.0 + minimatch: ^3.1.2 + strip-json-comments: ^3.1.1 + checksum: 10957c7592b20ca0089262d8c2a8accbad14b4f6507e35416c32ee6b4dbf9cad67dfb77096bbd405405e9ada2b107f3797fe94362e1c55e0b09d6e90dd149127 languageName: node linkType: hard -"@nuxtjs/opencollective@npm:0.3.2": - version: 0.3.2 - resolution: "@nuxtjs/opencollective@npm:0.3.2" - dependencies: - chalk: ^4.1.0 - consola: ^2.15.0 - node-fetch: ^2.6.1 - bin: - opencollective: bin/opencollective.js - checksum: fd3737c12edf55b5c2279674664c3ed5e756410ea82e9cd324c3f0e032ed5ccd8df1959ec69ea97f2f1c9c33c884aae3d7a7108a73ea0faa90d74ea47cf364d4 +"@eslint/js@npm:8.57.1": + version: 8.57.1 + resolution: "@eslint/js@npm:8.57.1" + checksum: 2afb77454c06e8316793d2e8e79a0154854d35e6782a1217da274ca60b5044d2c69d6091155234ed0551a1e408f86f09dd4ece02752c59568fa403e60611e880 languageName: node linkType: hard -"@octokit/auth-app@npm:^4.0.0": - version: 4.0.13 - resolution: "@octokit/auth-app@npm:4.0.13" - dependencies: - "@octokit/auth-oauth-app": ^5.0.0 - "@octokit/auth-oauth-user": ^2.0.0 - "@octokit/request": ^6.0.0 - "@octokit/request-error": ^3.0.0 - "@octokit/types": ^9.0.0 - deprecation: ^2.3.1 - lru-cache: ^9.0.0 - universal-github-app-jwt: ^1.1.1 - universal-user-agent: ^6.0.0 - checksum: 809004bc3e985fd4911cc42060fecd7b88e609e1334b90c4f79711aa27cade03fa1d930945ea8f7339ddd8d4514dd220a6ae8489faefa9e0ce6881519a02fc37 +"@fastify/busboy@npm:^2.0.0": + version: 2.1.1 + resolution: "@fastify/busboy@npm:2.1.1" + checksum: 42c32ef75e906c9a4809c1e1930a5ca6d4ddc8d138e1a8c8ba5ea07f997db32210617d23b2e4a85fe376316a41a1a0439fc6ff2dedf5126d96f45a9d80754fb2 languageName: node linkType: hard -"@octokit/auth-oauth-app@npm:^5.0.0": - version: 5.0.6 - resolution: "@octokit/auth-oauth-app@npm:5.0.6" +"@floating-ui/core@npm:^1.6.0": + version: 1.6.8 + resolution: "@floating-ui/core@npm:1.6.8" dependencies: - "@octokit/auth-oauth-device": ^4.0.0 - "@octokit/auth-oauth-user": ^2.0.0 - "@octokit/request": ^6.0.0 - "@octokit/types": ^9.0.0 - "@types/btoa-lite": ^1.0.0 - btoa-lite: ^1.0.0 - universal-user-agent: ^6.0.0 - checksum: 2101b70d148409ce24be3b7b5c033b03d92362a7b5786c441532187dac59826dba0ffbe245beb0c4cec55bc4b843b84b4b2ba0ad8ec46a31cc15451f80705b19 + "@floating-ui/utils": ^0.2.8 + checksum: 82faa6ea9d57e466779324e51308d6d49c098fb9d184a08d9bb7f4fad83f08cc070fc491f8d56f0cad44a16215fb43f9f829524288413e6c33afcb17303698de languageName: node linkType: hard -"@octokit/auth-oauth-device@npm:^4.0.0": - version: 4.0.5 - resolution: "@octokit/auth-oauth-device@npm:4.0.5" +"@floating-ui/dom@npm:^1.0.0": + version: 1.6.12 + resolution: "@floating-ui/dom@npm:1.6.12" dependencies: - "@octokit/oauth-methods": ^2.0.0 - "@octokit/request": ^6.0.0 - "@octokit/types": ^9.0.0 - universal-user-agent: ^6.0.0 - checksum: 361824ba13c56beb05016b48b7d492f7439650abbb9e687c9f3e82ef4830790e1aae3d78c6e95dc317278146442c59821d87bf0b9b3c6d53f87117fe32b380d0 + "@floating-ui/core": ^1.6.0 + "@floating-ui/utils": ^0.2.8 + checksum: 956514ed100c0c853e73ace9e3c877b7e535444d7c31326f687a7690d49cb1e59ef457e9c93b76141aea0d280e83ed5a983bb852718b62eea581f755454660f6 languageName: node linkType: hard -"@octokit/auth-oauth-user@npm:^2.0.0": +"@floating-ui/react-dom@npm:^2.0.0": version: 2.1.2 - resolution: "@octokit/auth-oauth-user@npm:2.1.2" + resolution: "@floating-ui/react-dom@npm:2.1.2" dependencies: - "@octokit/auth-oauth-device": ^4.0.0 - "@octokit/oauth-methods": ^2.0.0 - "@octokit/request": ^6.0.0 - "@octokit/types": ^9.0.0 - btoa-lite: ^1.0.0 - universal-user-agent: ^6.0.0 - checksum: cbb4994452b38fecebfd93bcf56b5ac7853f3bb880a42b00eec2fc6a9fdc6582293247cc8ead10814903f47195353c6450fe1a964184def7fe6e746da911b8bc + "@floating-ui/dom": ^1.0.0 + peerDependencies: + react: ">=16.8.0" + react-dom: ">=16.8.0" + checksum: 25bb031686e23062ed4222a8946e76b3f9021d40a48437bd747233c4964a766204b8a55f34fa8b259839af96e60db7c6e3714d81f1de06914294f90e86ffbc48 languageName: node linkType: hard -"@octokit/auth-token@npm:^3.0.0": - version: 3.0.4 - resolution: "@octokit/auth-token@npm:3.0.4" - checksum: 42f533a873d4192e6df406b3176141c1f95287423ebdc4cf23a38bb77ee00ccbc0e60e3fbd5874234fc2ed2e67bbc6035e3b0561dacc1d078adb5c4ced3579e3 +"@floating-ui/utils@npm:^0.2.8": + version: 0.2.8 + resolution: "@floating-ui/utils@npm:0.2.8" + checksum: deb98bba017c4e073c7ad5740d4dec33a4d3e0942d412e677ac0504f3dade15a68fc6fd164d43c93c0bb0bcc5dc5015c1f4080dfb1a6161140fe660624f7c875 languageName: node linkType: hard -"@octokit/auth-unauthenticated@npm:^3.0.0": - version: 3.0.5 - resolution: "@octokit/auth-unauthenticated@npm:3.0.5" - dependencies: - "@octokit/request-error": ^3.0.0 - "@octokit/types": ^9.0.0 - checksum: 8372d732af9aeb09e51fc51c9aca00fb4522e182caf514898a27c5d7e33cfd8e39f9d00f7868cfc34ad437280a0fcafb312624a2968526110249e07b2b96b269 +"@gar/promisify@npm:^1.1.3": + version: 1.1.3 + resolution: "@gar/promisify@npm:1.1.3" + checksum: 4059f790e2d07bf3c3ff3e0fec0daa8144fe35c1f6e0111c9921bd32106adaa97a4ab096ad7dab1e28ee6a9060083c4d1a4ada42a7f5f3f7a96b8812e2b757c1 languageName: node linkType: hard -"@octokit/core@npm:^4.0.0, @octokit/core@npm:^4.2.1": - version: 4.2.4 - resolution: "@octokit/core@npm:4.2.4" +"@gitbeaker/core@npm:^41.3.0": + version: 41.3.0 + resolution: "@gitbeaker/core@npm:41.3.0" dependencies: - "@octokit/auth-token": ^3.0.0 - "@octokit/graphql": ^5.0.0 - "@octokit/request": ^6.0.0 - "@octokit/request-error": ^3.0.0 - "@octokit/types": ^9.0.0 - before-after-hook: ^2.2.0 - universal-user-agent: ^6.0.0 - checksum: ac8ab47440a31b0228a034aacac6994b64d6b073ad5b688b4c5157fc5ee0d1af1c926e6087bf17fd7244ee9c5998839da89065a90819bde4a97cb77d4edf58a6 + "@gitbeaker/requester-utils": ^41.3.0 + qs: ^6.12.2 + xcase: ^2.0.1 + checksum: 7b42c2af717002a54a1a6fdaa4056f2dbf6b52c6c33de68d1ad035b301609322f5b980d0da48918518dde105f4d88b39976cf4510a3d19a34e11b991c111e8fc languageName: node linkType: hard -"@octokit/endpoint@npm:^7.0.0": - version: 7.0.6 - resolution: "@octokit/endpoint@npm:7.0.6" +"@gitbeaker/requester-utils@npm:^41.3.0": + version: 41.3.0 + resolution: "@gitbeaker/requester-utils@npm:41.3.0" dependencies: - "@octokit/types": ^9.0.0 - is-plain-object: ^5.0.0 - universal-user-agent: ^6.0.0 - checksum: 7caebf30ceec50eb7f253341ed419df355232f03d4638a95c178ee96620400db7e4a5e15d89773fe14db19b8653d4ab4cc81b2e93ca0c760b4e0f7eb7ad80301 + picomatch-browser: ^2.2.6 + qs: ^6.12.2 + rate-limiter-flexible: ^4.0.1 + xcase: ^2.0.1 + checksum: 28dc17e995450988e62f9e76557bf0a2fe0a41db2ffc3e088ed5c71009daaa1f26563ad67b61738c6ca5bfde9d25f067a189f4bc0a7e097d5ffa49991d24cd38 languageName: node linkType: hard -"@octokit/graphql-schema@npm:^13.7.0": - version: 13.10.0 - resolution: "@octokit/graphql-schema@npm:13.10.0" +"@gitbeaker/rest@npm:^41.2.0": + version: 41.3.0 + resolution: "@gitbeaker/rest@npm:41.3.0" dependencies: - graphql: ^16.0.0 - graphql-tag: ^2.10.3 - checksum: fdec9c9a4df1f90b733ea0e24964744faceaf65e5d350b1727892e8e0e5821df1d29aec5cfa039925a044c6f56d4ed2028505108db7fbc0c68011053853c2411 + "@gitbeaker/core": ^41.3.0 + "@gitbeaker/requester-utils": ^41.3.0 + checksum: 96aa8d5e7ff3ca0e27f874df8b435fb12d20e6975d2291de26c90b7c2e201c286ffd241884b609b2200ddc4e28a331563b1b2d6767a1dd0160fc341f88761016 languageName: node linkType: hard -"@octokit/graphql@npm:^5.0.0": - version: 5.0.6 - resolution: "@octokit/graphql@npm:5.0.6" +"@google-cloud/container@npm:^5.0.0": + version: 5.19.0 + resolution: "@google-cloud/container@npm:5.19.0" dependencies: - "@octokit/request": ^6.0.0 - "@octokit/types": ^9.0.0 - universal-user-agent: ^6.0.0 - checksum: 7be545d348ef31dcab0a2478dd64d5746419a2f82f61459c774602bcf8a9b577989c18001f50b03f5f61a3d9e34203bdc021a4e4d75ff2d981e8c9c09cf8a65c + google-gax: ^4.0.3 + checksum: 90a31ce375115c9860dfbf2359ffc9052fccf73848e14909820d02a293d0d84705df41e7a24a0913bf093f0aa5b844e8d8d6b1a0f57a2590592e3c75579b4a37 languageName: node linkType: hard -"@octokit/oauth-app@npm:^4.2.0": - version: 4.2.4 - resolution: "@octokit/oauth-app@npm:4.2.4" +"@google-cloud/firestore@npm:^7.0.0": + version: 7.11.0 + resolution: "@google-cloud/firestore@npm:7.11.0" dependencies: - "@octokit/auth-oauth-app": ^5.0.0 - "@octokit/auth-oauth-user": ^2.0.0 - "@octokit/auth-unauthenticated": ^3.0.0 - "@octokit/core": ^4.0.0 - "@octokit/oauth-authorization-url": ^5.0.0 - "@octokit/oauth-methods": ^2.0.0 - "@types/aws-lambda": ^8.10.83 - fromentries: ^1.3.1 - universal-user-agent: ^6.0.0 - checksum: 6d9798c9e63e84f3cb3031ac3f06f45c6ea053fd201be9a07a508786fd400479d7d9f6f85707d0fff7f094a265c7e966a2fa4c884001b99f02ddd927bf499d06 + "@opentelemetry/api": ^1.3.0 + fast-deep-equal: ^3.1.1 + functional-red-black-tree: ^1.0.1 + google-gax: ^4.3.3 + protobufjs: ^7.2.6 + checksum: b926123db5e3f37704c0aa51baee1726b72910a37c7fe99bbfe048afb1fba7fa40d7e5f7c017c7284ebd9273c0237da5c00fac81772ba0de1bed97dc9b71e709 languageName: node linkType: hard -"@octokit/oauth-authorization-url@npm:^5.0.0": - version: 5.0.0 - resolution: "@octokit/oauth-authorization-url@npm:5.0.0" - checksum: bc457c4af9559e9e8f752e643fc9d116247f4e4246e69959d99b9e39196c93d7af53c1c8e3bd946bd0e4fc29f7ba27efe9bced8525ffa41fe45ef56a8281014b +"@google-cloud/paginator@npm:^5.0.0": + version: 5.0.2 + resolution: "@google-cloud/paginator@npm:5.0.2" + dependencies: + arrify: ^2.0.0 + extend: ^3.0.2 + checksum: eeb4a387807270ba9f69f22d7439d60c5bd6663573c2da9ea7d998c373d77671d77450b87f0f229c28418df654af4064e70554fa4dcde7edb3c0f5c05f208246 languageName: node linkType: hard -"@octokit/oauth-methods@npm:^2.0.0": - version: 2.0.6 - resolution: "@octokit/oauth-methods@npm:2.0.6" - dependencies: - "@octokit/oauth-authorization-url": ^5.0.0 - "@octokit/request": ^6.2.3 - "@octokit/request-error": ^3.0.3 - "@octokit/types": ^9.0.0 - btoa-lite: ^1.0.0 - checksum: 151b933d79d6fbf36fdfae8cdc868a3d43316352eaccf46cb8c420cfd238658275e41996d2d377177553bc0c637c3aefe8ca99c1ab7fd62054654b6119b7b1cc +"@google-cloud/projectify@npm:^4.0.0": + version: 4.0.0 + resolution: "@google-cloud/projectify@npm:4.0.0" + checksum: 973d28414ae200433333a3c315aebb881ced42ea4afe6f3f8520d2fecded75e76c913f5189fea8fb29ce6ca36117c4f44001b3c503eecdd3ac7f02597a98354a languageName: node linkType: hard -"@octokit/openapi-types@npm:^18.0.0": - version: 18.1.1 - resolution: "@octokit/openapi-types@npm:18.1.1" - checksum: 94f42977fd2fcb9983c781fd199bc11218885a1226d492680bfb1268524a1b2af48a768eef90c63b80a2874437de641d59b3b7f640a5afa93e7c21fe1a79069a +"@google-cloud/promisify@npm:^4.0.0": + version: 4.0.0 + resolution: "@google-cloud/promisify@npm:4.0.0" + checksum: edd189398c5ed5b7b64a373177d77c87d076a248c31b8ae878bb91e2411d89860108bcb948c349f32628973a823bd131beb53ec008fd613a8cb466ef1d89de49 languageName: node linkType: hard -"@octokit/plugin-paginate-rest@npm:^6.1.2": - version: 6.1.2 - resolution: "@octokit/plugin-paginate-rest@npm:6.1.2" +"@google-cloud/storage@npm:^7.0.0": + version: 7.14.0 + resolution: "@google-cloud/storage@npm:7.14.0" dependencies: - "@octokit/tsconfig": ^1.0.2 - "@octokit/types": ^9.2.3 - peerDependencies: - "@octokit/core": ">=4" - checksum: a7b3e686c7cbd27ec07871cde6e0b1dc96337afbcef426bbe3067152a17b535abd480db1861ca28c88d93db5f7bfdbcadd0919ead19818c28a69d0e194038065 + "@google-cloud/paginator": ^5.0.0 + "@google-cloud/projectify": ^4.0.0 + "@google-cloud/promisify": ^4.0.0 + abort-controller: ^3.0.0 + async-retry: ^1.3.3 + duplexify: ^4.1.3 + fast-xml-parser: ^4.4.1 + gaxios: ^6.0.2 + google-auth-library: ^9.6.3 + html-entities: ^2.5.2 + mime: ^3.0.0 + p-limit: ^3.0.1 + retry-request: ^7.0.0 + teeny-request: ^9.0.0 + uuid: ^8.0.0 + checksum: c239b0961bb4dfb36fe67fc35b933bf65259bb4ebcdffeb48cdee5e2d838626daef47ba78417d33eb47fda5c2536d89ad1feb33cd59ecc887d47ab992fc80a1b languageName: node linkType: hard -"@octokit/plugin-request-log@npm:^1.0.4": - version: 1.0.4 - resolution: "@octokit/plugin-request-log@npm:1.0.4" +"@graphiql/react@npm:^0.20.3": + version: 0.20.4 + resolution: "@graphiql/react@npm:0.20.4" + dependencies: + "@graphiql/toolkit": ^0.9.1 + "@headlessui/react": ^1.7.15 + "@radix-ui/react-dialog": ^1.0.4 + "@radix-ui/react-dropdown-menu": ^2.0.5 + "@radix-ui/react-tooltip": ^1.0.6 + "@radix-ui/react-visually-hidden": ^1.0.3 + "@types/codemirror": ^5.60.8 + clsx: ^1.2.1 + codemirror: ^5.65.3 + codemirror-graphql: ^2.0.11 + copy-to-clipboard: ^3.2.0 + framer-motion: ^6.5.1 + graphql-language-service: ^5.2.0 + markdown-it: ^12.2.0 + set-value: ^4.1.0 peerDependencies: - "@octokit/core": ">=3" - checksum: 2086db00056aee0f8ebd79797b5b57149ae1014e757ea08985b71eec8c3d85dbb54533f4fd34b6b9ecaa760904ae6a7536be27d71e50a3782ab47809094bfc0c + graphql: ^15.5.0 || ^16.0.0 + react: ^16.8.0 || ^17 || ^18 + react-dom: ^16.8.0 || ^17 || ^18 + checksum: 7460136ce65de5e4215fed141f80de2f74a7699ac6eeae1f1961745faa053548e5b8d997db7633e5fc54d8d562bf7b663af5d298178b366ba90aa6f2d6f858ff languageName: node linkType: hard -"@octokit/plugin-rest-endpoint-methods@npm:^7.1.2": - version: 7.2.3 - resolution: "@octokit/plugin-rest-endpoint-methods@npm:7.2.3" - dependencies: - "@octokit/types": ^10.0.0 - peerDependencies: - "@octokit/core": ">=3" - checksum: 21dfb98514dbe900c29cddb13b335bbce43d613800c6b17eba3c1fd31d17e69c1960f3067f7bf864bb38fdd5043391f4a23edee42729d8c7fbabd00569a80336 +"@graphiql/react@npm:^0.23.0": + version: 0.23.1 + resolution: "@graphiql/react@npm:0.23.1" + dependencies: + "@graphiql/toolkit": ^0.9.2 + "@headlessui/react": ^1.7.15 + "@radix-ui/react-dialog": ^1.0.4 + "@radix-ui/react-dropdown-menu": ^2.0.5 + "@radix-ui/react-tooltip": ^1.0.6 + "@radix-ui/react-visually-hidden": ^1.0.3 + "@types/codemirror": ^5.60.8 + clsx: ^1.2.1 + codemirror: ^5.65.3 + codemirror-graphql: ^2.0.13 + copy-to-clipboard: ^3.2.0 + framer-motion: ^6.5.1 + graphql-language-service: ^5.2.2 + markdown-it: ^14.1.0 + set-value: ^4.1.0 + peerDependencies: + graphql: ^15.5.0 || ^16.0.0 + react: ^16.8.0 || ^17 || ^18 + react-dom: ^16.8.0 || ^17 || ^18 + checksum: 688458fd55613cf7940b850d5207c54a28d0ea6e819d815caf2411b51b8b9e2e4b0df39d3b4329e0b12ff14fbf99a4dfd1d09c0397db5af80d664a589d962a1a + languageName: node + linkType: hard + +"@graphiql/toolkit@npm:^0.9.1, @graphiql/toolkit@npm:^0.9.2": + version: 0.9.2 + resolution: "@graphiql/toolkit@npm:0.9.2" + dependencies: + "@n1ru4l/push-pull-async-iterable-iterator": ^3.1.0 + meros: ^1.1.4 + peerDependencies: + graphql: ^15.5.0 || ^16.0.0 + graphql-ws: ">= 4.5.0" + peerDependenciesMeta: + graphql-ws: + optional: true + checksum: 4474a998a948d0df5cef8371245b0e895be40803a07e49231ab91798aa761880e6e4a684478a44b723c013f0e8206dab3d86e5b0fc9b688df035fa9f1fa29734 languageName: node linkType: hard -"@octokit/request-error@npm:^3.0.0, @octokit/request-error@npm:^3.0.3": - version: 3.0.3 - resolution: "@octokit/request-error@npm:3.0.3" +"@graphql-hive/gateway-abort-signal-any@npm:^0.0.1": + version: 0.0.1 + resolution: "@graphql-hive/gateway-abort-signal-any@npm:0.0.1" dependencies: - "@octokit/types": ^9.0.0 - deprecation: ^2.0.0 - once: ^1.4.0 - checksum: 5db0b514732686b627e6ed9ef1ccdbc10501f1b271a9b31f784783f01beee70083d7edcfeb35fbd7e569fa31fdd6762b1ff6b46101700d2d97e7e48e749520d0 + tslib: ^2.8.1 + checksum: 363f8876318add3fcddea78590e329e0e79d358ac41ceb51bef541b02f1d76ca34828f37d92a050236fdd11f930b65178f42be9469c0ec726decb2e337625331 languageName: node linkType: hard -"@octokit/request@npm:^6.0.0, @octokit/request@npm:^6.2.3": - version: 6.2.8 - resolution: "@octokit/request@npm:6.2.8" +"@graphql-tools/batch-execute@npm:^9.0.10": + version: 9.0.10 + resolution: "@graphql-tools/batch-execute@npm:9.0.10" dependencies: - "@octokit/endpoint": ^7.0.0 - "@octokit/request-error": ^3.0.0 - "@octokit/types": ^9.0.0 - is-plain-object: ^5.0.0 - node-fetch: ^2.6.7 - universal-user-agent: ^6.0.0 - checksum: 3747106f50d7c462131ff995b13defdd78024b7becc40283f4ac9ea0af2391ff33a0bb476a05aa710346fe766d20254979079a1d6f626112015ba271fe38f3e2 + "@graphql-tools/utils": ^10.6.2 + dataloader: ^2.2.3 + tslib: ^2.8.1 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 700009a491f95b97979d8b2becc2d4b4be22418b66ebd1e59fca9b6a9409ee4a981577c35123e3e54384245a9e71d12398158b22b1e4e8b7cd5c67a8873ed612 languageName: node linkType: hard -"@octokit/rest@npm:^19.0.3": - version: 19.0.13 - resolution: "@octokit/rest@npm:19.0.13" +"@graphql-tools/delegate@npm:^10.2.8": + version: 10.2.8 + resolution: "@graphql-tools/delegate@npm:10.2.8" dependencies: - "@octokit/core": ^4.2.1 - "@octokit/plugin-paginate-rest": ^6.1.2 - "@octokit/plugin-request-log": ^1.0.4 - "@octokit/plugin-rest-endpoint-methods": ^7.1.2 - checksum: ca1553e3fe46efabffef60e68e4a228d4cc0f0d545daf7f019560f666d3e934c6f3a6402a42bbd786af4f3c0a6e69380776312f01b7d52998fe1bbdd1b068f69 + "@graphql-tools/batch-execute": ^9.0.10 + "@graphql-tools/executor": ^1.3.8 + "@graphql-tools/schema": ^10.0.11 + "@graphql-tools/utils": ^10.6.2 + "@repeaterjs/repeater": ^3.0.6 + dataloader: ^2.2.3 + dset: ^3.1.2 + tslib: ^2.8.1 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 9ac5fc49e3da29b6892c9753d99474656541ef1196d63679d4a20df74a5b393341d4a10ba5ec68adce6310f44c0d01777ca7eaeb3f39ae290ace8db48f91e93d languageName: node linkType: hard -"@octokit/tsconfig@npm:^1.0.2": - version: 1.0.2 - resolution: "@octokit/tsconfig@npm:1.0.2" - checksum: 74d56f3e9f326a8dd63700e9a51a7c75487180629c7a68bbafee97c612fbf57af8347369bfa6610b9268a3e8b833c19c1e4beb03f26db9a9dce31f6f7a19b5b1 +"@graphql-tools/executor-graphql-ws@npm:^1.3.2": + version: 1.3.5 + resolution: "@graphql-tools/executor-graphql-ws@npm:1.3.5" + dependencies: + "@graphql-tools/utils": ^10.6.2 + "@whatwg-node/disposablestack": ^0.0.5 + graphql-ws: ^5.14.0 + isomorphic-ws: ^5.0.0 + tslib: ^2.8.1 + ws: ^8.17.1 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 0b5a7b7eb64427e1763399a6946cfe0d48e972b5e18831ba86238fcd3ab3fa1e1db7f213e493f6eaeb49abe274097060b22cf5277d5a959ae880a6daffc791bf languageName: node linkType: hard -"@octokit/types@npm:^10.0.0": - version: 10.0.0 - resolution: "@octokit/types@npm:10.0.0" +"@graphql-tools/executor-http@npm:^1.1.9": + version: 1.2.1 + resolution: "@graphql-tools/executor-http@npm:1.2.1" dependencies: - "@octokit/openapi-types": ^18.0.0 - checksum: 8aafba2ff0cd2435fb70c291bf75ed071c0fa8a865cf6169648732068a35dec7b85a345851f18920ec5f3e94ee0e954988485caac0da09ec3f6781cc44fe153a + "@graphql-hive/gateway-abort-signal-any": ^0.0.1 + "@graphql-tools/utils": ^10.6.2 + "@repeaterjs/repeater": ^3.0.4 + "@whatwg-node/disposablestack": ^0.0.5 + "@whatwg-node/fetch": ^0.10.1 + extract-files: ^11.0.0 + meros: ^1.2.1 + tslib: ^2.8.1 + value-or-promise: ^1.0.12 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: c837973e555ab78a85c8bb23c7218c831a7ee3a4b40f0873bf5053dbda7ef7faa76f5f4d70682a9176f719d84a6959b32acaec05e1f11e91784d8f60153b5646 languageName: node linkType: hard -"@octokit/types@npm:^9.0.0, @octokit/types@npm:^9.2.3": - version: 9.3.2 - resolution: "@octokit/types@npm:9.3.2" +"@graphql-tools/executor-legacy-ws@npm:^1.1.7": + version: 1.1.7 + resolution: "@graphql-tools/executor-legacy-ws@npm:1.1.7" dependencies: - "@octokit/openapi-types": ^18.0.0 - checksum: f55d096aaed3e04b8308d4422104fb888f355988056ba7b7ef0a4c397b8a3e54290d7827b06774dbe0c9ce55280b00db486286954f9c265aa6b03091026d9da8 + "@graphql-tools/utils": ^10.6.4 + "@types/ws": ^8.0.0 + isomorphic-ws: ^5.0.0 + tslib: ^2.4.0 + ws: ^8.17.1 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: cb699104527140f48886af400dbf409e73e17a387de8278396d021222f887af42a5e74381a1c229ff5282833f47fc75a04a41eb936fe28868c54beb8be282b14 languageName: node linkType: hard -"@open-draft/until@npm:^1.0.3": - version: 1.0.3 - resolution: "@open-draft/until@npm:1.0.3" - checksum: 323e92ebef0150ed0f8caedc7d219b68cdc50784fa4eba0377eef93533d3f46514eb2400ced83dda8c51bddc3d2c7b8e9cf95e5ec85ab7f62dfc015d174f62f2 +"@graphql-tools/executor@npm:^1.3.8": + version: 1.3.9 + resolution: "@graphql-tools/executor@npm:1.3.9" + dependencies: + "@graphql-tools/utils": ^10.6.4 + "@graphql-typed-document-node/core": ^3.2.0 + "@repeaterjs/repeater": ^3.0.4 + "@whatwg-node/disposablestack": ^0.0.5 + tslib: ^2.4.0 + value-or-promise: ^1.0.12 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: c148b9e99278dc23048f5155e75139c5a2d7a94482fa489443f0ed9d3fdaa59019107d1ceb4fd2c477872d52d33af480cf11bfb0b14f31b7bfdb1f6945074dad languageName: node linkType: hard -"@openapitools/openapi-generator-cli@npm:^2.7.0": - version: 2.15.0 - resolution: "@openapitools/openapi-generator-cli@npm:2.15.0" +"@graphql-tools/graphql-file-loader@npm:^8.0.0": + version: 8.0.8 + resolution: "@graphql-tools/graphql-file-loader@npm:8.0.8" dependencies: - "@nestjs/axios": 3.1.0 - "@nestjs/common": 10.4.5 - "@nestjs/core": 10.4.5 - "@nuxtjs/opencollective": 0.3.2 - axios: 1.7.7 - chalk: 4.1.2 - commander: 8.3.0 - compare-versions: 4.1.4 - concurrently: 6.5.1 - console.table: 0.10.0 - fs-extra: 10.1.0 - glob: 9.3.5 - inquirer: 8.2.6 - lodash: 4.17.21 - proxy-agent: 6.4.0 - reflect-metadata: 0.1.13 - rxjs: 7.8.1 - tslib: 2.7.0 - bin: - openapi-generator-cli: main.js - checksum: 2ea04baf61b526bb8a1c12121fe07ca6f95fa5884f0ca9af8030292cfead39e79707f2649d1cf36ec266c9d199b5ded4165fbd4f6ba089be028bce9f616fbf19 + "@graphql-tools/import": 7.0.8 + "@graphql-tools/utils": ^10.6.4 + globby: ^11.0.3 + tslib: ^2.4.0 + unixify: ^1.0.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: eb00c546aa6707d9b6e2267f1d16a41b96749a0b2397880bfb568842ab9ee1ed30b946fd3601c5d2b89b41abf8c6b038f96861cf9c829d033df89844ddddf345 languageName: node linkType: hard -"@openshift/dynamic-plugin-sdk-webpack@npm:^3.0.0": - version: 3.0.1 - resolution: "@openshift/dynamic-plugin-sdk-webpack@npm:3.0.1" +"@graphql-tools/import@npm:7.0.8": + version: 7.0.8 + resolution: "@graphql-tools/import@npm:7.0.8" dependencies: - lodash: ^4.17.21 - yup: ^0.32.11 + "@graphql-tools/utils": ^10.6.4 + resolve-from: 5.0.0 + tslib: ^2.4.0 peerDependencies: - webpack: ^5.75.0 - checksum: 5c52a4528b7a30a12263e3c5c5a77a9edb97a151316d5db3472d1451104bd0f06cd7384e7168d3ee1b87b9b7dac5a9589beeb4e15c2f662c8523d8f487e1e032 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: e5205fc1580491d5ce87657434f40ba1989a390c870e8b3237cd024adbbc42b41d94cf1ac8d7363ea5f0291a20cdadea8c30355eeb1b3fcadbd8172e4440028a languageName: node linkType: hard -"@opentelemetry/api@npm:^1.3.0": - version: 1.9.0 - resolution: "@opentelemetry/api@npm:1.9.0" - checksum: 9e88e59d53ced668f3daaecfd721071c5b85a67dd386f1c6f051d1be54375d850016c881f656ffbe9a03bedae85f7e89c2f2b635313f9c9b195ad033cdc31020 +"@graphql-tools/json-file-loader@npm:^8.0.0": + version: 8.0.8 + resolution: "@graphql-tools/json-file-loader@npm:8.0.8" + dependencies: + "@graphql-tools/utils": ^10.6.4 + globby: ^11.0.3 + tslib: ^2.4.0 + unixify: ^1.0.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 41a5a3434c3e9f65c3a61e72d1f8a4a35cde1d5be8910a9990d23c24ff18a8a31e176c8c91e633ac51f38d5663e6783540daa59d938416025a1e0600f64b0a15 languageName: node linkType: hard -"@pkgjs/parseargs@npm:^0.11.0": - version: 0.11.0 - resolution: "@pkgjs/parseargs@npm:0.11.0" - checksum: 6ad6a00fc4f2f2cfc6bff76fb1d88b8ee20bc0601e18ebb01b6d4be583733a860239a521a7fbca73b612e66705078809483549d2b18f370eb346c5155c8e4a0f +"@graphql-tools/load@npm:^8.0.0": + version: 8.0.9 + resolution: "@graphql-tools/load@npm:8.0.9" + dependencies: + "@graphql-tools/schema": ^10.0.13 + "@graphql-tools/utils": ^10.6.4 + p-limit: 3.1.0 + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 5154619ef845e34ead6fdcb9ed2c1a44783ec940972655e31a8b534949ec85a5bc14c4bede8a91c5571154517fed8b2ffcb525e2643de51a4fe886d314fc1932 languageName: node linkType: hard -"@pmmmwh/react-refresh-webpack-plugin@npm:^0.5.7": - version: 0.5.15 - resolution: "@pmmmwh/react-refresh-webpack-plugin@npm:0.5.15" +"@graphql-tools/merge@npm:8.3.1": + version: 8.3.1 + resolution: "@graphql-tools/merge@npm:8.3.1" dependencies: - ansi-html: ^0.0.9 - core-js-pure: ^3.23.3 - error-stack-parser: ^2.0.6 - html-entities: ^2.1.0 - loader-utils: ^2.0.4 - schema-utils: ^4.2.0 - source-map: ^0.7.3 + "@graphql-tools/utils": 8.9.0 + tslib: ^2.4.0 peerDependencies: - "@types/webpack": 4.x || 5.x - react-refresh: ">=0.10.0 <1.0.0" - sockjs-client: ^1.4.0 - type-fest: ">=0.17.0 <5.0.0" - webpack: ">=4.43.0 <6.0.0" - webpack-dev-server: 3.x || 4.x || 5.x - webpack-hot-middleware: 2.x - webpack-plugin-serve: 0.x || 1.x - peerDependenciesMeta: - "@types/webpack": - optional: true - sockjs-client: - optional: true - type-fest: - optional: true - webpack-dev-server: - optional: true - webpack-hot-middleware: - optional: true - webpack-plugin-serve: - optional: true - checksum: 82df6244146209d63a12f0ca2e70b05274ee058c7e6d6eb4ced1228afde3b039a7f3f3cc0c76f1bb4b28deadbcf08bc2821c814f0bfee06979128578300fff3d + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 16af6be2249f4f500a4c2f5d3db2e0efd56ad69b5e10499649c6fc979c257af12e131112304a16699654b54daab37a80737e0538478bc45a0053b9bc859a7ac1 languageName: node linkType: hard -"@rollup/plugin-commonjs@npm:^25.0.4": - version: 25.0.8 - resolution: "@rollup/plugin-commonjs@npm:25.0.8" +"@graphql-tools/merge@npm:^9.0.0, @graphql-tools/merge@npm:^9.0.14": + version: 9.0.14 + resolution: "@graphql-tools/merge@npm:9.0.14" dependencies: - "@rollup/pluginutils": ^5.0.1 - commondir: ^1.0.1 - estree-walker: ^2.0.2 - glob: ^8.0.3 - is-reference: 1.2.1 - magic-string: ^0.30.3 + "@graphql-tools/utils": ^10.6.4 + tslib: ^2.4.0 peerDependencies: - rollup: ^2.68.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - checksum: dd105ee5625fbcaf832c0cf80be0aaf6a86bbd8fe99ff911f9ac4b78c79f26e9e99442b5aa0cc1136b5ddf89ec0b6c5728e5341ac04d687aef1b53063670b395 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 07a65bef47d60317a4d7ed593efa1355e01016e9f0401a4fd22d82d42b17b7a38223612a80a3a8c23d657ed75e4ebe80888814ea33f90b8b2a0d8dfac49b4e3c languageName: node linkType: hard -"@rollup/plugin-commonjs@npm:^26.0.0": - version: 26.0.3 - resolution: "@rollup/plugin-commonjs@npm:26.0.3" +"@graphql-tools/schema@npm:^10.0.11, @graphql-tools/schema@npm:^10.0.13": + version: 10.0.13 + resolution: "@graphql-tools/schema@npm:10.0.13" dependencies: - "@rollup/pluginutils": ^5.0.1 - commondir: ^1.0.1 - estree-walker: ^2.0.2 - glob: ^10.4.1 - is-reference: 1.2.1 - magic-string: ^0.30.3 + "@graphql-tools/merge": ^9.0.14 + "@graphql-tools/utils": ^10.6.4 + tslib: ^2.4.0 + value-or-promise: ^1.0.12 peerDependencies: - rollup: ^2.68.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - checksum: 6f3ce53054f9b2edfd04a673c7572b5f8ba6b8416da55a7aef670a9b4630caf46e3e8d74b481d05e1d9f9cb98fa96228e23abad10ab2c95a6cc0b1a0065568e6 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: a8a9505da30cda6b2e52309f104f3b76d9703b47357607e449d11907cef50ceeaf4d252751bffcbbcfbf8cf8d1fe4140655f2ef28dd59f88c88646e756393ad1 languageName: node linkType: hard -"@rollup/plugin-json@npm:^6.0.0": - version: 6.1.0 - resolution: "@rollup/plugin-json@npm:6.1.0" +"@graphql-tools/schema@npm:^8.5.0": + version: 8.5.1 + resolution: "@graphql-tools/schema@npm:8.5.1" dependencies: - "@rollup/pluginutils": ^5.1.0 + "@graphql-tools/merge": 8.3.1 + "@graphql-tools/utils": 8.9.0 + tslib: ^2.4.0 + value-or-promise: 1.0.11 peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - checksum: cc018d20c80242a2b8b44fae61a968049cf31bb8406218187cc7cda35747616594e79452dd65722e7da6dd825b392e90d4599d43cd4461a02fefa2865945164e + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 91363cd4371e347af40ef66f7d903b5d4f5998bfaec9214768e6a795136ef6372f9f225e05e18daacd929e23695811f15e791c6cbe082bf5b5d03b16b1f874f8 languageName: node linkType: hard -"@rollup/plugin-node-resolve@npm:^15.0.0, @rollup/plugin-node-resolve@npm:^15.2.1": - version: 15.3.0 - resolution: "@rollup/plugin-node-resolve@npm:15.3.0" +"@graphql-tools/url-loader@npm:^8.0.0": + version: 8.0.20 + resolution: "@graphql-tools/url-loader@npm:8.0.20" dependencies: - "@rollup/pluginutils": ^5.0.1 - "@types/resolve": 1.20.2 - deepmerge: ^4.2.2 - is-module: ^1.0.0 - resolve: ^1.22.1 + "@ardatan/sync-fetch": ^0.0.1 + "@graphql-tools/executor-graphql-ws": ^1.3.2 + "@graphql-tools/executor-http": ^1.1.9 + "@graphql-tools/executor-legacy-ws": ^1.1.7 + "@graphql-tools/utils": ^10.6.4 + "@graphql-tools/wrap": ^10.0.16 + "@types/ws": ^8.0.0 + "@whatwg-node/fetch": ^0.10.0 + isomorphic-ws: ^5.0.0 + tslib: ^2.4.0 + value-or-promise: ^1.0.11 + ws: ^8.17.1 peerDependencies: - rollup: ^2.78.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - checksum: 90e4e94b173e7edd57e374ac0cc0a69cc6f1b4507e83731132ac6fa1747d96a5648a48441e4452728429b6db5e67561439b7b2f4d2c6a941a33d38be56d871b4 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: fed280fb0afef3a883ea5ce765af992f3808f37983bc9a6b6a050c51d430e3b94131378db966c5c65f4d2c3ecb6031faef7097ac2a4e6d31601bddfba03b5403 languageName: node linkType: hard -"@rollup/plugin-yaml@npm:^4.0.0": - version: 4.1.2 - resolution: "@rollup/plugin-yaml@npm:4.1.2" +"@graphql-tools/utils@npm:8.9.0": + version: 8.9.0 + resolution: "@graphql-tools/utils@npm:8.9.0" dependencies: - "@rollup/pluginutils": ^5.0.1 - js-yaml: ^4.1.0 - tosource: ^2.0.0-alpha.3 + tslib: ^2.4.0 peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - checksum: a044bb4568a10712465553ea5f31c13a2b7bc371a7f8382014e6b8048c0a264f5645f83f4d70ce9ab46b75117b94cdc032b597e9315fd2adcd8f30637f44bbea + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 8d1d8a11722e211dc8723cd3fd7a97fa5401ab22146e4240a0f9d45547792476c34814ff914524578beec961db7b0ff23a6ddff8fe059764537e594cff35c906 languageName: node linkType: hard -"@rollup/pluginutils@npm:^4.1.1, @rollup/pluginutils@npm:^4.2.1": - version: 4.2.1 - resolution: "@rollup/pluginutils@npm:4.2.1" +"@graphql-tools/utils@npm:^10.0.0, @graphql-tools/utils@npm:^10.6.2, @graphql-tools/utils@npm:^10.6.4": + version: 10.6.4 + resolution: "@graphql-tools/utils@npm:10.6.4" dependencies: - estree-walker: ^2.0.1 - picomatch: ^2.2.2 - checksum: 6bc41f22b1a0f1efec3043899e4d3b6b1497b3dea4d94292d8f83b4cf07a1073ecbaedd562a22d11913ff7659f459677b01b09e9598a98936e746780ecc93a12 + "@graphql-typed-document-node/core": ^3.1.1 + cross-inspect: 1.0.1 + dset: ^3.1.2 + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: b3915ae1508f26fc777624fbeb93864981c29419a6fbcf72fbd28c4b5617bf90323d6198a84938d56c266f7de9bf74dca7672985642a1556c4a8854b3e3f7ff0 languageName: node linkType: hard -"@rollup/pluginutils@npm:^5.0.1, @rollup/pluginutils@npm:^5.0.2, @rollup/pluginutils@npm:^5.0.5, @rollup/pluginutils@npm:^5.1.0": - version: 5.1.3 - resolution: "@rollup/pluginutils@npm:5.1.3" +"@graphql-tools/utils@npm:^8.8.0": + version: 8.13.1 + resolution: "@graphql-tools/utils@npm:8.13.1" dependencies: - "@types/estree": ^1.0.0 - estree-walker: ^2.0.2 - picomatch: ^4.0.2 + tslib: ^2.4.0 peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - checksum: a6e9bac8ae94da39679dae390b53b43fe7a218f8fa2bfecf86e59be4da4ba02ac004f166daf55f03506e49108399394f13edeb62cce090f8cfc967b29f4738bf + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: ff04fdeb29e9ac596ea53386cd5b23cd741bb14c1997c6b0ba3c34ca165bd82b528a355e8c8e2ba726eb39e833ba9cbb0851ba0addb8c6d367089a1145bf9a49 languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.24.3": - version: 4.24.3 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.24.3" - conditions: os=android & cpu=arm +"@graphql-tools/wrap@npm:^10.0.16": + version: 10.0.26 + resolution: "@graphql-tools/wrap@npm:10.0.26" + dependencies: + "@graphql-tools/delegate": ^10.2.8 + "@graphql-tools/schema": ^10.0.11 + "@graphql-tools/utils": ^10.6.2 + tslib: ^2.8.1 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 353d7f98bf18592b4596b185421dc22c9290776bb4cc57964522adc49757f8a85aa0e42ee747ede9e8532a09aa7668410f7ae7547ee22d50f362ed8ccc9bbf9a languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.24.3": - version: 4.24.3 - resolution: "@rollup/rollup-android-arm64@npm:4.24.3" - conditions: os=android & cpu=arm64 +"@graphql-typed-document-node/core@npm:^3.1.1, @graphql-typed-document-node/core@npm:^3.2.0": + version: 3.2.0 + resolution: "@graphql-typed-document-node/core@npm:3.2.0" + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: fa44443accd28c8cf4cb96aaaf39d144a22e8b091b13366843f4e97d19c7bfeaf609ce3c7603a4aeffe385081eaf8ea245d078633a7324c11c5ec4b2011bb76d languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.24.3": - version: 4.24.3 - resolution: "@rollup/rollup-darwin-arm64@npm:4.24.3" - conditions: os=darwin & cpu=arm64 +"@grpc/grpc-js@npm:^1.10.9": + version: 1.12.5 + resolution: "@grpc/grpc-js@npm:1.12.5" + dependencies: + "@grpc/proto-loader": ^0.7.13 + "@js-sdsl/ordered-map": ^4.4.2 + checksum: 415bad10412b713f1f4094e6af3d2067d03794540fecc16cd3cdcd6079e4a632178da25485dfef9a07add8bf498cfccf1a54f8184d671eb256932c47cfe7f785 languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.24.3": - version: 4.24.3 - resolution: "@rollup/rollup-darwin-x64@npm:4.24.3" - conditions: os=darwin & cpu=x64 +"@grpc/proto-loader@npm:^0.7.13": + version: 0.7.13 + resolution: "@grpc/proto-loader@npm:0.7.13" + dependencies: + lodash.camelcase: ^4.3.0 + long: ^5.0.0 + protobufjs: ^7.2.5 + yargs: ^17.7.2 + bin: + proto-loader-gen-types: build/bin/proto-loader-gen-types.js + checksum: 399c1b8a4627f93dc31660d9636ea6bf58be5675cc7581e3df56a249369e5be02c6cd0d642c5332b0d5673bc8621619bc06fb045aa3e8f57383737b5d35930dc languageName: node linkType: hard -"@rollup/rollup-freebsd-arm64@npm:4.24.3": - version: 4.24.3 - resolution: "@rollup/rollup-freebsd-arm64@npm:4.24.3" - conditions: os=freebsd & cpu=arm64 +"@hapi/hoek@npm:^9.0.0, @hapi/hoek@npm:^9.3.0": + version: 9.3.0 + resolution: "@hapi/hoek@npm:9.3.0" + checksum: 4771c7a776242c3c022b168046af4e324d116a9d2e1d60631ee64f474c6e38d1bb07092d898bf95c7bc5d334c5582798a1456321b2e53ca817d4e7c88bc25b43 languageName: node linkType: hard -"@rollup/rollup-freebsd-x64@npm:4.24.3": - version: 4.24.3 - resolution: "@rollup/rollup-freebsd-x64@npm:4.24.3" - conditions: os=freebsd & cpu=x64 +"@hapi/topo@npm:^5.1.0": + version: 5.1.0 + resolution: "@hapi/topo@npm:5.1.0" + dependencies: + "@hapi/hoek": ^9.0.0 + checksum: 604dfd5dde76d5c334bd03f9001fce69c7ce529883acf92da96f4fe7e51221bf5e5110e964caca287a6a616ba027c071748ab636ff178ad750547fba611d6014 languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.24.3": - version: 4.24.3 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.24.3" - conditions: os=linux & cpu=arm & libc=glibc +"@headlessui/react@npm:^1.7.15": + version: 1.7.19 + resolution: "@headlessui/react@npm:1.7.19" + dependencies: + "@tanstack/react-virtual": ^3.0.0-beta.60 + client-only: ^0.0.1 + peerDependencies: + react: ^16 || ^17 || ^18 + react-dom: ^16 || ^17 || ^18 + checksum: 2a343a5fcf1f45e870cc94613231b89a8da78114001ffafa4751a0eceae7569ff9237aff1f2aedfa6f6e53ee3bb9ba5e5d19ebf1878fee3ff4f3c733fddc1087 languageName: node linkType: hard -"@rollup/rollup-linux-arm-musleabihf@npm:4.24.3": - version: 4.24.3 - resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.24.3" - conditions: os=linux & cpu=arm & libc=musl +"@httptoolkit/httpolyglot@npm:^2.2.1": + version: 2.2.2 + resolution: "@httptoolkit/httpolyglot@npm:2.2.2" + dependencies: + "@types/node": "*" + checksum: a08a7ef025bbcf2163dd2d3a9b2c4783c353bc5b0a8a07c65aef87fa530500dc77942db83e28e51bb5d1fc2cb992011622d05ae1347340aa4565c4eefa38ee22 languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.24.3": - version: 4.24.3 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.24.3" - conditions: os=linux & cpu=arm64 & libc=glibc +"@httptoolkit/subscriptions-transport-ws@npm:^0.11.2": + version: 0.11.2 + resolution: "@httptoolkit/subscriptions-transport-ws@npm:0.11.2" + dependencies: + backo2: ^1.0.2 + eventemitter3: ^3.1.0 + iterall: ^1.2.1 + symbol-observable: ^1.0.4 + ws: ^8.8.0 + peerDependencies: + graphql: ^15.7.2 || ^16.0.0 + checksum: a2d99b4d8e46b46fd5d4fac3456fa685dba7d876908e632c73af014fdcc92ae1f77f8c542e8b63ae747a164e9d2e4be95c5046665f9e7b5622f02dc6d7d04549 languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.24.3": - version: 4.24.3 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.24.3" - conditions: os=linux & cpu=arm64 & libc=musl +"@httptoolkit/websocket-stream@npm:^6.0.1": + version: 6.0.1 + resolution: "@httptoolkit/websocket-stream@npm:6.0.1" + dependencies: + "@types/ws": "*" + duplexify: ^3.5.1 + inherits: ^2.0.1 + isomorphic-ws: ^4.0.1 + readable-stream: ^2.3.3 + safe-buffer: ^5.1.2 + ws: "*" + xtend: ^4.0.0 + checksum: e70059c24499abab695e7bc269aefc1a751d161296975a4af932577497c4ecd66b7745dc0c63608e06989442db996d76e563bce08156563bac7bc3411ad9bcee languageName: node linkType: hard -"@rollup/rollup-linux-powerpc64le-gnu@npm:4.24.3": - version: 4.24.3 - resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.24.3" - conditions: os=linux & cpu=ppc64 & libc=glibc +"@humanwhocodes/config-array@npm:^0.13.0": + version: 0.13.0 + resolution: "@humanwhocodes/config-array@npm:0.13.0" + dependencies: + "@humanwhocodes/object-schema": ^2.0.3 + debug: ^4.3.1 + minimatch: ^3.0.5 + checksum: eae69ff9134025dd2924f0b430eb324981494be26f0fddd267a33c28711c4db643242cf9fddf7dadb9d16c96b54b2d2c073e60a56477df86e0173149313bd5d6 languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-gnu@npm:4.24.3": - version: 4.24.3 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.24.3" - conditions: os=linux & cpu=riscv64 & libc=glibc +"@humanwhocodes/module-importer@npm:^1.0.1": + version: 1.0.1 + resolution: "@humanwhocodes/module-importer@npm:1.0.1" + checksum: 0fd22007db8034a2cdf2c764b140d37d9020bbfce8a49d3ec5c05290e77d4b0263b1b972b752df8c89e5eaa94073408f2b7d977aed131faf6cf396ebb5d7fb61 languageName: node linkType: hard -"@rollup/rollup-linux-s390x-gnu@npm:4.24.3": - version: 4.24.3 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.24.3" - conditions: os=linux & cpu=s390x & libc=glibc +"@humanwhocodes/object-schema@npm:^2.0.3": + version: 2.0.3 + resolution: "@humanwhocodes/object-schema@npm:2.0.3" + checksum: d3b78f6c5831888c6ecc899df0d03bcc25d46f3ad26a11d7ea52944dc36a35ef543fad965322174238d677a43d5c694434f6607532cff7077062513ad7022631 languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.24.3": - version: 4.24.3 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.24.3" - conditions: os=linux & cpu=x64 & libc=glibc +"@ianvs/prettier-plugin-sort-imports@npm:^4.3.1": + version: 4.4.0 + resolution: "@ianvs/prettier-plugin-sort-imports@npm:4.4.0" + dependencies: + "@babel/generator": ^7.26.2 + "@babel/parser": ^7.26.2 + "@babel/traverse": ^7.25.9 + "@babel/types": ^7.26.0 + semver: ^7.5.2 + peerDependencies: + "@vue/compiler-sfc": 2.7.x || 3.x + prettier: 2 || 3 + peerDependenciesMeta: + "@vue/compiler-sfc": + optional: true + checksum: 6fda2b81fc3fc5d299ab491129aa5422fcdae9c23b213eae6c3caa26ab6c189fcd61386f020d4c686dfcb036825dd90a8d68bbb2da06655e893cf3c4274e2ed9 languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.24.3": - version: 4.24.3 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.24.3" - conditions: os=linux & cpu=x64 & libc=musl +"@internal/kiali@workspace:.": + version: 0.0.0-use.local + resolution: "@internal/kiali@workspace:." + dependencies: + "@backstage-community/plugin-kiali": "workspace:^" + "@backstage-community/plugin-kiali-backend": "workspace:^" + "@backstage/cli": ^0.28.0 + "@backstage/e2e-test-utils": ^0.1.1 + "@backstage/repo-tools": ^0.10.0 + "@changesets/cli": ^2.27.1 + "@ianvs/prettier-plugin-sort-imports": ^4.3.1 + "@spotify/prettier-config": ^12.0.0 + "@types/deep-freeze": ^0.1.5 + concurrently: ^8.2.2 + knip: ^5.27.4 + node-gyp: ^9.0.0 + prettier: ^2.3.2 + typescript: ~5.3.0 + languageName: unknown + linkType: soft + +"@ioredis/commands@npm:^1.1.1": + version: 1.2.0 + resolution: "@ioredis/commands@npm:1.2.0" + checksum: 9b20225ba36ef3e5caf69b3c0720597c3016cc9b1e157f519ea388f621dd9037177f84cfe7e25c4c32dad7dd90c70ff9123cd411f747e053cf292193c9c461e2 languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.24.3": - version: 4.24.3 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.24.3" - conditions: os=win32 & cpu=arm64 +"@isaacs/cliui@npm:^8.0.2": + version: 8.0.2 + resolution: "@isaacs/cliui@npm:8.0.2" + dependencies: + string-width: ^5.1.2 + string-width-cjs: "npm:string-width@^4.2.0" + strip-ansi: ^7.0.1 + strip-ansi-cjs: "npm:strip-ansi@^6.0.1" + wrap-ansi: ^8.1.0 + wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" + checksum: 4a473b9b32a7d4d3cfb7a614226e555091ff0c5a29a1734c28c72a182c2f6699b26fc6b5c2131dfd841e86b185aea714c72201d7c98c2fba5f17709333a67aeb languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.24.3": - version: 4.24.3 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.24.3" - conditions: os=win32 & cpu=ia32 +"@isaacs/fs-minipass@npm:^4.0.0": + version: 4.0.1 + resolution: "@isaacs/fs-minipass@npm:4.0.1" + dependencies: + minipass: ^7.0.4 + checksum: 5d36d289960e886484362d9eb6a51d1ea28baed5f5d0140bbe62b99bac52eaf06cc01c2bc0d3575977962f84f6b2c4387b043ee632216643d4787b0999465bf2 languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.24.3": - version: 4.24.3 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.24.3" - conditions: os=win32 & cpu=x64 +"@istanbuljs/load-nyc-config@npm:^1.0.0": + version: 1.1.0 + resolution: "@istanbuljs/load-nyc-config@npm:1.1.0" + dependencies: + camelcase: ^5.3.1 + find-up: ^4.1.0 + get-package-type: ^0.1.0 + js-yaml: ^3.13.1 + resolve-from: ^5.0.0 + checksum: d578da5e2e804d5c93228450a1380e1a3c691de4953acc162f387b717258512a3e07b83510a936d9fab03eac90817473917e24f5d16297af3867f59328d58568 languageName: node linkType: hard -"@rtsao/scc@npm:^1.1.0": - version: 1.1.0 - resolution: "@rtsao/scc@npm:1.1.0" - checksum: 17d04adf404e04c1e61391ed97bca5117d4c2767a76ae3e879390d6dec7b317fcae68afbf9e98badee075d0b64fa60f287729c4942021b4d19cd01db77385c01 +"@istanbuljs/schema@npm:^0.1.2, @istanbuljs/schema@npm:^0.1.3": + version: 0.1.3 + resolution: "@istanbuljs/schema@npm:0.1.3" + checksum: 5282759d961d61350f33d9118d16bcaed914ebf8061a52f4fa474b2cb08720c9c81d165e13b82f2e5a8a212cc5af482f0c6fc1ac27b9e067e5394c9a6ed186c9 languageName: node linkType: hard -"@rushstack/node-core-library@npm:5.9.0": - version: 5.9.0 - resolution: "@rushstack/node-core-library@npm:5.9.0" +"@jest-mock/express@npm:^2.0.1": + version: 2.1.0 + resolution: "@jest-mock/express@npm:2.1.0" dependencies: - ajv: ~8.13.0 - ajv-draft-04: ~1.0.0 - ajv-formats: ~3.0.1 - fs-extra: ~7.0.1 - import-lazy: ~4.0.0 - jju: ~1.4.0 - resolve: ~1.22.1 - semver: ~7.5.4 - peerDependencies: - "@types/node": "*" - peerDependenciesMeta: - "@types/node": - optional: true - checksum: beb558f118a796260f7df38b48b6669a94bbdb9711715785e0c5a426bd3a38c14721c03fc05e7a33883ec25a331ef0fb9e36438bb451ace021a7248a4f1fc74b + "@types/express": ^4.17.21 + checksum: 305b72c214c1e80ed16271aa48e4d6d906346f5221a4e873d1e8ae48c32c2316cb88bed819b195c934c339b9ab41d4b34c4e41ac66feefe980d2cd16bc0b6d20 languageName: node linkType: hard -"@rushstack/rig-package@npm:0.5.3": - version: 0.5.3 - resolution: "@rushstack/rig-package@npm:0.5.3" +"@jest/console@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/console@npm:29.7.0" dependencies: - resolve: ~1.22.1 - strip-json-comments: ~3.1.1 - checksum: bf3eadfc434bff273893efd22b319fe159d0e3b95729cb32ce3ad9f4ab4b6fabe3c4dd7f03ee0ddc7b480f0d989e908349eae6d6dce3500f896728a085af7aab + "@jest/types": ^29.6.3 + "@types/node": "*" + chalk: ^4.0.0 + jest-message-util: ^29.7.0 + jest-util: ^29.7.0 + slash: ^3.0.0 + checksum: 0e3624e32c5a8e7361e889db70b170876401b7d70f509a2538c31d5cd50deb0c1ae4b92dc63fe18a0902e0a48c590c21d53787a0df41a52b34fa7cab96c384d6 languageName: node linkType: hard -"@rushstack/terminal@npm:0.14.2": - version: 0.14.2 - resolution: "@rushstack/terminal@npm:0.14.2" +"@jest/core@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/core@npm:29.7.0" dependencies: - "@rushstack/node-core-library": 5.9.0 - supports-color: ~8.1.1 - peerDependencies: + "@jest/console": ^29.7.0 + "@jest/reporters": ^29.7.0 + "@jest/test-result": ^29.7.0 + "@jest/transform": ^29.7.0 + "@jest/types": ^29.6.3 "@types/node": "*" + ansi-escapes: ^4.2.1 + chalk: ^4.0.0 + ci-info: ^3.2.0 + exit: ^0.1.2 + graceful-fs: ^4.2.9 + jest-changed-files: ^29.7.0 + jest-config: ^29.7.0 + jest-haste-map: ^29.7.0 + jest-message-util: ^29.7.0 + jest-regex-util: ^29.6.3 + jest-resolve: ^29.7.0 + jest-resolve-dependencies: ^29.7.0 + jest-runner: ^29.7.0 + jest-runtime: ^29.7.0 + jest-snapshot: ^29.7.0 + jest-util: ^29.7.0 + jest-validate: ^29.7.0 + jest-watcher: ^29.7.0 + micromatch: ^4.0.4 + pretty-format: ^29.7.0 + slash: ^3.0.0 + strip-ansi: ^6.0.0 + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: - "@types/node": + node-notifier: optional: true - checksum: 90d38e6979737dcd97fdfdcebcc378194eed32a994341846235769273b6446b702e53e51e18fc8a373e8ed989c5622216aa6804198b8c7ae0e65cd6b103b90a1 + checksum: af759c9781cfc914553320446ce4e47775ae42779e73621c438feb1e4231a5d4862f84b1d8565926f2d1aab29b3ec3dcfdc84db28608bdf5f29867124ebcfc0d languageName: node linkType: hard -"@rushstack/ts-command-line@npm:4.23.0": - version: 4.23.0 - resolution: "@rushstack/ts-command-line@npm:4.23.0" +"@jest/create-cache-key-function@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/create-cache-key-function@npm:29.7.0" dependencies: - "@rushstack/terminal": 0.14.2 - "@types/argparse": 1.0.38 - argparse: ~1.0.9 - string-argv: ~0.3.1 - checksum: 4f3d77c5b2998bbc551d02e882f0c7b8e7aed0d97ad6e4ee45b2d6281a209087f738fc1a021397088ffbe666c4eae462c1d8c4a14dc031dddee2af055b12f794 - languageName: node - linkType: hard - -"@sinclair/typebox@npm:^0.27.8": - version: 0.27.8 - resolution: "@sinclair/typebox@npm:0.27.8" - checksum: 00bd7362a3439021aa1ea51b0e0d0a0e8ca1351a3d54c606b115fdcc49b51b16db6e5f43b4fe7a28c38688523e22a94d49dd31168868b655f0d4d50f032d07a1 + "@jest/types": ^29.6.3 + checksum: 681bc761fa1d6fa3dd77578d444f97f28296ea80755e90e46d1c8fa68661b9e67f54dd38b988742db636d26cf160450dc6011892cec98b3a7ceb58cad8ff3aae languageName: node linkType: hard -"@sinonjs/commons@npm:^3.0.0": - version: 3.0.1 - resolution: "@sinonjs/commons@npm:3.0.1" +"@jest/environment@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/environment@npm:29.7.0" dependencies: - type-detect: 4.0.8 - checksum: a7c3e7cc612352f4004873747d9d8b2d4d90b13a6d483f685598c945a70e734e255f1ca5dc49702515533c403b32725defff148177453b3f3915bcb60e9d4601 + "@jest/fake-timers": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/node": "*" + jest-mock: ^29.7.0 + checksum: 6fb398143b2543d4b9b8d1c6dbce83fa5247f84f550330604be744e24c2bd2178bb893657d62d1b97cf2f24baf85c450223f8237cccb71192c36a38ea2272934 languageName: node linkType: hard -"@sinonjs/fake-timers@npm:^10.0.2": - version: 10.3.0 - resolution: "@sinonjs/fake-timers@npm:10.3.0" +"@jest/expect-utils@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/expect-utils@npm:29.7.0" dependencies: - "@sinonjs/commons": ^3.0.0 - checksum: 614d30cb4d5201550c940945d44c9e0b6d64a888ff2cd5b357f95ad6721070d6b8839cd10e15b76bf5e14af0bcc1d8f9ec00d49a46318f1f669a4bec1d7f3148 + jest-get-type: ^29.6.3 + checksum: 75eb177f3d00b6331bcaa057e07c0ccb0733a1d0a1943e1d8db346779039cb7f103789f16e502f888a3096fb58c2300c38d1f3748b36a7fa762eb6f6d1b160ed languageName: node linkType: hard -"@smithy/abort-controller@npm:^3.1.6": - version: 3.1.6 - resolution: "@smithy/abort-controller@npm:3.1.6" +"@jest/expect@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/expect@npm:29.7.0" dependencies: - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: abba34cc47b6f7951402da1f94465616b84dedf55e0b0467b53f7848b9cb3e82b94869fa637278aa2f65809613e872582791053fd23299e026edada4a5ec1c1c + expect: ^29.7.0 + jest-snapshot: ^29.7.0 + checksum: a01cb85fd9401bab3370618f4b9013b90c93536562222d920e702a0b575d239d74cecfe98010aaec7ad464f67cf534a353d92d181646a4b792acaa7e912ae55e languageName: node linkType: hard -"@smithy/chunked-blob-reader-native@npm:^3.0.1": - version: 3.0.1 - resolution: "@smithy/chunked-blob-reader-native@npm:3.0.1" +"@jest/fake-timers@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/fake-timers@npm:29.7.0" dependencies: - "@smithy/util-base64": ^3.0.0 - tslib: ^2.6.2 - checksum: b133aebc7662923f88eb859acf3dee95d54fb99effef3ed34384e137d479a8e88549f7888d037919f2821480689ea57892c9d7eeb730fa622ee9f55e3bb9a684 + "@jest/types": ^29.6.3 + "@sinonjs/fake-timers": ^10.0.2 + "@types/node": "*" + jest-message-util: ^29.7.0 + jest-mock: ^29.7.0 + jest-util: ^29.7.0 + checksum: caf2bbd11f71c9241b458d1b5a66cbe95debc5a15d96442444b5d5c7ba774f523c76627c6931cca5e10e76f0d08761f6f1f01a608898f4751a0eee54fc3d8d00 languageName: node linkType: hard -"@smithy/chunked-blob-reader@npm:^4.0.0": - version: 4.0.0 - resolution: "@smithy/chunked-blob-reader@npm:4.0.0" +"@jest/globals@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/globals@npm:29.7.0" dependencies: - tslib: ^2.6.2 - checksum: 45107be7b56efc598e445bf73e45694be10b933dcd5c0c38910311c463eff473e1eb82452b11ed6772986b518565ee8f3bec68cdfefe7c4a9a0c4b9968b582d8 + "@jest/environment": ^29.7.0 + "@jest/expect": ^29.7.0 + "@jest/types": ^29.6.3 + jest-mock: ^29.7.0 + checksum: 97dbb9459135693ad3a422e65ca1c250f03d82b2a77f6207e7fa0edd2c9d2015fbe4346f3dc9ebff1678b9d8da74754d4d440b7837497f8927059c0642a22123 languageName: node linkType: hard -"@smithy/config-resolver@npm:^3.0.10, @smithy/config-resolver@npm:^3.0.9": - version: 3.0.10 - resolution: "@smithy/config-resolver@npm:3.0.10" - dependencies: - "@smithy/node-config-provider": ^3.1.9 - "@smithy/types": ^3.6.0 - "@smithy/util-config-provider": ^3.0.0 - "@smithy/util-middleware": ^3.0.8 - tslib: ^2.6.2 - checksum: 55c2355db7eabfd70f0bf288d58cb0238f43b754d91f46febf7fd04617e6107d26e2899ede2b37fbd977980bb12fdbdb688fc5f53654202e946fe3c258cef5d1 +"@jest/reporters@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/reporters@npm:29.7.0" + dependencies: + "@bcoe/v8-coverage": ^0.2.3 + "@jest/console": ^29.7.0 + "@jest/test-result": ^29.7.0 + "@jest/transform": ^29.7.0 + "@jest/types": ^29.6.3 + "@jridgewell/trace-mapping": ^0.3.18 + "@types/node": "*" + chalk: ^4.0.0 + collect-v8-coverage: ^1.0.0 + exit: ^0.1.2 + glob: ^7.1.3 + graceful-fs: ^4.2.9 + istanbul-lib-coverage: ^3.0.0 + istanbul-lib-instrument: ^6.0.0 + istanbul-lib-report: ^3.0.0 + istanbul-lib-source-maps: ^4.0.0 + istanbul-reports: ^3.1.3 + jest-message-util: ^29.7.0 + jest-util: ^29.7.0 + jest-worker: ^29.7.0 + slash: ^3.0.0 + string-length: ^4.0.1 + strip-ansi: ^6.0.0 + v8-to-istanbul: ^9.0.1 + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + checksum: 7eadabd62cc344f629024b8a268ecc8367dba756152b761bdcb7b7e570a3864fc51b2a9810cd310d85e0a0173ef002ba4528d5ea0329fbf66ee2a3ada9c40455 languageName: node linkType: hard -"@smithy/core@npm:^2.4.8, @smithy/core@npm:^2.5.1": - version: 2.5.1 - resolution: "@smithy/core@npm:2.5.1" +"@jest/schemas@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/schemas@npm:29.6.3" dependencies: - "@smithy/middleware-serde": ^3.0.8 - "@smithy/protocol-http": ^4.1.5 - "@smithy/types": ^3.6.0 - "@smithy/util-body-length-browser": ^3.0.0 - "@smithy/util-middleware": ^3.0.8 - "@smithy/util-stream": ^3.2.1 - "@smithy/util-utf8": ^3.0.0 - tslib: ^2.6.2 - checksum: 9175f48eca64f6b304335e32e09c6276aadf7d26cb9180da0a120a2b07c12d8dbe51de2ccce78e98c60729ce4eefe28e7ca95c169432a8049560564d780d1a81 + "@sinclair/typebox": ^0.27.8 + checksum: 910040425f0fc93cd13e68c750b7885590b8839066dfa0cd78e7def07bbb708ad869381f725945d66f2284de5663bbecf63e8fdd856e2ae6e261ba30b1687e93 languageName: node linkType: hard -"@smithy/credential-provider-imds@npm:^3.2.4, @smithy/credential-provider-imds@npm:^3.2.5": - version: 3.2.5 - resolution: "@smithy/credential-provider-imds@npm:3.2.5" +"@jest/source-map@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/source-map@npm:29.6.3" dependencies: - "@smithy/node-config-provider": ^3.1.9 - "@smithy/property-provider": ^3.1.8 - "@smithy/types": ^3.6.0 - "@smithy/url-parser": ^3.0.8 - tslib: ^2.6.2 - checksum: 4c8941e3c3806f605930c31e461b0b0fd6384f782c7df92b35e30581eca02d7c4c6d6f2b1c5cdb08fcf4823d98f0ceadc8481def968f1266f761df5dac672d8f + "@jridgewell/trace-mapping": ^0.3.18 + callsites: ^3.0.0 + graceful-fs: ^4.2.9 + checksum: bcc5a8697d471396c0003b0bfa09722c3cd879ad697eb9c431e6164e2ea7008238a01a07193dfe3cbb48b1d258eb7251f6efcea36f64e1ebc464ea3c03ae2deb languageName: node linkType: hard -"@smithy/eventstream-codec@npm:^3.1.7": - version: 3.1.7 - resolution: "@smithy/eventstream-codec@npm:3.1.7" +"@jest/test-result@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/test-result@npm:29.7.0" dependencies: - "@aws-crypto/crc32": 5.2.0 - "@smithy/types": ^3.6.0 - "@smithy/util-hex-encoding": ^3.0.0 - tslib: ^2.6.2 - checksum: e0a3b187e984ca6a248dbd591f9c4d5b981df5018c46c4cb9ebf47cf5f354be124471a121e9dc9c25ce80e089f2ed5847a15666e89c83327d7e25ea4d46fb92e + "@jest/console": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/istanbul-lib-coverage": ^2.0.0 + collect-v8-coverage: ^1.0.0 + checksum: 67b6317d526e335212e5da0e768e3b8ab8a53df110361b80761353ad23b6aea4432b7c5665bdeb87658ea373b90fb1afe02ed3611ef6c858c7fba377505057fa languageName: node linkType: hard -"@smithy/eventstream-serde-browser@npm:^3.0.10": - version: 3.0.11 - resolution: "@smithy/eventstream-serde-browser@npm:3.0.11" +"@jest/test-sequencer@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/test-sequencer@npm:29.7.0" dependencies: - "@smithy/eventstream-serde-universal": ^3.0.10 - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: ca430cd9541889f1e22a508247c52f84387b51c1c580bdd7acd93ca74347bcaaf1cdfbf04709ce3667afcfa0e3602bbfcb018a6290b3966411a3aa48a38f3aa7 + "@jest/test-result": ^29.7.0 + graceful-fs: ^4.2.9 + jest-haste-map: ^29.7.0 + slash: ^3.0.0 + checksum: 73f43599017946be85c0b6357993b038f875b796e2f0950487a82f4ebcb115fa12131932dd9904026b4ad8be131fe6e28bd8d0aa93b1563705185f9804bff8bd languageName: node linkType: hard -"@smithy/eventstream-serde-config-resolver@npm:^3.0.7": - version: 3.0.8 - resolution: "@smithy/eventstream-serde-config-resolver@npm:3.0.8" +"@jest/transform@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/transform@npm:29.7.0" dependencies: - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: 44da1b399e296c713643e60ff7fbd34a62c8bba147ea515e6ba98293df11275b62ada04307750d8f8015f717bbe13d317453f47e0d02dc714debc4e043eb7105 + "@babel/core": ^7.11.6 + "@jest/types": ^29.6.3 + "@jridgewell/trace-mapping": ^0.3.18 + babel-plugin-istanbul: ^6.1.1 + chalk: ^4.0.0 + convert-source-map: ^2.0.0 + fast-json-stable-stringify: ^2.1.0 + graceful-fs: ^4.2.9 + jest-haste-map: ^29.7.0 + jest-regex-util: ^29.6.3 + jest-util: ^29.7.0 + micromatch: ^4.0.4 + pirates: ^4.0.4 + slash: ^3.0.0 + write-file-atomic: ^4.0.2 + checksum: 0f8ac9f413903b3cb6d240102db848f2a354f63971ab885833799a9964999dd51c388162106a807f810071f864302cdd8e3f0c241c29ce02d85a36f18f3f40ab languageName: node linkType: hard -"@smithy/eventstream-serde-node@npm:^3.0.9": - version: 3.0.10 - resolution: "@smithy/eventstream-serde-node@npm:3.0.10" +"@jest/types@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/types@npm:29.6.3" dependencies: - "@smithy/eventstream-serde-universal": ^3.0.10 - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: 8e8f71bfa25d017f7914ad74258cf5f8c68a6bdc33ab32b126d95e0cb7ea796488d06405695f90e8af90668302e282ac8d4e66e70eca48d92d0cfa3b8e9592f2 + "@jest/schemas": ^29.6.3 + "@types/istanbul-lib-coverage": ^2.0.0 + "@types/istanbul-reports": ^3.0.0 + "@types/node": "*" + "@types/yargs": ^17.0.8 + chalk: ^4.0.0 + checksum: a0bcf15dbb0eca6bdd8ce61a3fb055349d40268622a7670a3b2eb3c3dbafe9eb26af59938366d520b86907b9505b0f9b29b85cec11579a9e580694b87cd90fcc languageName: node linkType: hard -"@smithy/eventstream-serde-universal@npm:^3.0.10": - version: 3.0.10 - resolution: "@smithy/eventstream-serde-universal@npm:3.0.10" +"@jridgewell/gen-mapping@npm:^0.3.2, @jridgewell/gen-mapping@npm:^0.3.5": + version: 0.3.8 + resolution: "@jridgewell/gen-mapping@npm:0.3.8" dependencies: - "@smithy/eventstream-codec": ^3.1.7 - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: ee3717312841438f5e173866475f47aa7a56a9426657bc89fffc497c15356617688ed17d6a09533918c11fbff68ce6f7998fd9d746030a9bc25a5e353ca8e9c0 + "@jridgewell/set-array": ^1.2.1 + "@jridgewell/sourcemap-codec": ^1.4.10 + "@jridgewell/trace-mapping": ^0.3.24 + checksum: c0687b5227461717aa537fe71a42e356bcd1c43293b3353796a148bf3b0d6f59109def46c22f05b60e29a46f19b2e4676d027959a7c53a6c92b9d5b0d87d0420 languageName: node linkType: hard -"@smithy/fetch-http-handler@npm:^3.2.9": - version: 3.2.9 - resolution: "@smithy/fetch-http-handler@npm:3.2.9" - dependencies: - "@smithy/protocol-http": ^4.1.4 - "@smithy/querystring-builder": ^3.0.7 - "@smithy/types": ^3.5.0 - "@smithy/util-base64": ^3.0.0 - tslib: ^2.6.2 - checksum: 3b8eed12bff9d39e23989ea424e112530e01c81f983f15a3bfc4265baa06feb230267d095588705c5a8002cc4a2bfcd834b0341bff60a6236dcc24599ecf8327 +"@jridgewell/resolve-uri@npm:^3.0.3, @jridgewell/resolve-uri@npm:^3.1.0": + version: 3.1.2 + resolution: "@jridgewell/resolve-uri@npm:3.1.2" + checksum: 83b85f72c59d1c080b4cbec0fef84528963a1b5db34e4370fa4bd1e3ff64a0d80e0cee7369d11d73c704e0286fb2865b530acac7a871088fbe92b5edf1000870 languageName: node linkType: hard -"@smithy/fetch-http-handler@npm:^4.0.0": - version: 4.0.0 - resolution: "@smithy/fetch-http-handler@npm:4.0.0" - dependencies: - "@smithy/protocol-http": ^4.1.5 - "@smithy/querystring-builder": ^3.0.8 - "@smithy/types": ^3.6.0 - "@smithy/util-base64": ^3.0.0 - tslib: ^2.6.2 - checksum: 43fc88515227e0d66b6b6a56a8e7a7f9c9690b32c51265859d40c1f4ace3a8a9ebba78e095715fe85a508d32c4f237c09f722e1e0c86d15a3fc81edc961a5051 +"@jridgewell/set-array@npm:^1.2.1": + version: 1.2.1 + resolution: "@jridgewell/set-array@npm:1.2.1" + checksum: 832e513a85a588f8ed4f27d1279420d8547743cc37fcad5a5a76fc74bb895b013dfe614d0eed9cb860048e6546b798f8f2652020b4b2ba0561b05caa8c654b10 languageName: node linkType: hard -"@smithy/hash-blob-browser@npm:^3.1.6": - version: 3.1.7 - resolution: "@smithy/hash-blob-browser@npm:3.1.7" +"@jridgewell/source-map@npm:^0.3.3": + version: 0.3.6 + resolution: "@jridgewell/source-map@npm:0.3.6" dependencies: - "@smithy/chunked-blob-reader": ^4.0.0 - "@smithy/chunked-blob-reader-native": ^3.0.1 - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: d1e790e63147357f1c5b210cacf727f6ad75c78d8246c98a1d9af17a757ce9d2621a0a21e5171b4de9526ce731db15a1288c489c6f396d54314f74a29d667ae4 + "@jridgewell/gen-mapping": ^0.3.5 + "@jridgewell/trace-mapping": ^0.3.25 + checksum: c9dc7d899397df95e3c9ec287b93c0b56f8e4453cd20743e2b9c8e779b1949bc3cccf6c01bb302779e46560eb45f62ea38d19fedd25370d814734268450a9f30 languageName: node linkType: hard -"@smithy/hash-node@npm:^3.0.7": - version: 3.0.8 - resolution: "@smithy/hash-node@npm:3.0.8" - dependencies: - "@smithy/types": ^3.6.0 - "@smithy/util-buffer-from": ^3.0.0 - "@smithy/util-utf8": ^3.0.0 - tslib: ^2.6.2 - checksum: 9a2e2e8ea044008345e64406a5ecbc23a507b00eae42e71455f0b05c638a21da57a68e43d73254236203187d7943b864c750fc62f95825cc5340dd95767530c3 +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.15, @jridgewell/sourcemap-codec@npm:^1.5.0": + version: 1.5.0 + resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" + checksum: 05df4f2538b3b0f998ea4c1cd34574d0feba216fa5d4ccaef0187d12abf82eafe6021cec8b49f9bb4d90f2ba4582ccc581e72986a5fcf4176ae0cfeb04cf52ec languageName: node linkType: hard -"@smithy/hash-stream-node@npm:^3.1.6": - version: 3.1.7 - resolution: "@smithy/hash-stream-node@npm:3.1.7" +"@jridgewell/trace-mapping@npm:0.3.9": + version: 0.3.9 + resolution: "@jridgewell/trace-mapping@npm:0.3.9" dependencies: - "@smithy/types": ^3.6.0 - "@smithy/util-utf8": ^3.0.0 - tslib: ^2.6.2 - checksum: 2bd580a8759a68c991fa5817d47e828029648a870ad52da8ba175819d6324603934e0d34b83139ac21ddb265f9adcaffbd696105ca0783b193fd5805dc3e3ca3 + "@jridgewell/resolve-uri": ^3.0.3 + "@jridgewell/sourcemap-codec": ^1.4.10 + checksum: d89597752fd88d3f3480845691a05a44bd21faac18e2185b6f436c3b0fd0c5a859fbbd9aaa92050c4052caf325ad3e10e2e1d1b64327517471b7d51babc0ddef languageName: node linkType: hard -"@smithy/invalid-dependency@npm:^3.0.7": - version: 3.0.8 - resolution: "@smithy/invalid-dependency@npm:3.0.8" +"@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: - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: ad55921e703ea3396a7d03b4515c2c0100d3c494865594a8a73b160e2913cac442d61a2545bcb248fedf00bb150cce2c33827d1d12527e34070e7fd8e114d2d6 + "@jridgewell/resolve-uri": ^3.1.0 + "@jridgewell/sourcemap-codec": ^1.4.14 + checksum: 9d3c40d225e139987b50c48988f8717a54a8c994d8a948ee42e1412e08988761d0754d7d10b803061cc3aebf35f92a5dbbab493bd0e1a9ef9e89a2130e83ba34 languageName: node linkType: hard -"@smithy/is-array-buffer@npm:^2.2.0": - version: 2.2.0 - resolution: "@smithy/is-array-buffer@npm:2.2.0" - dependencies: - tslib: ^2.6.2 - checksum: cd12c2e27884fec89ca8966d33c9dc34d3234efe89b33a9b309c61ebcde463e6f15f6a02d31d4fddbfd6e5904743524ca5b95021b517b98fe10957c2da0cd5fc +"@js-sdsl/ordered-map@npm:^4.4.2": + version: 4.4.2 + resolution: "@js-sdsl/ordered-map@npm:4.4.2" + checksum: a927ae4ff8565ecb75355cc6886a4f8fadbf2af1268143c96c0cce3ba01261d241c3f4ba77f21f3f017a00f91dfe9e0673e95f830255945c80a0e96c6d30508a languageName: node linkType: hard -"@smithy/is-array-buffer@npm:^3.0.0": - version: 3.0.0 - resolution: "@smithy/is-array-buffer@npm:3.0.0" - dependencies: - tslib: ^2.6.2 - checksum: ce7440fcb1ce3c46722cff11c33e2f62a9df86d74fa2054a8e6b540302a91211cf6e4e3b1b7aac7030c6c8909158c1b6867c394201fa8afc6b631979956610e5 +"@jsdevtools/ono@npm:7.1.3, @jsdevtools/ono@npm:^7.1.3": + version: 7.1.3 + resolution: "@jsdevtools/ono@npm:7.1.3" + checksum: 2297fcd472ba810bffe8519d2249171132844c7174f3a16634f9260761c8c78bc0428a4190b5b6d72d45673c13918ab9844d706c3ed4ef8f62ab11a2627a08ad languageName: node linkType: hard -"@smithy/md5-js@npm:^3.0.7": - version: 3.0.8 - resolution: "@smithy/md5-js@npm:3.0.8" - dependencies: - "@smithy/types": ^3.6.0 - "@smithy/util-utf8": ^3.0.0 - tslib: ^2.6.2 - checksum: 3159a01ff4fab7ebbfa41c2ba6baa5f4c2333dafff6232dea956fc82a6354ad97a70c67f4a28e7c919a5e6be418a3c2427073948739941b194ab9bd238e13290 +"@jsep-plugin/assignment@npm:^1.3.0": + version: 1.3.0 + resolution: "@jsep-plugin/assignment@npm:1.3.0" + peerDependencies: + jsep: ^0.4.0||^1.0.0 + checksum: 5549497d403a6c00969d61202a6d3dafc5a349929d190a524363dcfacb3436dbda3d9f88b2ec1330247a594ad3c5f1c17b0997769d0b206802281bad6cf9a410 languageName: node linkType: hard -"@smithy/middleware-content-length@npm:^3.0.9": - version: 3.0.10 - resolution: "@smithy/middleware-content-length@npm:3.0.10" - dependencies: - "@smithy/protocol-http": ^4.1.5 - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: 776fd9014240109328b6823be8649322390bde7aa468750920be3e6ed268a4e380f5b3fcfbe15b2b8af1b6e4b4fedda9a446b76cc247ca252b95380646ac80b5 +"@jsep-plugin/regex@npm:^1.0.1, @jsep-plugin/regex@npm:^1.0.4": + version: 1.0.4 + resolution: "@jsep-plugin/regex@npm:1.0.4" + peerDependencies: + jsep: ^0.4.0||^1.0.0 + checksum: 78ef01554535ac6c108851a2a6d86377bce10de01a263ad7b31f9b37c8aa9fc6c49f24b753e5da7d771c5921c913e43c1c33e0bc0fa5d02562d906c83a237836 languageName: node linkType: hard -"@smithy/middleware-endpoint@npm:^3.1.4, @smithy/middleware-endpoint@npm:^3.2.1": - version: 3.2.1 - resolution: "@smithy/middleware-endpoint@npm:3.2.1" - dependencies: - "@smithy/core": ^2.5.1 - "@smithy/middleware-serde": ^3.0.8 - "@smithy/node-config-provider": ^3.1.9 - "@smithy/shared-ini-file-loader": ^3.1.9 - "@smithy/types": ^3.6.0 - "@smithy/url-parser": ^3.0.8 - "@smithy/util-middleware": ^3.0.8 - tslib: ^2.6.2 - checksum: acc41e1b665b6a0c3cf2952a44b4cd1ce980866b44fe4b0ed9208a6067c3aa15ebe646623b14375be6c04ab73fa74fb95eeeca6905fc27092ce93495c77d8b9b +"@jsep-plugin/ternary@npm:^1.0.2": + version: 1.1.4 + resolution: "@jsep-plugin/ternary@npm:1.1.4" + peerDependencies: + jsep: ^0.4.0||^1.0.0 + checksum: 2b6ece0adeb9e21fc34ff0a868ca7698a89c1328b61a233dcff5b28d9eb3f86b2710ab23a9928408b50cbe69e7d8b2f73e166d8d9c0d8601baaf8a174139a185 languageName: node linkType: hard -"@smithy/middleware-retry@npm:^3.0.23": - version: 3.0.25 - resolution: "@smithy/middleware-retry@npm:3.0.25" - dependencies: - "@smithy/node-config-provider": ^3.1.9 - "@smithy/protocol-http": ^4.1.5 - "@smithy/service-error-classification": ^3.0.8 - "@smithy/smithy-client": ^3.4.2 - "@smithy/types": ^3.6.0 - "@smithy/util-middleware": ^3.0.8 - "@smithy/util-retry": ^3.0.8 - tslib: ^2.6.2 - uuid: ^9.0.1 - checksum: d10264cbff951b3b9585b54cc0e67de6099ed67461a34d83266e197fc48bea45fc7207ed7329c567390be6f08aeb84a6e7fef5f4fd770da9cad0028fc6f61d65 +"@jsonjoy.com/base64@npm:^1.1.1": + version: 1.1.2 + resolution: "@jsonjoy.com/base64@npm:1.1.2" + peerDependencies: + tslib: 2 + checksum: 00dbf9cbc6ecb3af0e58288a305cc4ee3dfca9efa24443d98061756e8f6de4d6d2d3764bdfde07f2b03e6ce56db27c8a59b490bd134bf3d8122b4c6b394c7010 languageName: node linkType: hard -"@smithy/middleware-serde@npm:^3.0.7, @smithy/middleware-serde@npm:^3.0.8": - version: 3.0.8 - resolution: "@smithy/middleware-serde@npm:3.0.8" +"@jsonjoy.com/json-pack@npm:^1.0.3": + version: 1.1.1 + resolution: "@jsonjoy.com/json-pack@npm:1.1.1" dependencies: - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: 3d1ba269680bcf0cea6ea1c0e6d20eaf9de3597a687533607cc1ec49dad8669424e41bf3498dcdd21613f7791b0406db1846c2cdd6571682e4be8cb8055a85da + "@jsonjoy.com/base64": ^1.1.1 + "@jsonjoy.com/util": ^1.1.2 + hyperdyperid: ^1.2.0 + thingies: ^1.20.0 + peerDependencies: + tslib: 2 + checksum: bf1065b60c65bc0f3b3c1d496b8c65152ec23ecaefee8a5ff26dc7bc197aff541f15d1e1330bbd8b33b1c25d740406fc3c5f6d9da261ec6f1a753ac08fb0eb85 languageName: node linkType: hard -"@smithy/middleware-stack@npm:^3.0.7, @smithy/middleware-stack@npm:^3.0.8": - version: 3.0.8 - resolution: "@smithy/middleware-stack@npm:3.0.8" - dependencies: - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: c4a24dcdb1db8f347d266ee97676daf1f5bb495aa6c1e59992378bebe39265be14be5c3f7cf9ae35a8ffe68476cfcfe9000a87e9b00062538359c4507f4060ea +"@jsonjoy.com/util@npm:^1.1.2, @jsonjoy.com/util@npm:^1.3.0": + version: 1.5.0 + resolution: "@jsonjoy.com/util@npm:1.5.0" + peerDependencies: + tslib: 2 + checksum: 62892928e1223798e3d910be8dde4fdceaddf2ebdd4bdc0c50495b8ee33503317adf7b5118cd8f5a63045e3f232d70e95fb0279828caf1ec392ffeeb7ea129b8 languageName: node linkType: hard -"@smithy/node-config-provider@npm:^3.1.8, @smithy/node-config-provider@npm:^3.1.9": - version: 3.1.9 - resolution: "@smithy/node-config-provider@npm:3.1.9" - dependencies: - "@smithy/property-provider": ^3.1.8 - "@smithy/shared-ini-file-loader": ^3.1.9 - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: fc0d27ff620475f406cb0f3e8527e8dcf56449ec3faad96b9738d26ec825d1b75a55b2f28750efbde383d163c5e25bb32ad09ba59d7d40e491898b9cc6a2eb2a +"@juggle/resize-observer@npm:^3.3.1": + version: 3.4.0 + resolution: "@juggle/resize-observer@npm:3.4.0" + checksum: 2505028c05cc2e17639fcad06218b1c4b60f932a4ebb4b41ab546ef8c157031ae377e3f560903801f6d01706dbefd4943b6c4704bf19ed86dfa1c62f1473a570 languageName: node linkType: hard -"@smithy/node-http-handler@npm:^3.2.4, @smithy/node-http-handler@npm:^3.2.5": - version: 3.2.5 - resolution: "@smithy/node-http-handler@npm:3.2.5" - dependencies: - "@smithy/abort-controller": ^3.1.6 - "@smithy/protocol-http": ^4.1.5 - "@smithy/querystring-builder": ^3.0.8 - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: ea8d4148dd760f031f9eeb2aec2480685bb1a40d7ac9c482eb3170df0316cae58433a6c803d85b046c132a19b8b4874741fae054355b5584facbd46c18889c83 +"@kamilkisiela/fast-url-parser@npm:^1.1.4": + version: 1.1.4 + resolution: "@kamilkisiela/fast-url-parser@npm:1.1.4" + checksum: 921d305eff1fce5c7c669aee5cfe39e50109968addb496c23f0a42253d030e3cd5865eb01b13245915923bee452db75ba8a8254e69b0d0575d3c168efce7091e languageName: node linkType: hard -"@smithy/property-provider@npm:^3.1.7, @smithy/property-provider@npm:^3.1.8": - version: 3.1.8 - resolution: "@smithy/property-provider@npm:3.1.8" +"@keyv/memcache@npm:^1.3.5": + version: 1.4.1 + resolution: "@keyv/memcache@npm:1.4.1" dependencies: - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: acf8a3cc0cad53503870580e164b41d79e34f1129c5b6fcf99d8dc09a0a89055889430f9552bead9bafc82775fed5f5f4c8eb3f7e53d91f759bb164a3a68cea5 + json-buffer: ^3.0.1 + memjs: ^1.3.2 + checksum: bee66686af965aa3bdd78ccd7c67658b424d32578936e894d3aa42ff616ef653f8ecc439f4ea28fc51ed04a68502e445fc8ff836bd142b38509787712b6ec04d languageName: node linkType: hard -"@smithy/protocol-http@npm:^4.1.4, @smithy/protocol-http@npm:^4.1.5": - version: 4.1.5 - resolution: "@smithy/protocol-http@npm:4.1.5" +"@keyv/memcache@npm:^2.0.1": + version: 2.0.1 + resolution: "@keyv/memcache@npm:2.0.1" dependencies: - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: 2e581594d03ff367ebc0a1ab0443e8b148f39a3ea810333861f4aed639239e5a261bedbb49f6555cfdb9682b88cd881715764c2dfe7e18a7a003385a0b6200d5 + "@keyv/serialize": "*" + buffer: ^6.0.3 + memjs: ^1.3.2 + checksum: 357b320fb3998e7bff9e3a5702da3cc0d4337586f1a04392dfb490cef7af2c039c3ecda922b18029cc9de6e9310a91cde1602b0851fb86acb93b629200458cc2 languageName: node linkType: hard -"@smithy/querystring-builder@npm:^3.0.7, @smithy/querystring-builder@npm:^3.0.8": - version: 3.0.8 - resolution: "@smithy/querystring-builder@npm:3.0.8" +"@keyv/redis@npm:^2.5.3": + version: 2.8.5 + resolution: "@keyv/redis@npm:2.8.5" dependencies: - "@smithy/types": ^3.6.0 - "@smithy/util-uri-escape": ^3.0.0 - tslib: ^2.6.2 - checksum: b07a766fb1e94e06116aef6534a31bbd4bb1bb94844d61c67615316d19aac82f94781fab779655bc03a46d70dda9caf3ad991a3e41548fbbba92783103f4f43e + ioredis: ^5.4.1 + checksum: 87ffec61d31fa9de128ba3e5a7b616535ddbdaa4d92cbc9e1a9fab143adf967135e9cca16e192e8f52cc1ba00ed2a7f10eca9944d7550385530dab95333e81ef languageName: node linkType: hard -"@smithy/querystring-parser@npm:^3.0.8": - version: 3.0.8 - resolution: "@smithy/querystring-parser@npm:3.0.8" +"@keyv/redis@npm:^4.0.1": + version: 4.1.0 + resolution: "@keyv/redis@npm:4.1.0" dependencies: - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: 4ad9edfd96f084432157abd4953840f051ca4678963193bdc0ec7b210c79a649ddc023e327c39bd835ef7f56447dfaf2e47210738799ba9d044befacbe316a25 + cluster-key-slot: ^1.1.2 + keyv: ^5.2.1 + redis: ^4.7.0 + checksum: 71508c7a51f1c6eddd2a103e1f8271de8ab7fbd3c10a0163dabeebd4621632a9b04c158529d08518350e21def55ff931cf96cc20efd0855c75a18e2a10c52b7f languageName: node linkType: hard -"@smithy/service-error-classification@npm:^3.0.8": - version: 3.0.8 - resolution: "@smithy/service-error-classification@npm:3.0.8" +"@keyv/serialize@npm:*, @keyv/serialize@npm:^1.0.1": + version: 1.0.1 + resolution: "@keyv/serialize@npm:1.0.1" dependencies: - "@smithy/types": ^3.6.0 - checksum: cba6d33eb0e7482e557c303638416ea8678f80fa5782c97dd67e5b72741f22e2446370dc0ef9b16802d73cdfb7a5e4e5587c1d4abb5aa5ca9c33525137b4cf2b + buffer: ^6.0.3 + checksum: ff3dd9a6246b17fca3d1b0aba312dea931059fdecc36027f4d8133e59dbb3554a0a516b1f3dfc7fb2b3ca7a3d6fa307804f299566ab214febd3fb9d0502eebed languageName: node linkType: hard -"@smithy/shared-ini-file-loader@npm:^3.1.8, @smithy/shared-ini-file-loader@npm:^3.1.9": - version: 3.1.9 - resolution: "@smithy/shared-ini-file-loader@npm:3.1.9" +"@kubernetes-models/apimachinery@npm:^2.0.0, @kubernetes-models/apimachinery@npm:^2.0.2": + version: 2.0.2 + resolution: "@kubernetes-models/apimachinery@npm:2.0.2" dependencies: - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: 571cc785659551d875fb76c53d116bf6f3978d1b698be096e9218dbbe1dd42efbfb174e151528103888faf7c9854e66f3e5ca395b9c359e37f876c20b22a4f97 + "@kubernetes-models/base": ^5.0.1 + "@kubernetes-models/validate": ^4.0.0 + "@swc/helpers": ^0.5.8 + checksum: f99c50fc3c8446e6b525b74970c7dafe217fe3ffb944078c70b6c21ca0138040b44d094b57fb9218b1e52a5e4c802f1ea93d57c776b08eee59874be286f5545d languageName: node linkType: hard -"@smithy/signature-v4@npm:^4.2.0": - version: 4.2.1 - resolution: "@smithy/signature-v4@npm:4.2.1" +"@kubernetes-models/base@npm:^5.0.0, @kubernetes-models/base@npm:^5.0.1": + version: 5.0.1 + resolution: "@kubernetes-models/base@npm:5.0.1" dependencies: - "@smithy/is-array-buffer": ^3.0.0 - "@smithy/protocol-http": ^4.1.5 - "@smithy/types": ^3.6.0 - "@smithy/util-hex-encoding": ^3.0.0 - "@smithy/util-middleware": ^3.0.8 - "@smithy/util-uri-escape": ^3.0.0 - "@smithy/util-utf8": ^3.0.0 - tslib: ^2.6.2 - checksum: 783d8c0a780fbb94084819ea624e75a72daf84c480fa3215b0edd7689041925dbbab3e2785acdfef564c5623631d09aae4915f27cfd1357d2bd0f26349041e56 - languageName: node - linkType: hard - -"@smithy/smithy-client@npm:^3.4.0, @smithy/smithy-client@npm:^3.4.2": - version: 3.4.2 - resolution: "@smithy/smithy-client@npm:3.4.2" - dependencies: - "@smithy/core": ^2.5.1 - "@smithy/middleware-endpoint": ^3.2.1 - "@smithy/middleware-stack": ^3.0.8 - "@smithy/protocol-http": ^4.1.5 - "@smithy/types": ^3.6.0 - "@smithy/util-stream": ^3.2.1 - tslib: ^2.6.2 - checksum: 4b53e695e18bf0ed4805dd66839e272129be5384f6de5356a2adc03311f5c372766b490a3c001086aec8728f6c9bb90ca625a09e9b4c3fe875c1ee7567118f34 + "@kubernetes-models/validate": ^4.0.0 + is-plain-object: ^5.0.0 + tslib: ^2.4.0 + checksum: 9d0506b9b4b4ac366feb97f574e84f59d957377bb5c4c929332c3db8bd58bb70bcb1045d007d89369a73521591f7d0d5f651c43fca0779ed65d157258b6fd59a languageName: node linkType: hard -"@smithy/types@npm:^1.1.0": - version: 1.2.0 - resolution: "@smithy/types@npm:1.2.0" +"@kubernetes-models/validate@npm:^4.0.0": + version: 4.0.0 + resolution: "@kubernetes-models/validate@npm:4.0.0" dependencies: - tslib: ^2.5.0 - checksum: 376a1402d356a8dddd804af66ff2d273e57e332a3e9537a98039b47572684aae044d5fcd879ac6eee5cc08640ea00fbef0725a6a16026db5fb8d189473d44fe6 + ajv: ^8.12.0 + ajv-formats: ^2.1.1 + ajv-formats-draft2019: ^1.6.1 + ajv-i18n: ^4.2.0 + is-cidr: ^4.0.0 + re2-wasm: ^1.0.2 + tslib: ^2.4.0 + dependenciesMeta: + re2-wasm: + optional: true + checksum: 983c873a674b16714b88c444fcfeba555a3349036b263e1e41441e80d58be8b783fee8ce8217b2e5a8fda6c9893ea377f9635d6a37d85c412b327c1bbad4fdef languageName: node linkType: hard -"@smithy/types@npm:^3.5.0, @smithy/types@npm:^3.6.0": - version: 3.6.0 - resolution: "@smithy/types@npm:3.6.0" +"@kubernetes/client-node@npm:0.20.0, @kubernetes/client-node@npm:^0.20.0": + version: 0.20.0 + resolution: "@kubernetes/client-node@npm:0.20.0" dependencies: - tslib: ^2.6.2 - checksum: 4f581dc1c3e2dee8e1134fafb47de2c301330ea668214eb1a81d26b85acdb48a7e52008da0d15a402e998a79bed285a74b88949a5a4a3fe0aef38c28620ab795 + "@types/js-yaml": ^4.0.1 + "@types/node": ^20.1.1 + "@types/request": ^2.47.1 + "@types/ws": ^8.5.3 + byline: ^5.0.0 + isomorphic-ws: ^5.0.0 + js-yaml: ^4.1.0 + jsonpath-plus: ^7.2.0 + openid-client: ^5.3.0 + request: ^2.88.0 + rfc4648: ^1.3.0 + stream-buffers: ^3.0.2 + tar: ^6.1.11 + tslib: ^2.4.1 + ws: ^8.11.0 + dependenciesMeta: + openid-client: + optional: true + checksum: c7c2ec9c597b5579ec452bcc13647feeaa3eaf93601afa5d9a4e06b5fe91d2cafa444a1da07b5330a7596f0e07e107d6abe4acabc5998f7bedf43cd0ab8bf343 languageName: node linkType: hard -"@smithy/url-parser@npm:^3.0.7, @smithy/url-parser@npm:^3.0.8": - version: 3.0.8 - resolution: "@smithy/url-parser@npm:3.0.8" - dependencies: - "@smithy/querystring-parser": ^3.0.8 - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: 1bf2143b298a4afdf6a8fa40f7b018ad59eb79b717e2bafcd8634c20893485c456c12fe73659d342a3d3a51cdbb10afea61fac285e7ce5fa0f66d7695ad7d10b +"@leichtgewicht/ip-codec@npm:^2.0.1": + version: 2.0.5 + resolution: "@leichtgewicht/ip-codec@npm:2.0.5" + checksum: 4fcd025d0a923cb6b87b631a83436a693b255779c583158bbeacde6b4dd75b94cc1eba1c9c188de5fc36c218d160524ea08bfe4ef03a056b00ff14126d66f881 languageName: node linkType: hard -"@smithy/util-base64@npm:^3.0.0": - version: 3.0.0 - resolution: "@smithy/util-base64@npm:3.0.0" - dependencies: - "@smithy/util-buffer-from": ^3.0.0 - "@smithy/util-utf8": ^3.0.0 - tslib: ^2.6.2 - checksum: 413f26046a7e98b2661a078f218a8d040c820fc5a02f5e364aff58c3957e28fde1ac4048c2ebbad5d87b9da4b9aa98a8d4a7fb0d2ce97def33738bd7d8d79aa0 +"@lezer/common@npm:^1.0.0, @lezer/common@npm:^1.1.0": + version: 1.2.3 + resolution: "@lezer/common@npm:1.2.3" + checksum: 9b5f52d949adae69d077f56c0b1c2295923108c3dfb241dd9f17654ff708f3eab81ff9fa7f0d0e4a668eabdcb9d961c73e75caca87c966ca1436e30e49130fcb languageName: node linkType: hard -"@smithy/util-body-length-browser@npm:^3.0.0": - version: 3.0.0 - resolution: "@smithy/util-body-length-browser@npm:3.0.0" +"@lezer/highlight@npm:^1.0.0": + version: 1.2.1 + resolution: "@lezer/highlight@npm:1.2.1" dependencies: - tslib: ^2.6.2 - checksum: b01d8258b9a25b262734fc49cefefe48583ba193c3eefd49a6f7fd5922c3015d23dda88b52f3dd9a16827cad16b5b9425eef01e91bd0c71bb5abc469d2952c07 + "@lezer/common": ^1.0.0 + checksum: a8822d7e37f79ff64669eb2df4a9f9d16580e88f2b276a646092e19a9bdccac304e92510e200e35869a8b1f6c27eba5972c508d347a277e9b722d582ab7a23d5 languageName: node linkType: hard -"@smithy/util-body-length-node@npm:^3.0.0": - version: 3.0.0 - resolution: "@smithy/util-body-length-node@npm:3.0.0" +"@lezer/lr@npm:^1.0.0": + version: 1.4.2 + resolution: "@lezer/lr@npm:1.4.2" dependencies: - tslib: ^2.6.2 - checksum: da1baf4790609d3dc28c88385c7274fdf9b91a641fe3c5af22b78e18156df17bd470181348f43b2c739680936b1dafb1526158dfd817c3d9ecb71e653b4cbe3f + "@lezer/common": ^1.0.0 + checksum: 94318ad046c7dfcc8d37e26cb85b99623c39aef60aa51ec2abb30928e7a649f38fa5520f34bd5b356f1db11b6991999589f039e87c8949b0f163be3764f029d8 languageName: node linkType: hard -"@smithy/util-buffer-from@npm:^2.2.0": - version: 2.2.0 - resolution: "@smithy/util-buffer-from@npm:2.2.0" - dependencies: - "@smithy/is-array-buffer": ^2.2.0 - tslib: ^2.6.2 - checksum: 424c5b7368ae5880a8f2732e298d17879a19ca925f24ca45e1c6c005f717bb15b76eb28174d308d81631ad457ea0088aab0fd3255dd42f45a535c81944ad64d3 +"@lukeed/csprng@npm:^1.0.0": + version: 1.1.0 + resolution: "@lukeed/csprng@npm:1.1.0" + checksum: 926f5f7fc629470ca9a8af355bfcd0271d34535f7be3890f69902432bddc3262029bb5dbe9025542cf6c9883d878692eef2815fc2f3ba5b92e9da1f9eba2e51b languageName: node linkType: hard -"@smithy/util-buffer-from@npm:^3.0.0": - version: 3.0.0 - resolution: "@smithy/util-buffer-from@npm:3.0.0" +"@manypkg/find-root@npm:^1.1.0": + version: 1.1.0 + resolution: "@manypkg/find-root@npm:1.1.0" dependencies: - "@smithy/is-array-buffer": ^3.0.0 - tslib: ^2.6.2 - checksum: 1bfc4ab093fe98132bbc1ccd36a0b9ad75a31ed26bac4b7e9350205513a2481eb190ae44679ab4fecc5e10d367b5e6592bbfbf792671579d17d17bd7f7f233f5 + "@babel/runtime": ^7.5.5 + "@types/node": ^12.7.1 + find-up: ^4.1.0 + fs-extra: ^8.1.0 + checksum: f0fd881a5a81a351cb6561cd24117e8ee9481bbf3b6d1c7d9d10bef1f4744ca2ba3d064713e83c0a0574416d1e5b4a4c6c414aad91913c4a1c6040d87283ac50 languageName: node linkType: hard -"@smithy/util-config-provider@npm:^3.0.0": - version: 3.0.0 - resolution: "@smithy/util-config-provider@npm:3.0.0" +"@manypkg/get-packages@npm:^1.1.3": + version: 1.1.3 + resolution: "@manypkg/get-packages@npm:1.1.3" dependencies: - tslib: ^2.6.2 - checksum: fc0f5f57d30261cf3a6693d8e338b9d269332c478ee18d905309a769844188190caf0564855d7e84f6c61e56aa556195dda89f65e8c30791951cf4999e4a70e7 + "@babel/runtime": ^7.5.5 + "@changesets/types": ^4.0.1 + "@manypkg/find-root": ^1.1.0 + fs-extra: ^8.1.0 + globby: ^11.0.0 + read-yaml-file: ^1.1.0 + checksum: f5a756e5a659e0e1c33f48852d56826d170d5b10a3cdea89ce4fcaa77678d8799aa4004b30e1985c87b73dbc390b95bb6411b78336dd1e0db87c08c74b5c0e74 languageName: node linkType: hard -"@smithy/util-defaults-mode-browser@npm:^3.0.23": - version: 3.0.25 - resolution: "@smithy/util-defaults-mode-browser@npm:3.0.25" +"@mapbox/node-pre-gyp@npm:^1.0.0": + version: 1.0.11 + resolution: "@mapbox/node-pre-gyp@npm:1.0.11" dependencies: - "@smithy/property-provider": ^3.1.8 - "@smithy/smithy-client": ^3.4.2 - "@smithy/types": ^3.6.0 - bowser: ^2.11.0 - tslib: ^2.6.2 - checksum: 87c4b346d753712f7fe501920c6bb9712d7ec56670e49aa5d6db40ebe0f0cfa58d9e1d27e96e40c6be1721cf81bd0b2f29c077efc3b8dece074e3a6d175fa1a4 + detect-libc: ^2.0.0 + https-proxy-agent: ^5.0.0 + make-dir: ^3.1.0 + node-fetch: ^2.6.7 + nopt: ^5.0.0 + npmlog: ^5.0.1 + rimraf: ^3.0.2 + semver: ^7.3.5 + tar: ^6.1.11 + bin: + node-pre-gyp: bin/node-pre-gyp + checksum: b848f6abc531a11961d780db813cc510ca5a5b6bf3184d72134089c6875a91c44d571ba6c1879470020803f7803609e7b2e6e429651c026fe202facd11d444b8 languageName: node linkType: hard -"@smithy/util-defaults-mode-node@npm:^3.0.23": - version: 3.0.25 - resolution: "@smithy/util-defaults-mode-node@npm:3.0.25" - dependencies: - "@smithy/config-resolver": ^3.0.10 - "@smithy/credential-provider-imds": ^3.2.5 - "@smithy/node-config-provider": ^3.1.9 - "@smithy/property-provider": ^3.1.8 - "@smithy/smithy-client": ^3.4.2 - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: e34c44bb5cbc8036765aa4f52e648a753b477b6653834291f7a2e0d82b7b58c1e741eac9a9a95d39b6f751c05013909c36ac0818e0015c24201af9d2e2fb0f5a +"@marijn/find-cluster-break@npm:^1.0.0": + version: 1.0.2 + resolution: "@marijn/find-cluster-break@npm:1.0.2" + checksum: 0d836de25e04d58325813401ef3c2d34caf040da985a5935fcbc9d84e7b47a21bdb15f57d70c2bf0960bd29ed3dbbb1afd00cdd0fc4fafbee7fd0ffe7d508ae1 languageName: node linkType: hard -"@smithy/util-endpoints@npm:^2.1.3": - version: 2.1.4 - resolution: "@smithy/util-endpoints@npm:2.1.4" +"@material-table/core@npm:^3.1.0": + version: 3.2.5 + resolution: "@material-table/core@npm:3.2.5" dependencies: - "@smithy/node-config-provider": ^3.1.9 - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: 523df0a35807f3493cccaf1b76f88e14dedd3d9f29fe26a6f8c73cdfe09e57c67a1d3029cc585995b0f7fe20e07afa8b4dfa5f1d631a0c4c06c9f68075b61bad + "@babel/runtime": ^7.12.5 + "@date-io/date-fns": ^1.3.13 + "@material-ui/pickers": ^3.2.10 + "@material-ui/styles": ^4.11.4 + classnames: ^2.2.6 + date-fns: ^2.16.1 + debounce: ^1.2.0 + fast-deep-equal: ^3.1.3 + prop-types: ^15.7.2 + react-beautiful-dnd: ^13.0.0 + react-double-scrollbar: 0.0.15 + uuid: ^3.4.0 + peerDependencies: + "@date-io/core": ^1.3.13 + "@material-ui/core": ^4.11.2 + react: ">=16.8.0" + react-dom: ">=16.8.0" + checksum: 707e85cfcb8c1cfc8eb78ea6991509879f774081d7a54ad428f702fe00478b6d3707d0fd85f4ad443ebcfac0c0cab79c046c4d5083adcbc767615445667b50cf + languageName: node + linkType: hard + +"@material-ui/core@npm:^4.12.2, @material-ui/core@npm:^4.12.4, @material-ui/core@npm:^4.9.13": + version: 4.12.4 + resolution: "@material-ui/core@npm:4.12.4" + dependencies: + "@babel/runtime": ^7.4.4 + "@material-ui/styles": ^4.11.5 + "@material-ui/system": ^4.12.2 + "@material-ui/types": 5.1.0 + "@material-ui/utils": ^4.11.3 + "@types/react-transition-group": ^4.2.0 + clsx: ^1.0.4 + hoist-non-react-statics: ^3.3.2 + popper.js: 1.16.1-lts + prop-types: ^15.7.2 + react-is: ^16.8.0 || ^17.0.0 + react-transition-group: ^4.4.0 + peerDependencies: + "@types/react": ^16.8.6 || ^17.0.0 + react: ^16.8.0 || ^17.0.0 + react-dom: ^16.8.0 || ^17.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 96b48deccda87ced841b1db45bed2be6d2b6d1b4eae72cd5c9b931201cb72026330688e0fead54e715bcead40b267ea88bde781c9f1563b1a71a5c51bf187289 languageName: node linkType: hard -"@smithy/util-hex-encoding@npm:^3.0.0": - version: 3.0.0 - resolution: "@smithy/util-hex-encoding@npm:3.0.0" +"@material-ui/icons@npm:^4.11.3, @material-ui/icons@npm:^4.9.1": + version: 4.11.3 + resolution: "@material-ui/icons@npm:4.11.3" dependencies: - tslib: ^2.6.2 - checksum: dd32fd71e915825987a18bf7c0f8f0c4956d0b17a0ee71592b5563bb20e04f24dbf81d36161aac07caab3bb5e535cc609fce20aa4a38f66b457c4c6f5c7748d9 + "@babel/runtime": ^7.4.4 + peerDependencies: + "@material-ui/core": ^4.0.0 + "@types/react": ^16.8.6 || ^17.0.0 + react: ^16.8.0 || ^17.0.0 + react-dom: ^16.8.0 || ^17.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: f849a8c4fecddc112cfa94105a2c72e763ff76b9f8da74135b7bbadfd294ed6685897cbea6a2128099be0ce37843784893d8c64da6bde37d020956ab9067206c languageName: node linkType: hard -"@smithy/util-middleware@npm:^3.0.7, @smithy/util-middleware@npm:^3.0.8": - version: 3.0.8 - resolution: "@smithy/util-middleware@npm:3.0.8" +"@material-ui/lab@npm:4.0.0-alpha.61, @material-ui/lab@npm:^4.0.0-alpha.45, @material-ui/lab@npm:^4.0.0-alpha.61": + version: 4.0.0-alpha.61 + resolution: "@material-ui/lab@npm:4.0.0-alpha.61" dependencies: - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: 6933c012f47c8b547b4986133a9dc2b264e9d71def155c4a9bce1bd1afbd73cb8e936c50ebc80190fc1d5bb26aee73ba012c567766dcd8a13c3d06bef841ab3c + "@babel/runtime": ^7.4.4 + "@material-ui/utils": ^4.11.3 + clsx: ^1.0.4 + prop-types: ^15.7.2 + react-is: ^16.8.0 || ^17.0.0 + peerDependencies: + "@material-ui/core": ^4.12.1 + "@types/react": ^16.8.6 || ^17.0.0 + react: ^16.8.0 || ^17.0.0 + react-dom: ^16.8.0 || ^17.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 8774a07d72615301e0099415580f87ea8f3d1d106f79e0b014738e302dd3e21959abf01d6c0a629e2e9afb8cb91abd8e9686c2886cddff06c27e6a8a8e063ea0 + languageName: node + linkType: hard + +"@material-ui/pickers@npm:^3.2.10": + version: 3.3.11 + resolution: "@material-ui/pickers@npm:3.3.11" + dependencies: + "@babel/runtime": ^7.6.0 + "@date-io/core": 1.x + "@types/styled-jsx": ^2.2.8 + clsx: ^1.0.2 + react-transition-group: ^4.0.0 + rifm: ^0.7.0 + peerDependencies: + "@date-io/core": ^1.3.6 + "@material-ui/core": ^4.0.0 + prop-types: ^15.6.0 + react: ^16.8.0 || ^17.0.0 + react-dom: ^16.8.0 || ^17.0.0 + checksum: c97822ae407877d1aa9ab7b14c335511d6879ca2546455ac7a3b156d70966b5678372a6d4d3470c2dced84e59857e2c1e1b2be61d26ab43f7f29806666f33064 + languageName: node + linkType: hard + +"@material-ui/styles@npm:^4.10.0, @material-ui/styles@npm:^4.11.0, @material-ui/styles@npm:^4.11.4, @material-ui/styles@npm:^4.11.5": + version: 4.11.5 + resolution: "@material-ui/styles@npm:4.11.5" + dependencies: + "@babel/runtime": ^7.4.4 + "@emotion/hash": ^0.8.0 + "@material-ui/types": 5.1.0 + "@material-ui/utils": ^4.11.3 + clsx: ^1.0.4 + csstype: ^2.5.2 + hoist-non-react-statics: ^3.3.2 + jss: ^10.5.1 + jss-plugin-camel-case: ^10.5.1 + jss-plugin-default-unit: ^10.5.1 + jss-plugin-global: ^10.5.1 + jss-plugin-nested: ^10.5.1 + jss-plugin-props-sort: ^10.5.1 + jss-plugin-rule-value-function: ^10.5.1 + jss-plugin-vendor-prefixer: ^10.5.1 + prop-types: ^15.7.2 + peerDependencies: + "@types/react": ^16.8.6 || ^17.0.0 + react: ^16.8.0 || ^17.0.0 + react-dom: ^16.8.0 || ^17.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: dbf3985ef57c1b7dae3fd916d5bfd61f2097afb93c9e1f64832cfcb8fc9bbf38a504c9632ed7b76eb5d235670083d9e66d35942bc976b7cd148c71d75b808e82 languageName: node linkType: hard -"@smithy/util-retry@npm:^3.0.7, @smithy/util-retry@npm:^3.0.8": - version: 3.0.8 - resolution: "@smithy/util-retry@npm:3.0.8" +"@material-ui/system@npm:^4.12.2": + version: 4.12.2 + resolution: "@material-ui/system@npm:4.12.2" dependencies: - "@smithy/service-error-classification": ^3.0.8 - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: 5c0c63beb867828e6fd54f5fd83de412180df02de42f678df0f5a4412d10bfb5a74c22aa83a6f364c8292b5c82be94fe7af35d1ebe4e50a2c05946520f2ea870 + "@babel/runtime": ^7.4.4 + "@material-ui/utils": ^4.11.3 + csstype: ^2.5.2 + prop-types: ^15.7.2 + peerDependencies: + "@types/react": ^16.8.6 || ^17.0.0 + react: ^16.8.0 || ^17.0.0 + react-dom: ^16.8.0 || ^17.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: ebe6b3cc5f111034eacd763014f3260f7647b5e0cd132870f2ee18855cf3d51a996b4633035fe6f5f8965489944db4ac0cb3b71b84a765faa35a6861532ac9f6 languageName: node linkType: hard -"@smithy/util-stream@npm:^3.1.9, @smithy/util-stream@npm:^3.2.1": - version: 3.2.1 - resolution: "@smithy/util-stream@npm:3.2.1" - dependencies: - "@smithy/fetch-http-handler": ^4.0.0 - "@smithy/node-http-handler": ^3.2.5 - "@smithy/types": ^3.6.0 - "@smithy/util-base64": ^3.0.0 - "@smithy/util-buffer-from": ^3.0.0 - "@smithy/util-hex-encoding": ^3.0.0 - "@smithy/util-utf8": ^3.0.0 - tslib: ^2.6.2 - checksum: 3dc2b005d48a2e5ccb0761e7a7869f8af24d34a93eaa34f0586ba42fe79f13d48efb676e4aacbf02a54f1a225eb851d2c706c016f5f9d0b4fc127d8be69f5d90 +"@material-ui/types@npm:5.1.0": + version: 5.1.0 + resolution: "@material-ui/types@npm:5.1.0" + peerDependencies: + "@types/react": "*" + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 64ac0938ee6f48011ba596f7422ab0660d9a8d9b4f5f183b39bd63185b1ce724209f65580f0af686d59b524603ffa57418ca2d443b69bec894303f80779c61f8 languageName: node linkType: hard -"@smithy/util-uri-escape@npm:^3.0.0": - version: 3.0.0 - resolution: "@smithy/util-uri-escape@npm:3.0.0" - dependencies: - tslib: ^2.6.2 - checksum: d7ee01c978e2b08d0a89a3b678f5d5e5d5bb4ab4ab85567a238b1a6195dff1bdaf9ae62497e7f32ff5121b3dc007c370bcb6e8ef79b01fe5acdec5bbce8c7ce4 +"@material-ui/types@npm:^6.0.1": + version: 6.0.2 + resolution: "@material-ui/types@npm:6.0.2" + peerDependencies: + "@types/react": "*" + peerDependenciesMeta: + "@types/react": + optional: true + checksum: cc1704059bc4cfc0296ead70d9bc8e58467b0699cdaba05b11b10d0119833ee635186a3acb202d11ed6c33d4872efafeed6cad23fca2b260eb5e94bd779be46f languageName: node linkType: hard -"@smithy/util-utf8@npm:^2.0.0": - version: 2.3.0 - resolution: "@smithy/util-utf8@npm:2.3.0" +"@material-ui/utils@npm:^4.11.3": + version: 4.11.3 + resolution: "@material-ui/utils@npm:4.11.3" dependencies: - "@smithy/util-buffer-from": ^2.2.0 - tslib: ^2.6.2 - checksum: 00e55d4b4e37d48be0eef3599082402b933c52a1407fed7e8e8ad76d94d81a0b30b8bfaf2047c59d9c3af31e5f20e7a8c959cb7ae270f894255e05a2229964f0 + "@babel/runtime": ^7.4.4 + prop-types: ^15.7.2 + react-is: ^16.8.0 || ^17.0.0 + peerDependencies: + react: ^16.8.0 || ^17.0.0 + react-dom: ^16.8.0 || ^17.0.0 + checksum: 05ff67c982b33d3b4260cfaeaf566f3ccaecaebb231907ed626bcc30322d89d705bfe79b8805c0dda2f1dc2cfa98ca9d731ec8ae12868da7a98568a41c7dc231 languageName: node linkType: hard -"@smithy/util-utf8@npm:^3.0.0": - version: 3.0.0 - resolution: "@smithy/util-utf8@npm:3.0.0" - dependencies: - "@smithy/util-buffer-from": ^3.0.0 - tslib: ^2.6.2 - checksum: d97be1748963263a1161ba80417d82318b977b38542f3fdf0379b0162461188be680e5bfb66a89d65652f0fad6ecf2ab23a43205979216e50602488f73434da3 +"@microsoft/api-documenter@npm:^7.25.7": + version: 7.26.3 + resolution: "@microsoft/api-documenter@npm:7.26.3" + dependencies: + "@microsoft/api-extractor-model": 7.30.1 + "@microsoft/tsdoc": ~0.15.1 + "@rushstack/node-core-library": 5.10.1 + "@rushstack/terminal": 0.14.4 + "@rushstack/ts-command-line": 4.23.2 + js-yaml: ~3.13.1 + resolve: ~1.22.1 + bin: + api-documenter: bin/api-documenter + checksum: af7c0839ac485c5683612c3ce72ec6ebc30745019d8a21ef122fecb4c98dc2282c68ef043d4b7bdb4fc117e9f1c5f23f0ca690be3ee0ee900b79e992dcaba3d7 languageName: node linkType: hard -"@smithy/util-waiter@npm:^3.1.6": - version: 3.1.7 - resolution: "@smithy/util-waiter@npm:3.1.7" +"@microsoft/api-extractor-model@npm:7.30.1": + version: 7.30.1 + resolution: "@microsoft/api-extractor-model@npm:7.30.1" dependencies: - "@smithy/abort-controller": ^3.1.6 - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: 190d992898d0c7d776c806657703c1ebd0ba2c24f4042ed0251dc8653799aefe12848a0445ee16cdbb05b76b5c81fc803b271957954aa614aaccb99dd3338caa + "@microsoft/tsdoc": ~0.15.1 + "@microsoft/tsdoc-config": ~0.17.1 + "@rushstack/node-core-library": 5.10.1 + checksum: a21792c9ee92e12753962de8578baa6334a8f527fb8bcba69d27e19a8bbd2e224cab50e2b5a149a9b6d3d2d4909885bfb08b0e3be77c468d5afdd575b8e7847b languageName: node linkType: hard -"@snyk/github-codeowners@npm:1.1.0": - version: 1.1.0 - resolution: "@snyk/github-codeowners@npm:1.1.0" +"@microsoft/api-extractor@npm:^7.47.2": + version: 7.48.1 + resolution: "@microsoft/api-extractor@npm:7.48.1" dependencies: - commander: ^4.1.1 - ignore: ^5.1.8 - p-map: ^4.0.0 + "@microsoft/api-extractor-model": 7.30.1 + "@microsoft/tsdoc": ~0.15.1 + "@microsoft/tsdoc-config": ~0.17.1 + "@rushstack/node-core-library": 5.10.1 + "@rushstack/rig-package": 0.5.3 + "@rushstack/terminal": 0.14.4 + "@rushstack/ts-command-line": 4.23.2 + lodash: ~4.17.15 + minimatch: ~3.0.3 + resolve: ~1.22.1 + semver: ~7.5.4 + source-map: ~0.6.1 + typescript: 5.4.2 bin: - github-codeowners: dist/cli.js - checksum: 133f867fa968f96229ebce724d8aedaa124218e20add96a3a7d39ea45e52007fee50cc90c39e406c9e662483d003da9326e00dc4d612afa5c2ca069d1cdab9d7 + api-extractor: bin/api-extractor + checksum: 5fde2583d8a2609457a4f83fcb767c21b0281cdcffab72748b38d665624100575618baca1680e8f84d493c4f7cc87f37ddaa57bca385b01b20f4bd01911dfaed languageName: node linkType: hard -"@spotify/eslint-config-base@npm:^15.0.0": - version: 15.0.0 - resolution: "@spotify/eslint-config-base@npm:15.0.0" - peerDependencies: - eslint: ">=7.x" - checksum: 265a4d807b5236030466a3a8373f41e51a9b4939b450d47ed2cb4704485004a5d64b2f9e024e865b4f5eea61ab6bbe439442e4ca2ac06e52a3b5c7e94c2d6b27 +"@microsoft/fetch-event-source@npm:^2.0.1": + version: 2.0.1 + resolution: "@microsoft/fetch-event-source@npm:2.0.1" + checksum: a50e1c0f33220206967266d0a4bbba0703e2793b079d9f6e6bfd48f71b2115964a803e14cf6e902c6fab321edc084f26022334f5eaacc2cec87f174715d41852 languageName: node linkType: hard -"@spotify/eslint-config-react@npm:^15.0.0": - version: 15.0.0 - resolution: "@spotify/eslint-config-react@npm:15.0.0" - peerDependencies: - eslint: ">=8.x" - eslint-plugin-jsx-a11y: 6.x - eslint-plugin-react: ">=7.7.0 <8" - eslint-plugin-react-hooks: ^4.0.0 - checksum: 42e16f63d51b2230d2e4eba6524d2d9278d480827c5d2ab32f96253bafd4d8ceb87c37d8429601e36642ff30c86b92011ad4efd26c83db4037478ad118497cce +"@microsoft/tsdoc-config@npm:~0.17.1": + version: 0.17.1 + resolution: "@microsoft/tsdoc-config@npm:0.17.1" + dependencies: + "@microsoft/tsdoc": 0.15.1 + ajv: ~8.12.0 + jju: ~1.4.0 + resolve: ~1.22.2 + checksum: 19d3301af62c62eac5b3c244564070b18c529c0985d299b9e93d04cc75d2c1342458063d494c941f814c7154463ee364acdc76ea552db92cbbb0a3e28bbca87c languageName: node linkType: hard -"@spotify/eslint-config-typescript@npm:^15.0.0": - version: 15.0.0 - resolution: "@spotify/eslint-config-typescript@npm:15.0.0" - peerDependencies: - "@typescript-eslint/eslint-plugin": ">=5" - "@typescript-eslint/parser": ">=5" - eslint: ">=8.x" - checksum: d30d07e1e2e0e18cc583a72ca74b5fdb80ee26e6529de26e1e85d1416ca5396c942efaccc2613287365c7ac3659378b0ba0cdda3df25c7e5cdbd7317f1cbe885 +"@microsoft/tsdoc@npm:0.15.1, @microsoft/tsdoc@npm:~0.15.1": + version: 0.15.1 + resolution: "@microsoft/tsdoc@npm:0.15.1" + checksum: 526f125c48b4e5511571ee552ff38691405131c0b72df85f091b1aa47571315e7ba5258cd9f48c41b8ef80f2c1f489e9b09c8b1fcc1599b7f8a35f917e03ec65 languageName: node linkType: hard -"@spotify/prettier-config@npm:^12.0.0": - version: 12.0.0 - resolution: "@spotify/prettier-config@npm:12.0.0" - peerDependencies: - prettier: 2.x - checksum: 04732b96af895269bb8a988ba309e80bd7b87c785837e06f72ff938e8895c5a3a3211fa37b54c6a2b502e88587a437c2be3ccb486a84aff02c2f6fb4582a4a97 +"@module-federation/bridge-react-webpack-plugin@npm:0.6.16": + version: 0.6.16 + resolution: "@module-federation/bridge-react-webpack-plugin@npm:0.6.16" + dependencies: + "@module-federation/sdk": 0.6.16 + "@types/semver": 7.5.8 + semver: 7.6.3 + checksum: 9b49f8788bc741279e80cbc7b19980aa0d75e689c5ca08f1a19879d1f921f20e23e54ffc3fdc47010b90786130266d04395f46681d15ffe89f9d57e4e7575882 languageName: node linkType: hard -"@stoplight/better-ajv-errors@npm:1.0.3": - version: 1.0.3 - resolution: "@stoplight/better-ajv-errors@npm:1.0.3" +"@module-federation/data-prefetch@npm:0.6.16": + version: 0.6.16 + resolution: "@module-federation/data-prefetch@npm:0.6.16" dependencies: - jsonpointer: ^5.0.0 - leven: ^3.1.0 + "@module-federation/runtime": 0.6.16 + "@module-federation/sdk": 0.6.16 + fs-extra: 9.1.0 peerDependencies: - ajv: ">=8" - checksum: 642fe5636a72a86de72e4ffc7bbf07499fc09d8446b386f31d3667b07dd1849d921c38a74c109a9e2554d405b6e90dc150728a0c455bf93f158ff139e0538ddd + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: cac7dc921abb1f3209e2afd7d4f21a21de525babcbd4afed69e61b2261cf7f18b6f1d9db4be005d1b60f968a03e222639e918253591c23f0be925fb84c952326 languageName: node linkType: hard -"@stoplight/json-ref-readers@npm:1.2.2": - version: 1.2.2 - resolution: "@stoplight/json-ref-readers@npm:1.2.2" +"@module-federation/dts-plugin@npm:0.6.16": + version: 0.6.16 + resolution: "@module-federation/dts-plugin@npm:0.6.16" dependencies: - node-fetch: ^2.6.0 - tslib: ^1.14.1 - checksum: 31b0e78b119f7afd7dd84a4fbb0c4aaceeb6e889179e785ddb9880ee548d4d161dce5743451ef6dad4b7a902d9f0711909c87b63ad794bede234a144bcf2b2b4 + "@module-federation/error-codes": 0.6.14 + "@module-federation/managers": 0.6.16 + "@module-federation/sdk": 0.6.16 + "@module-federation/third-party-dts-extractor": 0.6.16 + adm-zip: ^0.5.10 + ansi-colors: ^4.1.3 + axios: ^1.7.4 + chalk: 3.0.0 + fs-extra: 9.1.0 + isomorphic-ws: 5.0.0 + koa: 2.15.3 + lodash.clonedeepwith: 4.5.0 + log4js: 6.9.1 + node-schedule: 2.1.1 + rambda: ^9.1.0 + ws: 8.18.0 + peerDependencies: + typescript: ^4.9.0 || ^5.0.0 + vue-tsc: ">=1.0.24" + peerDependenciesMeta: + vue-tsc: + optional: true + checksum: 6d1eae570d0234f5adfb3971c8b4b09054fc6e7bff5e06241a5a7ca699c2b22b306d74d391ccaf01ed7ef71541f87c61829342d6a65bd5234f0fcbb36a21626d languageName: node linkType: hard -"@stoplight/json-ref-resolver@npm:~3.1.6": - version: 3.1.6 - resolution: "@stoplight/json-ref-resolver@npm:3.1.6" - dependencies: - "@stoplight/json": ^3.21.0 - "@stoplight/path": ^1.3.2 - "@stoplight/types": ^12.3.0 || ^13.0.0 - "@types/urijs": ^1.19.19 - dependency-graph: ~0.11.0 - fast-memoize: ^2.5.2 - immer: ^9.0.6 - lodash: ^4.17.21 - tslib: ^2.6.0 - urijs: ^1.19.11 - checksum: 57c944cc8cee51b18fd8165aae7431eddf3b6ca96f2de7a264d890f18a869e5abb7750d48a77455ee1c688ac440efa4115bc8e912efce7c83140834bae49879e +"@module-federation/enhanced@npm:^0.6.0": + version: 0.6.16 + resolution: "@module-federation/enhanced@npm:0.6.16" + dependencies: + "@module-federation/bridge-react-webpack-plugin": 0.6.16 + "@module-federation/data-prefetch": 0.6.16 + "@module-federation/dts-plugin": 0.6.16 + "@module-federation/managers": 0.6.16 + "@module-federation/manifest": 0.6.16 + "@module-federation/rspack": 0.6.16 + "@module-federation/runtime-tools": 0.6.16 + "@module-federation/sdk": 0.6.16 + btoa: ^1.2.1 + upath: 2.0.1 + peerDependencies: + typescript: ^4.9.0 || ^5.0.0 + vue-tsc: ">=1.0.24" + webpack: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + vue-tsc: + optional: true + webpack: + optional: true + checksum: bb1f6566ed176e414816bfc22352f14b5ac45b1fa1655d8d403bde13145d8d0f9c54767d14b9b4fb2210eb5f406f3dd93826bcac1e2303be6bbaccb7eb78ab23 languageName: node linkType: hard -"@stoplight/json@npm:^3.17.0, @stoplight/json@npm:^3.17.1, @stoplight/json@npm:^3.21.0, @stoplight/json@npm:~3.21.0": - version: 3.21.7 - resolution: "@stoplight/json@npm:3.21.7" +"@module-federation/error-codes@npm:0.6.14": + version: 0.6.14 + resolution: "@module-federation/error-codes@npm:0.6.14" + checksum: d487eebb8990c0ea712dc61813f54c487c0e3549cf21239db28dfa18b5c97ae79bad5134db90aa67aee74f5af5c01d115c7aa66a66a81b098dd75f40e158fcc6 + languageName: node + linkType: hard + +"@module-federation/managers@npm:0.6.16": + version: 0.6.16 + resolution: "@module-federation/managers@npm:0.6.16" dependencies: - "@stoplight/ordered-object-literal": ^1.0.3 - "@stoplight/path": ^1.3.2 - "@stoplight/types": ^13.6.0 - jsonc-parser: ~2.2.1 - lodash: ^4.17.21 - safe-stable-stringify: ^1.1 - checksum: 5b0cd67e91e8f4cfac7ff0fe37c07e203611f429e8af7fce51cacb82f9c97150a3fa3aeda41daa9e65bc42d217b630bf01a8bf1f6db12b047079b0da9d7cd9af + "@module-federation/sdk": 0.6.16 + find-pkg: 2.0.0 + fs-extra: 9.1.0 + checksum: 6b4e3a585aa2655134152752f2951ec1e913261510bfe714e19040da6d44a40800f7ca514d56f2ad04788d7501b886f3fcfb203900c6a25b7b8228a5459f6d33 languageName: node linkType: hard -"@stoplight/ordered-object-literal@npm:^1.0.3, @stoplight/ordered-object-literal@npm:^1.0.5": - version: 1.0.5 - resolution: "@stoplight/ordered-object-literal@npm:1.0.5" - checksum: 84fe385ed742c5298fd5bee3f95366bfe17a2b99ed52f9b323180756d3495078dfb3bf7e5f49f3c8dee7b79f2e8358b38fe4977b7b6475f0094765160d716bb5 +"@module-federation/manifest@npm:0.6.16": + version: 0.6.16 + resolution: "@module-federation/manifest@npm:0.6.16" + dependencies: + "@module-federation/dts-plugin": 0.6.16 + "@module-federation/managers": 0.6.16 + "@module-federation/sdk": 0.6.16 + chalk: 3.0.0 + find-pkg: 2.0.0 + checksum: fee3254347f927756fcf4d64ede32b93326f976292d7540ebb238fad5ea81c003f030a6020d042239f1f54568ed79e5eafa21e812f763d5961c6827b60be59f7 languageName: node linkType: hard -"@stoplight/path@npm:1.3.2, @stoplight/path@npm:^1.3.2": - version: 1.3.2 - resolution: "@stoplight/path@npm:1.3.2" - checksum: 8a1143cef9edcf9fd8cb24ca3f250693d475ce1f635f0dc95e5b045aad303fbf4d702c939f0c4ed8d28a04208d1aa4471fb10912ef1e3a94a9e6810878a7cfbb +"@module-federation/rspack@npm:0.6.16": + version: 0.6.16 + resolution: "@module-federation/rspack@npm:0.6.16" + dependencies: + "@module-federation/bridge-react-webpack-plugin": 0.6.16 + "@module-federation/dts-plugin": 0.6.16 + "@module-federation/managers": 0.6.16 + "@module-federation/manifest": 0.6.16 + "@module-federation/runtime-tools": 0.6.16 + "@module-federation/sdk": 0.6.16 + peerDependencies: + typescript: ^4.9.0 || ^5.0.0 + vue-tsc: ">=1.0.24" + peerDependenciesMeta: + typescript: + optional: true + vue-tsc: + optional: true + checksum: afc98f64d3270e952ff0425ddd71b13b48644306679d3a4466d38a80c855682951a4b5c1b662fa63619ffad8400d6e7029b762aefd99e7169ee431f12c278e78 languageName: node linkType: hard -"@stoplight/spectral-core@npm:^1.15.1, @stoplight/spectral-core@npm:^1.18.0, @stoplight/spectral-core@npm:^1.7.0, @stoplight/spectral-core@npm:^1.8.0, @stoplight/spectral-core@npm:^1.8.1": - version: 1.19.1 - resolution: "@stoplight/spectral-core@npm:1.19.1" +"@module-federation/runtime-tools@npm:0.6.16": + version: 0.6.16 + resolution: "@module-federation/runtime-tools@npm:0.6.16" dependencies: - "@stoplight/better-ajv-errors": 1.0.3 - "@stoplight/json": ~3.21.0 - "@stoplight/path": 1.3.2 - "@stoplight/spectral-parsers": ^1.0.0 - "@stoplight/spectral-ref-resolver": ^1.0.4 - "@stoplight/spectral-runtime": ^1.0.0 - "@stoplight/types": ~13.6.0 - "@types/es-aggregate-error": ^1.0.2 - "@types/json-schema": ^7.0.11 - ajv: ^8.17.1 - ajv-errors: ~3.0.0 - ajv-formats: ~2.1.0 - es-aggregate-error: ^1.0.7 - jsonpath-plus: 7.1.0 - lodash: ~4.17.21 - lodash.topath: ^4.5.2 - minimatch: 3.1.2 - nimma: 0.2.2 - pony-cause: ^1.0.0 - simple-eval: 1.0.0 - tslib: ^2.3.0 - checksum: 35495c3f72eacd02d74b0913ad5a8cdad7573ab06c08cc9f6b44abd68e0c8b2229df9efee11cfe8a47ffeea802ce2b3bb17e378dffe5eab47504f70abd8b492c + "@module-federation/runtime": 0.6.16 + "@module-federation/webpack-bundler-runtime": 0.6.16 + checksum: 53aa76f2563e978e9f610e9276e6f3f6e73ecbf19f3cc349d0762955e748c43ec08a74f248cb697eb31d8109869f05f0f8dda1d6d082436ec246393d0011ac95 languageName: node linkType: hard -"@stoplight/spectral-formats@npm:^1.2.0, @stoplight/spectral-formats@npm:^1.7.0": - version: 1.7.0 - resolution: "@stoplight/spectral-formats@npm:1.7.0" +"@module-federation/runtime@npm:0.6.16": + version: 0.6.16 + resolution: "@module-federation/runtime@npm:0.6.16" dependencies: - "@stoplight/json": ^3.17.0 - "@stoplight/spectral-core": ^1.8.0 - "@types/json-schema": ^7.0.7 - tslib: ^2.3.1 - checksum: eccc2a6c099c7cbdd7c0b6c48b7fbfa334cdc2323958790496aa0295af27ef42ccae8b40e05c742aa3431da724b8d494c837af1af60f86d05189853b95b7c2c9 + "@module-federation/error-codes": 0.6.14 + "@module-federation/sdk": 0.6.16 + checksum: d247b4b8ce38f84692da6a3711cdd6d35c4de7885a4639720d4df2436900d66ba2a1b815f64064b95e6aee9fb7082e4d1c6fe1e8ccecd8ddcfaef38379153bbd languageName: node linkType: hard -"@stoplight/spectral-formatters@npm:^1.1.0": - version: 1.4.0 - resolution: "@stoplight/spectral-formatters@npm:1.4.0" +"@module-federation/sdk@npm:0.6.16": + version: 0.6.16 + resolution: "@module-federation/sdk@npm:0.6.16" dependencies: - "@stoplight/path": ^1.3.2 - "@stoplight/spectral-core": ^1.15.1 - "@stoplight/spectral-runtime": ^1.1.0 - "@stoplight/types": ^13.15.0 - "@types/markdown-escape": ^1.1.3 - chalk: 4.1.2 - cliui: 7.0.4 - lodash: ^4.17.21 - markdown-escape: ^2.0.0 - node-sarif-builder: ^2.0.3 - strip-ansi: 6.0 - text-table: ^0.2.0 - tslib: ^2.5.0 - checksum: fd8b0c96df54b1afa1e2c325edac6a95df0ce4c9a14e3cd46786d229259417eeec7795e7c7ccf4e896a343c5dbd06e62f8692214985acd786d19485bd512958d + isomorphic-rslog: 0.0.5 + checksum: 4495af06a83cbf69da6f6c20b0e8b934382b7b5e9a1b56a3385756476e97750beeb0f4b2671dbc64a3c2ab4a5fdb1f99aafd7562f47a4894352fff75d9499ce8 languageName: node linkType: hard -"@stoplight/spectral-functions@npm:^1.5.1, @stoplight/spectral-functions@npm:^1.6.1, @stoplight/spectral-functions@npm:^1.7.2": - version: 1.9.0 - resolution: "@stoplight/spectral-functions@npm:1.9.0" +"@module-federation/third-party-dts-extractor@npm:0.6.16": + version: 0.6.16 + resolution: "@module-federation/third-party-dts-extractor@npm:0.6.16" dependencies: - "@stoplight/better-ajv-errors": 1.0.3 - "@stoplight/json": ^3.17.1 - "@stoplight/spectral-core": ^1.7.0 - "@stoplight/spectral-formats": ^1.7.0 - "@stoplight/spectral-runtime": ^1.1.0 - ajv: ^8.17.1 - ajv-draft-04: ~1.0.0 - ajv-errors: ~3.0.0 - ajv-formats: ~2.1.0 - lodash: ~4.17.21 - tslib: ^2.3.0 - checksum: 278dc6e84b3b4fdef73f6b2b2cc7071140ade604dbc938b3946203253f37c0977659a609dc148df6f73668ddcb84a809e279643a12fd3f4372e72e97973f0058 + find-pkg: 2.0.0 + fs-extra: 9.1.0 + resolve: 1.22.8 + checksum: 2f2317d3703a084a2ff11152a376276a9462954da624a6d69ab265868fb2fedeaeeb1486721f9fff0f3c15d81e3336bf71f90fabe8d4ed4cde4c4d0b5a8ff8be languageName: node linkType: hard -"@stoplight/spectral-parsers@npm:^1.0.0, @stoplight/spectral-parsers@npm:^1.0.2": - version: 1.0.4 - resolution: "@stoplight/spectral-parsers@npm:1.0.4" +"@module-federation/webpack-bundler-runtime@npm:0.6.16": + version: 0.6.16 + resolution: "@module-federation/webpack-bundler-runtime@npm:0.6.16" dependencies: - "@stoplight/json": ~3.21.0 - "@stoplight/types": ^14.1.1 - "@stoplight/yaml": ~4.3.0 - tslib: ^2.3.1 - checksum: ca88183661651d99b40da254316fec062c219253ea3054151b9379e7c492121cdeef49a2d1ac08cd89b2f89f7d16dbc4ecf9da6d7a7539979ac6418991fe804a + "@module-federation/runtime": 0.6.16 + "@module-federation/sdk": 0.6.16 + checksum: e78d5879eb1553c3dc96a93c7c962d9aa576b20f420fac8747fa1e3d61ab7e4ee51372924cedcd6483b829e2b4988a6f2daad4c6ddf2841c744ef69b9ba27680 languageName: node linkType: hard -"@stoplight/spectral-ref-resolver@npm:^1.0.4": - version: 1.0.4 - resolution: "@stoplight/spectral-ref-resolver@npm:1.0.4" +"@motionone/animation@npm:^10.12.0": + version: 10.18.0 + resolution: "@motionone/animation@npm:10.18.0" dependencies: - "@stoplight/json-ref-readers": 1.2.2 - "@stoplight/json-ref-resolver": ~3.1.6 - "@stoplight/spectral-runtime": ^1.1.2 - dependency-graph: 0.11.0 + "@motionone/easing": ^10.18.0 + "@motionone/types": ^10.17.1 + "@motionone/utils": ^10.18.0 tslib: ^2.3.1 - checksum: 1e9b2e211d2724e0bab7d817a5128f7b6cab9f0f5281d07223ace1d541a51a0eb3901b9f7b02d4b0484df1cb2a3f7239ec33a974321438d3d08ce7996fd6fcc4 + checksum: 841cb9f4843a89e5e4560b9f960f52cbe78afc86f87c769f71e9edb3aadd53fb87982b7e11914428f228b29fd580756be531369c2ffac06432550afa4e87d1c3 languageName: node linkType: hard -"@stoplight/spectral-rulesets@npm:^1.18.0": - version: 1.20.2 - resolution: "@stoplight/spectral-rulesets@npm:1.20.2" +"@motionone/dom@npm:10.12.0": + version: 10.12.0 + resolution: "@motionone/dom@npm:10.12.0" dependencies: - "@asyncapi/specs": ^4.1.0 - "@stoplight/better-ajv-errors": 1.0.3 - "@stoplight/json": ^3.17.0 - "@stoplight/spectral-core": ^1.8.1 - "@stoplight/spectral-formats": ^1.7.0 - "@stoplight/spectral-functions": ^1.5.1 - "@stoplight/spectral-runtime": ^1.1.1 - "@stoplight/types": ^13.6.0 - "@types/json-schema": ^7.0.7 - ajv: ^8.17.1 - ajv-formats: ~2.1.0 - json-schema-traverse: ^1.0.0 - leven: 3.1.0 - lodash: ~4.17.21 - tslib: ^2.3.0 - checksum: 53b8515864f7132cd727073886adbf61fcbe39543ddf6d975799c75d9ef13d91f3940d5585c81c72da3c94365fd735d8935e885a3ac388c67d03a943af37977f + "@motionone/animation": ^10.12.0 + "@motionone/generators": ^10.12.0 + "@motionone/types": ^10.12.0 + "@motionone/utils": ^10.12.0 + hey-listen: ^1.0.8 + tslib: ^2.3.1 + checksum: 123356f28e44362c4f081aae3df22e576f46bfcb07e01257b2ac64a115668448f29b8de67e4b6e692c5407cffb78ffe7cf9fa1bc064007482bab5dd23a69d380 languageName: node linkType: hard -"@stoplight/spectral-runtime@npm:^1.0.0, @stoplight/spectral-runtime@npm:^1.1.0, @stoplight/spectral-runtime@npm:^1.1.1, @stoplight/spectral-runtime@npm:^1.1.2": - version: 1.1.2 - resolution: "@stoplight/spectral-runtime@npm:1.1.2" +"@motionone/easing@npm:^10.18.0": + version: 10.18.0 + resolution: "@motionone/easing@npm:10.18.0" dependencies: - "@stoplight/json": ^3.17.0 - "@stoplight/path": ^1.3.2 - "@stoplight/types": ^12.3.0 - abort-controller: ^3.0.0 - lodash: ^4.17.21 - node-fetch: ^2.6.7 + "@motionone/utils": ^10.18.0 tslib: ^2.3.1 - checksum: 35964a38f82384e6e0158988173a50ab7f473a2ed6e942073de023bd28fb696b5b913336a84d016b046346294be9cfa3a88c6a908c2622c0ceb36f16ca76e084 + checksum: 6bd37f7a9d5a88f868cc0ad6e47d2ba8d9fefd7da84fccfea7ed77ec08c2e6d1e42df88dda462665102a5cf03f748231a1a077de7054b5a8ccb0fbf36f61b1e7 languageName: node linkType: hard -"@stoplight/types@npm:^12.3.0": - version: 12.5.0 - resolution: "@stoplight/types@npm:12.5.0" +"@motionone/generators@npm:^10.12.0": + version: 10.18.0 + resolution: "@motionone/generators@npm:10.18.0" dependencies: - "@types/json-schema": ^7.0.4 - utility-types: ^3.10.0 - checksum: fe4a09df6e1c2f0cdb53f474b180cc7b8184e814e1ac4427d199642f10958335f597060530a908c0e5800ba2569d077afe124a51deaee466255ce942e1e03941 + "@motionone/types": ^10.17.1 + "@motionone/utils": ^10.18.0 + tslib: ^2.3.1 + checksum: 51a0e075681697b11d0771998cac8c76a745f00141502f81adb953896992b7f49478965e4afe696bc83361afaae8d2f1057d71c25b21035fe67258ff73764f1c languageName: node linkType: hard -"@stoplight/types@npm:^12.3.0 || ^13.0.0, @stoplight/types@npm:^13.15.0, @stoplight/types@npm:^13.6.0": - version: 13.20.0 - resolution: "@stoplight/types@npm:13.20.0" - dependencies: - "@types/json-schema": ^7.0.4 - utility-types: ^3.10.0 - checksum: b4c7ee22a8d4377aa9b2f901887c17b4a27d1009b2b9348962b2c6a72100ca954d11293a6dd2de01920e8fdc589e31b20ad84421eb0bf5edd9aeef5b5810f04b +"@motionone/types@npm:^10.12.0, @motionone/types@npm:^10.17.1": + version: 10.17.1 + resolution: "@motionone/types@npm:10.17.1" + checksum: 3fa74db64e371e61a7f7669d7d541d11c9a8dd871032d59c69041e3b2e07a67ad2ed8767cb9273bac90eed4e1f76efc1f14c8673c2e9a288f6070ee0fef64a25 languageName: node linkType: hard -"@stoplight/types@npm:^14.0.0, @stoplight/types@npm:^14.1.1": - version: 14.1.1 - resolution: "@stoplight/types@npm:14.1.1" +"@motionone/utils@npm:^10.12.0, @motionone/utils@npm:^10.18.0": + version: 10.18.0 + resolution: "@motionone/utils@npm:10.18.0" dependencies: - "@types/json-schema": ^7.0.4 - utility-types: ^3.10.0 - checksum: 1da2e683e88afe2f72c3b3af341537bc9bac153d224f65744ca60d44eade93609ce91172064ae27093e1ebfa7bcbf05fb232a1910d83b2aee5b1eed4bb726200 + "@motionone/types": ^10.17.1 + hey-listen: ^1.0.8 + tslib: ^2.3.1 + checksum: a27f9afde693a0cbbbcb33962b12bbe40dd2cfa514b0732f3c7953c5ef4beed738e1e8172a2de89e3b9f74a253ef0a70d7f3efb730be97b77d7176a3ffacb67a languageName: node linkType: hard -"@stoplight/types@npm:~13.6.0": - version: 13.6.0 - resolution: "@stoplight/types@npm:13.6.0" +"@mswjs/cookies@npm:^0.2.2": + version: 0.2.2 + resolution: "@mswjs/cookies@npm:0.2.2" dependencies: - "@types/json-schema": ^7.0.4 - utility-types: ^3.10.0 - checksum: 4cc81cf29decc0392f15c71b21fd11cd806bcf99168ae4509ed41c2b7dbcfbd5a83c7f9f320edb5a518cc483fd18dd8794c54b232fb6a6f2a7b6e9fb6ca20269 + "@types/set-cookie-parser": ^2.4.0 + set-cookie-parser: ^2.4.6 + checksum: 23b1ef56d57efcc1b44600076f531a1fb703855af342a31e01bad4adaf0dab51f6d3b5595a95a7988c3f612ba075835f9a06c52833205284d101eb9a51dd72b0 languageName: node linkType: hard -"@stoplight/yaml-ast-parser@npm:0.0.50": - version: 0.0.50 - resolution: "@stoplight/yaml-ast-parser@npm:0.0.50" - checksum: dd46f2e39cef4e3a56276202872282bc435c5f92ea7cf344abd6722fbdab62547ec7d2b84983c6c05aaa2776ac29efd53affe6d9753cce10ef37b4e15ce6ccdc +"@mswjs/interceptors@npm:^0.17.10": + version: 0.17.10 + resolution: "@mswjs/interceptors@npm:0.17.10" + dependencies: + "@open-draft/until": ^1.0.3 + "@types/debug": ^4.1.7 + "@xmldom/xmldom": ^0.8.3 + debug: ^4.3.3 + headers-polyfill: 3.2.5 + outvariant: ^1.2.1 + strict-event-emitter: ^0.2.4 + web-encoding: ^1.1.5 + checksum: 0e6d32f399144b5cefe6fd7620f2776c83adc9bbbbccf2eb4ea347332be059f585136c44168c09b544c41cd3d686f88e43432e10192227a24fbb0c98a2f52dc8 languageName: node linkType: hard -"@stoplight/yaml@npm:~4.3.0": - version: 4.3.0 - resolution: "@stoplight/yaml@npm:4.3.0" - dependencies: - "@stoplight/ordered-object-literal": ^1.0.5 - "@stoplight/types": ^14.1.1 - "@stoplight/yaml-ast-parser": 0.0.50 - tslib: ^2.2.0 - checksum: f113f600a62b75c76c96c27ce3713ba2c48be205fca73097699b66b6f861411c6917dcc5afa4dd08c17fe63f5181b49fa2be9c6500140ea5d05a107ffcb48a4f +"@mui/core-downloads-tracker@npm:^5.16.12": + version: 5.16.12 + resolution: "@mui/core-downloads-tracker@npm:5.16.12" + checksum: ade13080e61da63394556e8e3da5c8d20147b1b51f73487f8972bbf25812efa90e1a757d83145e55b215f7e1c08a2e4b65a081e0f25ce2992e076f35aa17ba94 languageName: node linkType: hard -"@sucrase/webpack-loader@npm:^2.0.0": - version: 2.0.0 - resolution: "@sucrase/webpack-loader@npm:2.0.0" +"@mui/icons-material@npm:^5.15.8": + version: 5.16.12 + resolution: "@mui/icons-material@npm:5.16.12" dependencies: - loader-utils: ^1.1.0 + "@babel/runtime": ^7.23.9 peerDependencies: - sucrase: ^3 - checksum: 16578991b1b888ac5bec5628bd24db9e21651bbbe30de076aece8787f115d8971ac87a20bc75446187c73c3185851ec2233d5b6f18c4a2dd53fbbb1ed4e488b4 + "@mui/material": ^5.0.0 + "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 932b48e64e80ff6c01f359fe469a36f1195127abe42cdc4dcfc444b79e861e018dfc3a86c13f6158ba43997b1fdbee5fab337c728b05833f9d66875f4250c3e0 languageName: node linkType: hard -"@svgr/babel-plugin-add-jsx-attribute@npm:8.0.0": - version: 8.0.0 - resolution: "@svgr/babel-plugin-add-jsx-attribute@npm:8.0.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 3fc8e35d16f5abe0af5efe5851f27581225ac405d6a1ca44cda0df064cddfcc29a428c48c2e4bef6cebf627c9ac2f652a096030edb02cf5a120ce28d3c234710 +"@mui/material@npm:^5.12.2": + version: 5.16.12 + resolution: "@mui/material@npm:5.16.12" + dependencies: + "@babel/runtime": ^7.23.9 + "@mui/core-downloads-tracker": ^5.16.12 + "@mui/system": ^5.16.12 + "@mui/types": ^7.2.15 + "@mui/utils": ^5.16.12 + "@popperjs/core": ^2.11.8 + "@types/react-transition-group": ^4.4.10 + clsx: ^2.1.0 + csstype: ^3.1.3 + prop-types: ^15.8.1 + react-is: ^19.0.0 + react-transition-group: ^4.4.5 + peerDependencies: + "@emotion/react": ^11.5.0 + "@emotion/styled": ^11.3.0 + "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@emotion/react": + optional: true + "@emotion/styled": + optional: true + "@types/react": + optional: true + checksum: a29677300bb38fddf2e4455cf497233676a6a4ee982b1d4ff4c5b520ce608da526ba934d6670747e207bea354725e68854a4e5671c0980f70dba0f9cf20178c8 languageName: node linkType: hard -"@svgr/babel-plugin-add-jsx-attribute@npm:^6.5.1": - version: 6.5.1 - resolution: "@svgr/babel-plugin-add-jsx-attribute@npm:6.5.1" +"@mui/private-theming@npm:^5.16.12": + version: 5.16.12 + resolution: "@mui/private-theming@npm:5.16.12" + dependencies: + "@babel/runtime": ^7.23.9 + "@mui/utils": ^5.16.12 + prop-types: ^15.8.1 peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: cab83832830a57735329ed68f67c03b57ca21fa037b0134847b0c5c0ef4beca89956d7dacfbf7b2a10fd901e7009e877512086db2ee918b8c69aee7742ae32c0 + "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: a51ddd672545be389528d501fe591c3fd03d1317373760eb942e6bd489e56a9bd0da7add01c9420a1007b113902caef2fadf7c9cb4f9b17ea9b2e0007979cb71 languageName: node linkType: hard -"@svgr/babel-plugin-remove-jsx-attribute@npm:*, @svgr/babel-plugin-remove-jsx-attribute@npm:8.0.0": - version: 8.0.0 - resolution: "@svgr/babel-plugin-remove-jsx-attribute@npm:8.0.0" +"@mui/styled-engine@npm:^5.16.12": + version: 5.16.12 + resolution: "@mui/styled-engine@npm:5.16.12" + dependencies: + "@babel/runtime": ^7.23.9 + "@emotion/cache": ^11.13.5 + csstype: ^3.1.3 + prop-types: ^15.8.1 peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: ff992893c6c4ac802713ba3a97c13be34e62e6d981c813af40daabcd676df68a72a61bd1e692bb1eda3587f1b1d700ea462222ae2153bb0f46886632d4f88d08 + "@emotion/react": ^11.4.1 + "@emotion/styled": ^11.3.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@emotion/react": + optional: true + "@emotion/styled": + optional: true + checksum: fa762742ef0a41077dfa0c12c5e3441e32d357192f32fc16b29ee7897ce92a4665cd644b09655dea02fe402da4fc83649901bd34822af784ed359bcc6572ee39 languageName: node linkType: hard -"@svgr/babel-plugin-remove-jsx-empty-expression@npm:*, @svgr/babel-plugin-remove-jsx-empty-expression@npm:8.0.0": - version: 8.0.0 - resolution: "@svgr/babel-plugin-remove-jsx-empty-expression@npm:8.0.0" +"@mui/system@npm:^5.16.12": + version: 5.16.12 + resolution: "@mui/system@npm:5.16.12" + dependencies: + "@babel/runtime": ^7.23.9 + "@mui/private-theming": ^5.16.12 + "@mui/styled-engine": ^5.16.12 + "@mui/types": ^7.2.15 + "@mui/utils": ^5.16.12 + clsx: ^2.1.0 + csstype: ^3.1.3 + prop-types: ^15.8.1 peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 0fb691b63a21bac00da3aa2dccec50d0d5a5b347ff408d60803b84410d8af168f2656e4ba1ee1f24dab0ae4e4af77901f2928752bb0434c1f6788133ec599ec8 + "@emotion/react": ^11.5.0 + "@emotion/styled": ^11.3.0 + "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@emotion/react": + optional: true + "@emotion/styled": + optional: true + "@types/react": + optional: true + checksum: 261fbf349e6ef1462f46d92221697efe0aefcde33975eeb214dd2fa97b77ca76236cae0c221bc9e30e84775b8d3ebd9a4dd779666e833f671cf7b3a11a50a39d languageName: node linkType: hard -"@svgr/babel-plugin-replace-jsx-attribute-value@npm:8.0.0": - version: 8.0.0 - resolution: "@svgr/babel-plugin-replace-jsx-attribute-value@npm:8.0.0" +"@mui/types@npm:^7.2.15": + version: 7.2.20 + resolution: "@mui/types@npm:7.2.20" peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 1edda65ef4f4dd8f021143c8ec276a08f6baa6f733b8e8ee2e7775597bf6b97afb47fdeefd579d6ae6c959fe2e634f55cd61d99377631212228c8cfb351b8921 + "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 71f27a90ddbfca3520908ac40cc11768ec0e656e529c405c0c8307f9d9dec2dc61631b0357b00e6cef7f7129d1372dfb7bca373931ccd6ff678256f7c80ebc11 languageName: node linkType: hard -"@svgr/babel-plugin-replace-jsx-attribute-value@npm:^6.5.1": - version: 6.5.1 - resolution: "@svgr/babel-plugin-replace-jsx-attribute-value@npm:6.5.1" +"@mui/utils@npm:^5.14.15, @mui/utils@npm:^5.16.12": + version: 5.16.12 + resolution: "@mui/utils@npm:5.16.12" + dependencies: + "@babel/runtime": ^7.23.9 + "@mui/types": ^7.2.15 + "@types/prop-types": ^15.7.12 + clsx: ^2.1.1 + prop-types: ^15.8.1 + react-is: ^19.0.0 peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: b7d2125758e766e1ebd14b92216b800bdc976959bc696dbfa1e28682919147c1df4bb8b1b5fd037d7a83026e27e681fea3b8d3741af8d3cf4c9dfa3d412125df + "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 0f6df27d39d9c7c5dcd041fc8a2e40bd222180aaa140c7c4f7f7a79e79edbd2f15ffcd407ab27ec58142a2cb9858f078cf20f0ccb0d854ec7a426475bf0dabce languageName: node linkType: hard -"@svgr/babel-plugin-svg-dynamic-title@npm:8.0.0": - version: 8.0.0 - resolution: "@svgr/babel-plugin-svg-dynamic-title@npm:8.0.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 876cec891488992e6a9aebb8155e2bea4ec461b4718c51de36e988e00e271c6d9d01ef6be17b9effd44b2b3d7db0b41c161a5904a46ae6f38b26b387ad7f3709 +"@n1ru4l/push-pull-async-iterable-iterator@npm:^3.1.0": + version: 3.2.0 + resolution: "@n1ru4l/push-pull-async-iterable-iterator@npm:3.2.0" + checksum: 2c7bdbc6c3d8f0aa05c2e3e80c4a856f766e6113a86198fd0df2448117f7cfa71ee2946f6aa7e745caec6ac04d19a5a61c6c80c6fdbf686d43984b3791f0a04d languageName: node linkType: hard -"@svgr/babel-plugin-svg-dynamic-title@npm:^6.5.1": - version: 6.5.1 - resolution: "@svgr/babel-plugin-svg-dynamic-title@npm:6.5.1" +"@nestjs/axios@npm:3.1.1": + version: 3.1.1 + resolution: "@nestjs/axios@npm:3.1.1" peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 0fd42ebf127ae9163ef341e84972daa99bdcb9e6ed3f83aabd95ee173fddc43e40e02fa847fbc0a1058cf5549f72b7960a2c5e22c3e4ac18f7e3ac81277852ae + "@nestjs/common": ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 + axios: ^1.3.1 + rxjs: ^6.0.0 || ^7.0.0 + checksum: a224cf85156b6a93ba7e4c15488160f5e904d7522ef63d7eef05a59fe109099117c5d565a8ace11393b01215417375ad1d79160256c7f280c94369f54603006d languageName: node linkType: hard -"@svgr/babel-plugin-svg-em-dimensions@npm:8.0.0": - version: 8.0.0 - resolution: "@svgr/babel-plugin-svg-em-dimensions@npm:8.0.0" +"@nestjs/common@npm:10.4.6": + version: 10.4.6 + resolution: "@nestjs/common@npm:10.4.6" + dependencies: + iterare: 1.2.1 + tslib: 2.7.0 + uid: 2.0.2 peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: be0e2d391164428327d9ec469a52cea7d93189c6b0e2c290999e048f597d777852f701c64dca44cd45b31ed14a7f859520326e2e4ad7c3a4545d0aa235bc7e9a + class-transformer: "*" + class-validator: "*" + reflect-metadata: ^0.1.12 || ^0.2.0 + rxjs: ^7.1.0 + peerDependenciesMeta: + class-transformer: + optional: true + class-validator: + optional: true + checksum: 82478ce932867104af9a31b755af369bfb20931eb368874a22abfc553775e2c0fc3e55d07c8c948ab664a15f3ff6193bafb691658054b0b668a40a7e947033a2 languageName: node linkType: hard -"@svgr/babel-plugin-svg-em-dimensions@npm:^6.5.1": - version: 6.5.1 - resolution: "@svgr/babel-plugin-svg-em-dimensions@npm:6.5.1" +"@nestjs/core@npm:10.4.6": + version: 10.4.6 + resolution: "@nestjs/core@npm:10.4.6" + dependencies: + "@nuxtjs/opencollective": 0.3.2 + fast-safe-stringify: 2.1.1 + iterare: 1.2.1 + path-to-regexp: 3.3.0 + tslib: 2.7.0 + uid: 2.0.2 peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: c1550ee9f548526fa66fd171e3ffb5696bfc4e4cd108a631d39db492c7410dc10bba4eb5a190e9df824bf806130ccc586ae7d2e43c547e6a4f93bbb29a18f344 + "@nestjs/common": ^10.0.0 + "@nestjs/microservices": ^10.0.0 + "@nestjs/platform-express": ^10.0.0 + "@nestjs/websockets": ^10.0.0 + reflect-metadata: ^0.1.12 || ^0.2.0 + rxjs: ^7.1.0 + peerDependenciesMeta: + "@nestjs/microservices": + optional: true + "@nestjs/platform-express": + optional: true + "@nestjs/websockets": + optional: true + checksum: d7d6e8129c344c3b7d5b41a98846de64614587842dd84b3050438da738530bdbea211efa0a08c65c274d2616ffb560096ab019254710b355ff57d92432ccb0ab languageName: node linkType: hard -"@svgr/babel-plugin-transform-react-native-svg@npm:8.1.0": - version: 8.1.0 - resolution: "@svgr/babel-plugin-transform-react-native-svg@npm:8.1.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 85b434a57572f53bd2b9f0606f253e1fcf57b4a8c554ec3f2d43ed17f50d8cae200cb3aaf1ec9d626e1456e8b135dce530ae047eb0bed6d4bf98a752d6640459 +"@node-saml/node-saml@npm:^5.0.0": + version: 5.0.0 + resolution: "@node-saml/node-saml@npm:5.0.0" + dependencies: + "@types/debug": ^4.1.12 + "@types/qs": ^6.9.11 + "@types/xml-encryption": ^1.2.4 + "@types/xml2js": ^0.4.14 + "@xmldom/is-dom-node": ^1.0.1 + "@xmldom/xmldom": ^0.8.10 + debug: ^4.3.4 + xml-crypto: ^6.0.0 + xml-encryption: ^3.0.2 + xml2js: ^0.6.2 + xmlbuilder: ^15.1.1 + xpath: ^0.0.34 + checksum: 6a9ff9d922befc8ccb3338fe8f989eba66d3f781a3d1f39c4bd1d5c58fc1acd74ae05d94a08ef9c4ff1990ad38d0ca97135de52bbfe79196594e76f75e7b7e13 languageName: node linkType: hard -"@svgr/babel-plugin-transform-react-native-svg@npm:^6.5.1": - version: 6.5.1 - resolution: "@svgr/babel-plugin-transform-react-native-svg@npm:6.5.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 4c924af22b948b812629e80efb90ad1ec8faae26a232d8ca8a06b46b53e966a2c415a57806a3ff0ea806a622612e546422719b69ec6839717a7755dac19171d9 +"@node-saml/passport-saml@npm:^5.0.0": + version: 5.0.0 + resolution: "@node-saml/passport-saml@npm:5.0.0" + dependencies: + "@node-saml/node-saml": ^5.0.0 + "@types/express": ^4.17.21 + "@types/passport": ^1.0.16 + "@types/passport-strategy": ^0.2.38 + passport: ^0.7.0 + passport-strategy: ^1.0.0 + checksum: f5a5e3f731decd7cc3fa5effdd462e3265fa9da4455014041c62e678212b86200ec07e34083f6107c2db79157334e8f6af8658220bb865ad579317ca9465b05b languageName: node linkType: hard -"@svgr/babel-plugin-transform-svg-component@npm:8.0.0": - version: 8.0.0 - resolution: "@svgr/babel-plugin-transform-svg-component@npm:8.0.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 04e2023d75693eeb0890341c40e449881184663056c249be7e5c80168e4aabb0fadd255e8d5d2dbf54b8c2a6e700efba994377135bfa4060dc4a2e860116ef8c +"@nodelib/fs.scandir@npm:2.1.5": + version: 2.1.5 + resolution: "@nodelib/fs.scandir@npm:2.1.5" + dependencies: + "@nodelib/fs.stat": 2.0.5 + run-parallel: ^1.1.9 + checksum: a970d595bd23c66c880e0ef1817791432dbb7acbb8d44b7e7d0e7a22f4521260d4a83f7f9fd61d44fda4610105577f8f58a60718105fb38352baed612fd79e59 languageName: node linkType: hard -"@svgr/babel-plugin-transform-svg-component@npm:^6.5.1": - version: 6.5.1 - resolution: "@svgr/babel-plugin-transform-svg-component@npm:6.5.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: e496bb5ee871feb6bcab250b6e067322da7dd5c9c2b530b41e5586fe090f86611339b49d0a909c334d9b24cbca0fa755c949a2526c6ad03c6b5885666874cf5f +"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2": + version: 2.0.5 + resolution: "@nodelib/fs.stat@npm:2.0.5" + checksum: 012480b5ca9d97bff9261571dbbec7bbc6033f69cc92908bc1ecfad0792361a5a1994bc48674b9ef76419d056a03efadfce5a6cf6dbc0a36559571a7a483f6f0 languageName: node linkType: hard -"@svgr/babel-preset@npm:8.1.0": - version: 8.1.0 - resolution: "@svgr/babel-preset@npm:8.1.0" +"@nodelib/fs.walk@npm:1.2.8, @nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.8": + version: 1.2.8 + resolution: "@nodelib/fs.walk@npm:1.2.8" dependencies: - "@svgr/babel-plugin-add-jsx-attribute": 8.0.0 - "@svgr/babel-plugin-remove-jsx-attribute": 8.0.0 - "@svgr/babel-plugin-remove-jsx-empty-expression": 8.0.0 - "@svgr/babel-plugin-replace-jsx-attribute-value": 8.0.0 - "@svgr/babel-plugin-svg-dynamic-title": 8.0.0 - "@svgr/babel-plugin-svg-em-dimensions": 8.0.0 - "@svgr/babel-plugin-transform-react-native-svg": 8.1.0 - "@svgr/babel-plugin-transform-svg-component": 8.0.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 3a67930f080b8891e1e8e2595716b879c944d253112bae763dce59807ba23454d162216c8d66a0a0e3d4f38a649ecd6c387e545d1e1261dd69a68e9a3392ee08 + "@nodelib/fs.scandir": 2.1.5 + fastq: ^1.6.0 + checksum: 190c643f156d8f8f277bf2a6078af1ffde1fd43f498f187c2db24d35b4b4b5785c02c7dc52e356497b9a1b65b13edc996de08de0b961c32844364da02986dc53 languageName: node linkType: hard -"@svgr/babel-preset@npm:^6.5.1": - version: 6.5.1 - resolution: "@svgr/babel-preset@npm:6.5.1" +"@npmcli/agent@npm:^2.0.0": + version: 2.2.2 + resolution: "@npmcli/agent@npm:2.2.2" dependencies: - "@svgr/babel-plugin-add-jsx-attribute": ^6.5.1 - "@svgr/babel-plugin-remove-jsx-attribute": "*" - "@svgr/babel-plugin-remove-jsx-empty-expression": "*" - "@svgr/babel-plugin-replace-jsx-attribute-value": ^6.5.1 - "@svgr/babel-plugin-svg-dynamic-title": ^6.5.1 - "@svgr/babel-plugin-svg-em-dimensions": ^6.5.1 - "@svgr/babel-plugin-transform-react-native-svg": ^6.5.1 - "@svgr/babel-plugin-transform-svg-component": ^6.5.1 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 9f124be39a8e64f909162f925b3a63ddaa5a342a5e24fc0b7f7d9d4d7f7e3b916596c754fb557dc259928399cad5366a27cb231627a0d2dcc4b13ac521cf05af + agent-base: ^7.1.0 + http-proxy-agent: ^7.0.0 + https-proxy-agent: ^7.0.1 + lru-cache: ^10.0.1 + socks-proxy-agent: ^8.0.3 + checksum: 67de7b88cc627a79743c88bab35e023e23daf13831a8aa4e15f998b92f5507b644d8ffc3788afc8e64423c612e0785a6a92b74782ce368f49a6746084b50d874 languageName: node linkType: hard -"@svgr/core@npm:6.5.x, @svgr/core@npm:^6.5.1": - version: 6.5.1 - resolution: "@svgr/core@npm:6.5.1" +"@npmcli/agent@npm:^3.0.0": + version: 3.0.0 + resolution: "@npmcli/agent@npm:3.0.0" dependencies: - "@babel/core": ^7.19.6 - "@svgr/babel-preset": ^6.5.1 - "@svgr/plugin-jsx": ^6.5.1 - camelcase: ^6.2.0 - cosmiconfig: ^7.0.1 - checksum: fd6d6d5da5aeb956703310480b626c1fb3e3973ad9fe8025efc1dcf3d895f857b70d100c63cf32cebb20eb83c9607bafa464c9436e18fe6fe4fafdc73ed6b1a5 + agent-base: ^7.1.0 + http-proxy-agent: ^7.0.0 + https-proxy-agent: ^7.0.1 + lru-cache: ^10.0.1 + socks-proxy-agent: ^8.0.3 + checksum: e8fc25d536250ed3e669813b36e8c6d805628b472353c57afd8c4fde0fcfcf3dda4ffe22f7af8c9070812ec2e7a03fb41d7151547cef3508efe661a5a3add20f languageName: node linkType: hard -"@svgr/core@npm:8.1.0": - version: 8.1.0 - resolution: "@svgr/core@npm:8.1.0" +"@npmcli/fs@npm:^2.1.0": + version: 2.1.2 + resolution: "@npmcli/fs@npm:2.1.2" dependencies: - "@babel/core": ^7.21.3 - "@svgr/babel-preset": 8.1.0 - camelcase: ^6.2.0 - cosmiconfig: ^8.1.3 - snake-case: ^3.0.4 - checksum: da4a12865c7dc59829d58df8bd232d6c85b7115fda40da0d2f844a1a51886e2e945560596ecfc0345d37837ac457de86a931e8b8d8550e729e0c688c02250d8a + "@gar/promisify": ^1.1.3 + semver: ^7.3.5 + checksum: 405074965e72d4c9d728931b64d2d38e6ea12066d4fad651ac253d175e413c06fe4350970c783db0d749181da8fe49c42d3880bd1cbc12cd68e3a7964d820225 languageName: node linkType: hard -"@svgr/hast-util-to-babel-ast@npm:8.0.0": - version: 8.0.0 - resolution: "@svgr/hast-util-to-babel-ast@npm:8.0.0" +"@npmcli/fs@npm:^3.1.0": + version: 3.1.1 + resolution: "@npmcli/fs@npm:3.1.1" dependencies: - "@babel/types": ^7.21.3 - entities: ^4.4.0 - checksum: 88401281a38bbc7527e65ff5437970414391a86158ef4b4046c89764c156d2d39ecd7cce77be8a51994c9fb3249170cb1eb8b9128b62faaa81743ef6ed3534ab + semver: ^7.3.5 + checksum: d960cab4b93adcb31ce223bfb75c5714edbd55747342efb67dcc2f25e023d930a7af6ece3e75f2f459b6f38fc14d031c766f116cd124fdc937fd33112579e820 languageName: node linkType: hard -"@svgr/hast-util-to-babel-ast@npm:^6.5.1": - version: 6.5.1 - resolution: "@svgr/hast-util-to-babel-ast@npm:6.5.1" +"@npmcli/fs@npm:^4.0.0": + version: 4.0.0 + resolution: "@npmcli/fs@npm:4.0.0" dependencies: - "@babel/types": ^7.20.0 - entities: ^4.4.0 - checksum: 37923cce1b3f4e2039077b0c570b6edbabe37d1cf1a6ee35e71e0fe00f9cffac450eec45e9720b1010418131a999cb0047331ba1b6d1d2c69af1b92ac785aacf + semver: ^7.3.5 + checksum: 68951c589e9a4328698a35fd82fe71909a257d6f2ede0434d236fa55634f0fbcad9bb8755553ce5849bd25ee6f019f4d435921ac715c853582c4a7f5983c8d4a languageName: node linkType: hard -"@svgr/plugin-jsx@npm:6.5.x, @svgr/plugin-jsx@npm:^6.5.1": - version: 6.5.1 - resolution: "@svgr/plugin-jsx@npm:6.5.1" +"@npmcli/move-file@npm:^2.0.0": + version: 2.0.1 + resolution: "@npmcli/move-file@npm:2.0.1" dependencies: - "@babel/core": ^7.19.6 - "@svgr/babel-preset": ^6.5.1 - "@svgr/hast-util-to-babel-ast": ^6.5.1 - svg-parser: ^2.0.4 - peerDependencies: - "@svgr/core": ^6.0.0 - checksum: 42f22847a6bdf930514d7bedd3c5e1fd8d53eb3594779f9db16cb94c762425907c375cd8ec789114e100a4d38068aca6c7ab5efea4c612fba63f0630c44cc859 + mkdirp: ^1.0.4 + rimraf: ^3.0.2 + checksum: 52dc02259d98da517fae4cb3a0a3850227bdae4939dda1980b788a7670636ca2b4a01b58df03dd5f65c1e3cb70c50fa8ce5762b582b3f499ec30ee5ce1fd9380 languageName: node linkType: hard -"@svgr/plugin-jsx@npm:8.1.0": - version: 8.1.0 - resolution: "@svgr/plugin-jsx@npm:8.1.0" +"@nuxtjs/opencollective@npm:0.3.2": + version: 0.3.2 + resolution: "@nuxtjs/opencollective@npm:0.3.2" dependencies: - "@babel/core": ^7.21.3 - "@svgr/babel-preset": 8.1.0 - "@svgr/hast-util-to-babel-ast": 8.0.0 - svg-parser: ^2.0.4 - peerDependencies: - "@svgr/core": "*" - checksum: 0418a9780753d3544912ee2dad5d2cf8d12e1ba74df8053651b3886aeda54d5f0f7d2dece0af5e0d838332c4f139a57f0dabaa3ca1afa4d1a765efce6a7656f2 + chalk: ^4.1.0 + consola: ^2.15.0 + node-fetch: ^2.6.1 + bin: + opencollective: bin/opencollective.js + checksum: fd3737c12edf55b5c2279674664c3ed5e756410ea82e9cd324c3f0e032ed5ccd8df1959ec69ea97f2f1c9c33c884aae3d7a7108a73ea0faa90d74ea47cf364d4 languageName: node linkType: hard -"@svgr/plugin-svgo@npm:6.5.x, @svgr/plugin-svgo@npm:^6.5.1": - version: 6.5.1 - resolution: "@svgr/plugin-svgo@npm:6.5.1" +"@octokit/app@npm:^14.0.2": + version: 14.1.0 + resolution: "@octokit/app@npm:14.1.0" dependencies: - cosmiconfig: ^7.0.1 - deepmerge: ^4.2.2 - svgo: ^2.8.0 - peerDependencies: - "@svgr/core": "*" - checksum: cd2833530ac0485221adc2146fd992ab20d79f4b12eebcd45fa859721dd779483158e11dfd9a534858fe468416b9412416e25cbe07ac7932c44ed5fa2021c72e + "@octokit/auth-app": ^6.0.0 + "@octokit/auth-unauthenticated": ^5.0.0 + "@octokit/core": ^5.0.0 + "@octokit/oauth-app": ^6.0.0 + "@octokit/plugin-paginate-rest": ^9.0.0 + "@octokit/types": ^12.0.0 + "@octokit/webhooks": ^12.0.4 + checksum: 2a27ea831d0367b07f3c4109bbc840c7ae7d5a52d3129593cd867364794eb51b16b0fc308b116a89af9a2f19553c72346e03dd07b952e82c222ed1e7880dfcac languageName: node linkType: hard -"@svgr/plugin-svgo@npm:8.1.0": - version: 8.1.0 - resolution: "@svgr/plugin-svgo@npm:8.1.0" +"@octokit/auth-app@npm:^4.0.0": + version: 4.0.13 + resolution: "@octokit/auth-app@npm:4.0.13" dependencies: - cosmiconfig: ^8.1.3 - deepmerge: ^4.3.1 - svgo: ^3.0.2 - peerDependencies: - "@svgr/core": "*" - checksum: 59d9d214cebaacca9ca71a561f463d8b7e5a68ca9443e4792a42d903acd52259b1790c0680bc6afecc3f00a255a6cbd7ea278a9f625bac443620ea58a590c2d0 + "@octokit/auth-oauth-app": ^5.0.0 + "@octokit/auth-oauth-user": ^2.0.0 + "@octokit/request": ^6.0.0 + "@octokit/request-error": ^3.0.0 + "@octokit/types": ^9.0.0 + deprecation: ^2.3.1 + lru-cache: ^9.0.0 + universal-github-app-jwt: ^1.1.1 + universal-user-agent: ^6.0.0 + checksum: 809004bc3e985fd4911cc42060fecd7b88e609e1334b90c4f79711aa27cade03fa1d930945ea8f7339ddd8d4514dd220a6ae8489faefa9e0ce6881519a02fc37 languageName: node linkType: hard -"@svgr/rollup@npm:6.5.x": - version: 6.5.1 - resolution: "@svgr/rollup@npm:6.5.1" +"@octokit/auth-app@npm:^6.0.0": + version: 6.1.3 + resolution: "@octokit/auth-app@npm:6.1.3" dependencies: - "@babel/core": ^7.19.6 - "@babel/plugin-transform-react-constant-elements": ^7.18.12 - "@babel/preset-env": ^7.19.4 - "@babel/preset-react": ^7.18.6 - "@babel/preset-typescript": ^7.18.6 - "@rollup/pluginutils": ^4.2.1 - "@svgr/core": ^6.5.1 - "@svgr/plugin-jsx": ^6.5.1 - "@svgr/plugin-svgo": ^6.5.1 - checksum: 809198a655c280b434d762829aeab0c48e545daaa7a520ac87d5e7cfe96402eb4d0c01f8b25959fcc37a2ce4aa1a53c9e1c4ccb1206cd5833883a34db5799dd4 + "@octokit/auth-oauth-app": ^7.1.0 + "@octokit/auth-oauth-user": ^4.1.0 + "@octokit/request": ^8.3.1 + "@octokit/request-error": ^5.1.0 + "@octokit/types": ^13.1.0 + deprecation: ^2.3.1 + lru-cache: "npm:@wolfy1339/lru-cache@^11.0.2-patch.1" + universal-github-app-jwt: ^1.1.2 + universal-user-agent: ^6.0.0 + checksum: 997a4abd2b85b3751d63034b38ecbf8b711ee212f99df32586812e8e99637fc29f50e051f51c1dec04e0f8de3f9cb8c722c65eb1890e02b6b3e3f6dc1323fa93 languageName: node linkType: hard -"@svgr/rollup@npm:^8.1.0": - version: 8.1.0 - resolution: "@svgr/rollup@npm:8.1.0" +"@octokit/auth-oauth-app@npm:^5.0.0": + version: 5.0.6 + resolution: "@octokit/auth-oauth-app@npm:5.0.6" dependencies: - "@babel/core": ^7.21.3 - "@babel/plugin-transform-react-constant-elements": ^7.21.3 - "@babel/preset-env": ^7.20.2 - "@babel/preset-react": ^7.18.6 - "@babel/preset-typescript": ^7.21.0 - "@rollup/pluginutils": ^5.0.2 - "@svgr/core": 8.1.0 - "@svgr/plugin-jsx": 8.1.0 - "@svgr/plugin-svgo": 8.1.0 - checksum: 728e2d5ac9765e83852743c209663b4b32ca4182e42bfcf13a75d2205b041b14ee34013344589cd79ba9b0ba35cc86436524ffd4362b60d636305ffb2a3b4eb1 + "@octokit/auth-oauth-device": ^4.0.0 + "@octokit/auth-oauth-user": ^2.0.0 + "@octokit/request": ^6.0.0 + "@octokit/types": ^9.0.0 + "@types/btoa-lite": ^1.0.0 + btoa-lite: ^1.0.0 + universal-user-agent: ^6.0.0 + checksum: 2101b70d148409ce24be3b7b5c033b03d92362a7b5786c441532187dac59826dba0ffbe245beb0c4cec55bc4b843b84b4b2ba0ad8ec46a31cc15451f80705b19 languageName: node linkType: hard -"@svgr/webpack@npm:6.5.x, @svgr/webpack@npm:^6.5.1": - version: 6.5.1 - resolution: "@svgr/webpack@npm:6.5.1" +"@octokit/auth-oauth-app@npm:^7.0.0, @octokit/auth-oauth-app@npm:^7.1.0": + version: 7.1.0 + resolution: "@octokit/auth-oauth-app@npm:7.1.0" dependencies: - "@babel/core": ^7.19.6 - "@babel/plugin-transform-react-constant-elements": ^7.18.12 - "@babel/preset-env": ^7.19.4 - "@babel/preset-react": ^7.18.6 - "@babel/preset-typescript": ^7.18.6 - "@svgr/core": ^6.5.1 - "@svgr/plugin-jsx": ^6.5.1 - "@svgr/plugin-svgo": ^6.5.1 - checksum: d10582eb4fa82a5b6d314cb49f2c640af4fd3a60f5b76095d2b14e383ef6a43a6f4674b68774a21787dbde69dec0a251cfcfc3f9a96c82754ba5d5c6daf785f0 + "@octokit/auth-oauth-device": ^6.1.0 + "@octokit/auth-oauth-user": ^4.1.0 + "@octokit/request": ^8.3.1 + "@octokit/types": ^13.0.0 + "@types/btoa-lite": ^1.0.0 + btoa-lite: ^1.0.0 + universal-user-agent: ^6.0.0 + checksum: 021e13c138279e9edd7d6dcdc484a2658ae07b834ec3f5f41158e3870b3413deb09024408d1615731c960243ba710ca638a868dcd2583f7eb80fa6204b70657b languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.7.40": - version: 1.7.40 - resolution: "@swc/core-darwin-arm64@npm:1.7.40" - conditions: os=darwin & cpu=arm64 +"@octokit/auth-oauth-device@npm:^4.0.0": + version: 4.0.5 + resolution: "@octokit/auth-oauth-device@npm:4.0.5" + dependencies: + "@octokit/oauth-methods": ^2.0.0 + "@octokit/request": ^6.0.0 + "@octokit/types": ^9.0.0 + universal-user-agent: ^6.0.0 + checksum: 361824ba13c56beb05016b48b7d492f7439650abbb9e687c9f3e82ef4830790e1aae3d78c6e95dc317278146442c59821d87bf0b9b3c6d53f87117fe32b380d0 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.7.40": - version: 1.7.40 - resolution: "@swc/core-darwin-x64@npm:1.7.40" - conditions: os=darwin & cpu=x64 +"@octokit/auth-oauth-device@npm:^6.1.0": + version: 6.1.0 + resolution: "@octokit/auth-oauth-device@npm:6.1.0" + dependencies: + "@octokit/oauth-methods": ^4.1.0 + "@octokit/request": ^8.3.1 + "@octokit/types": ^13.0.0 + universal-user-agent: ^6.0.0 + checksum: 2824f74ea5eca3d8da9793f463ebca725c8a13a241085015f96f037771ef3e5fa82d5842f538353c683b709d8d32ccd481bfc0ba8cbcde708916ea95a78dd0d2 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.7.40": - version: 1.7.40 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.7.40" - conditions: os=linux & cpu=arm +"@octokit/auth-oauth-user@npm:^2.0.0": + version: 2.1.2 + resolution: "@octokit/auth-oauth-user@npm:2.1.2" + dependencies: + "@octokit/auth-oauth-device": ^4.0.0 + "@octokit/oauth-methods": ^2.0.0 + "@octokit/request": ^6.0.0 + "@octokit/types": ^9.0.0 + btoa-lite: ^1.0.0 + universal-user-agent: ^6.0.0 + checksum: cbb4994452b38fecebfd93bcf56b5ac7853f3bb880a42b00eec2fc6a9fdc6582293247cc8ead10814903f47195353c6450fe1a964184def7fe6e746da911b8bc languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.7.40": - version: 1.7.40 - resolution: "@swc/core-linux-arm64-gnu@npm:1.7.40" - conditions: os=linux & cpu=arm64 & libc=glibc +"@octokit/auth-oauth-user@npm:^4.0.0, @octokit/auth-oauth-user@npm:^4.1.0": + version: 4.1.0 + resolution: "@octokit/auth-oauth-user@npm:4.1.0" + dependencies: + "@octokit/auth-oauth-device": ^6.1.0 + "@octokit/oauth-methods": ^4.1.0 + "@octokit/request": ^8.3.1 + "@octokit/types": ^13.0.0 + btoa-lite: ^1.0.0 + universal-user-agent: ^6.0.0 + checksum: 581197a427c1ef153350e46de7315c9da1a98904b67e5e13aed88d36e334d95d869f8f12a35ed70d7232c6afd6d3912200988e41959e30c83f880d072ee8b8ba languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.7.40": - version: 1.7.40 - resolution: "@swc/core-linux-arm64-musl@npm:1.7.40" - conditions: os=linux & cpu=arm64 & libc=musl +"@octokit/auth-token@npm:^3.0.0": + version: 3.0.4 + resolution: "@octokit/auth-token@npm:3.0.4" + checksum: 42f533a873d4192e6df406b3176141c1f95287423ebdc4cf23a38bb77ee00ccbc0e60e3fbd5874234fc2ed2e67bbc6035e3b0561dacc1d078adb5c4ced3579e3 languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.7.40": - version: 1.7.40 - resolution: "@swc/core-linux-x64-gnu@npm:1.7.40" - conditions: os=linux & cpu=x64 & libc=glibc +"@octokit/auth-token@npm:^4.0.0": + version: 4.0.0 + resolution: "@octokit/auth-token@npm:4.0.0" + checksum: d78f4dc48b214d374aeb39caec4fdbf5c1e4fd8b9fcb18f630b1fe2cbd5a880fca05445f32b4561f41262cb551746aeb0b49e89c95c6dd99299706684d0cae2f languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.7.40": - version: 1.7.40 - resolution: "@swc/core-linux-x64-musl@npm:1.7.40" - conditions: os=linux & cpu=x64 & libc=musl +"@octokit/auth-unauthenticated@npm:^3.0.0": + version: 3.0.5 + resolution: "@octokit/auth-unauthenticated@npm:3.0.5" + dependencies: + "@octokit/request-error": ^3.0.0 + "@octokit/types": ^9.0.0 + checksum: 8372d732af9aeb09e51fc51c9aca00fb4522e182caf514898a27c5d7e33cfd8e39f9d00f7868cfc34ad437280a0fcafb312624a2968526110249e07b2b96b269 languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.7.40": - version: 1.7.40 - resolution: "@swc/core-win32-arm64-msvc@npm:1.7.40" - conditions: os=win32 & cpu=arm64 +"@octokit/auth-unauthenticated@npm:^5.0.0": + version: 5.0.1 + resolution: "@octokit/auth-unauthenticated@npm:5.0.1" + dependencies: + "@octokit/request-error": ^5.0.0 + "@octokit/types": ^12.0.0 + checksum: b6eed1fc15d47f45411c0229dd6613dd8fd4b79afbac23b8c47818da692a35d54f57e088294d9b71ce4dcc0f58ce0c77d12cd2700370d87770059248b9a8fbba languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.7.40": - version: 1.7.40 - resolution: "@swc/core-win32-ia32-msvc@npm:1.7.40" - conditions: os=win32 & cpu=ia32 +"@octokit/core@npm:^4.0.0, @octokit/core@npm:^4.2.1": + version: 4.2.4 + resolution: "@octokit/core@npm:4.2.4" + dependencies: + "@octokit/auth-token": ^3.0.0 + "@octokit/graphql": ^5.0.0 + "@octokit/request": ^6.0.0 + "@octokit/request-error": ^3.0.0 + "@octokit/types": ^9.0.0 + before-after-hook: ^2.2.0 + universal-user-agent: ^6.0.0 + checksum: ac8ab47440a31b0228a034aacac6994b64d6b073ad5b688b4c5157fc5ee0d1af1c926e6087bf17fd7244ee9c5998839da89065a90819bde4a97cb77d4edf58a6 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.7.40": - version: 1.7.40 - resolution: "@swc/core-win32-x64-msvc@npm:1.7.40" - conditions: os=win32 & cpu=x64 +"@octokit/core@npm:^5.0.0": + version: 5.2.0 + resolution: "@octokit/core@npm:5.2.0" + dependencies: + "@octokit/auth-token": ^4.0.0 + "@octokit/graphql": ^7.1.0 + "@octokit/request": ^8.3.1 + "@octokit/request-error": ^5.1.0 + "@octokit/types": ^13.0.0 + before-after-hook: ^2.2.0 + universal-user-agent: ^6.0.0 + checksum: 57d5f02b759b569323dcb76cc72bf94ea7d0de58638c118ee14ec3e37d303c505893137dd72918328794844f35c74b3cd16999319c4b40d410a310d44a9b7566 languageName: node linkType: hard -"@swc/core@npm:^1.3.46": - version: 1.7.40 - resolution: "@swc/core@npm:1.7.40" - dependencies: - "@swc/core-darwin-arm64": 1.7.40 - "@swc/core-darwin-x64": 1.7.40 - "@swc/core-linux-arm-gnueabihf": 1.7.40 - "@swc/core-linux-arm64-gnu": 1.7.40 - "@swc/core-linux-arm64-musl": 1.7.40 - "@swc/core-linux-x64-gnu": 1.7.40 - "@swc/core-linux-x64-musl": 1.7.40 - "@swc/core-win32-arm64-msvc": 1.7.40 - "@swc/core-win32-ia32-msvc": 1.7.40 - "@swc/core-win32-x64-msvc": 1.7.40 - "@swc/counter": ^0.1.3 - "@swc/types": ^0.1.13 - peerDependencies: - "@swc/helpers": "*" - dependenciesMeta: - "@swc/core-darwin-arm64": - optional: true - "@swc/core-darwin-x64": - optional: true - "@swc/core-linux-arm-gnueabihf": - optional: true - "@swc/core-linux-arm64-gnu": - optional: true - "@swc/core-linux-arm64-musl": - optional: true - "@swc/core-linux-x64-gnu": - optional: true - "@swc/core-linux-x64-musl": - optional: true - "@swc/core-win32-arm64-msvc": - optional: true - "@swc/core-win32-ia32-msvc": - optional: true - "@swc/core-win32-x64-msvc": - optional: true - peerDependenciesMeta: - "@swc/helpers": - optional: true - checksum: edd6554056b7fc8931d82327201c615d7b51d281f51da92ca807d9e2aa45a3f7e52be4b7c77d0913ac3b20703f21e2c430d3537b92e684688e21a0c02622160c +"@octokit/endpoint@npm:^7.0.0": + version: 7.0.6 + resolution: "@octokit/endpoint@npm:7.0.6" + dependencies: + "@octokit/types": ^9.0.0 + is-plain-object: ^5.0.0 + universal-user-agent: ^6.0.0 + checksum: 7caebf30ceec50eb7f253341ed419df355232f03d4638a95c178ee96620400db7e4a5e15d89773fe14db19b8653d4ab4cc81b2e93ca0c760b4e0f7eb7ad80301 languageName: node linkType: hard -"@swc/counter@npm:^0.1.3": - version: 0.1.3 - resolution: "@swc/counter@npm:0.1.3" - checksum: df8f9cfba9904d3d60f511664c70d23bb323b3a0803ec9890f60133954173047ba9bdeabce28cd70ba89ccd3fd6c71c7b0bd58be85f611e1ffbe5d5c18616598 +"@octokit/endpoint@npm:^9.0.1": + version: 9.0.5 + resolution: "@octokit/endpoint@npm:9.0.5" + dependencies: + "@octokit/types": ^13.1.0 + universal-user-agent: ^6.0.0 + checksum: d5cc2df9bd4603844c163eea05eec89c677cfe699c6f065fe86b83123e34554ec16d429e8142dec1e2b4cf56591ef0ce5b1763f250c87bc8e7bf6c74ba59ae82 languageName: node linkType: hard -"@swc/helpers@npm:^0.5.0": - version: 0.5.13 - resolution: "@swc/helpers@npm:0.5.13" +"@octokit/graphql-schema@npm:^13.7.0": + version: 13.10.0 + resolution: "@octokit/graphql-schema@npm:13.10.0" dependencies: - tslib: ^2.4.0 - checksum: d50c2c10da6ef940af423c6b03ad9c3c94cf9de59314b1e921a7d1bcc081a6074481c9d67b655fc8fe66a73288f98b25950743792a63882bfb5793b362494fc0 + graphql: ^16.0.0 + graphql-tag: ^2.10.3 + checksum: fdec9c9a4df1f90b733ea0e24964744faceaf65e5d350b1727892e8e0e5821df1d29aec5cfa039925a044c6f56d4ed2028505108db7fbc0c68011053853c2411 languageName: node linkType: hard -"@swc/jest@npm:^0.2.22": - version: 0.2.36 - resolution: "@swc/jest@npm:0.2.36" +"@octokit/graphql@npm:^5.0.0": + version: 5.0.6 + resolution: "@octokit/graphql@npm:5.0.6" dependencies: - "@jest/create-cache-key-function": ^29.7.0 - "@swc/counter": ^0.1.3 - jsonc-parser: ^3.2.0 - peerDependencies: - "@swc/core": "*" - checksum: 14f2e696ac093e23dae1e2e57d894bbcde4de6fe80341a26c8d0d8cbae5aae31832f8fa32dc698529f128d19a76aeedf2227f59480de6dab5eb3f30bfdf9b71a + "@octokit/request": ^6.0.0 + "@octokit/types": ^9.0.0 + universal-user-agent: ^6.0.0 + checksum: 7be545d348ef31dcab0a2478dd64d5746419a2f82f61459c774602bcf8a9b577989c18001f50b03f5f61a3d9e34203bdc021a4e4d75ff2d981e8c9c09cf8a65c languageName: node linkType: hard -"@swc/types@npm:^0.1.13": - version: 0.1.13 - resolution: "@swc/types@npm:0.1.13" +"@octokit/graphql@npm:^7.1.0": + version: 7.1.0 + resolution: "@octokit/graphql@npm:7.1.0" dependencies: - "@swc/counter": ^0.1.3 - checksum: 4d9ef0fba20e410bee38b20b60eeb284a1284c1cf6b5f84754b6f5e467e5e0621e2db67dc31e22c524a8d63f36d0a1d530126cd97752a85f140d91bf53553e01 + "@octokit/request": ^8.3.0 + "@octokit/types": ^13.0.0 + universal-user-agent: ^6.0.0 + checksum: 7b2706796e0269fc033ed149ea211117bcacf53115fd142c1eeafc06ebc5b6290e4e48c03d6276c210d72e3695e8598f83caac556cd00714fc1f8e4707d77448 languageName: node linkType: hard -"@tootallnate/once@npm:2": - version: 2.0.0 - resolution: "@tootallnate/once@npm:2.0.0" - checksum: ad87447820dd3f24825d2d947ebc03072b20a42bfc96cbafec16bff8bbda6c1a81fcb0be56d5b21968560c5359a0af4038a68ba150c3e1694fe4c109a063bed8 +"@octokit/oauth-app@npm:^4.2.0": + version: 4.2.4 + resolution: "@octokit/oauth-app@npm:4.2.4" + dependencies: + "@octokit/auth-oauth-app": ^5.0.0 + "@octokit/auth-oauth-user": ^2.0.0 + "@octokit/auth-unauthenticated": ^3.0.0 + "@octokit/core": ^4.0.0 + "@octokit/oauth-authorization-url": ^5.0.0 + "@octokit/oauth-methods": ^2.0.0 + "@types/aws-lambda": ^8.10.83 + fromentries: ^1.3.1 + universal-user-agent: ^6.0.0 + checksum: 6d9798c9e63e84f3cb3031ac3f06f45c6ea053fd201be9a07a508786fd400479d7d9f6f85707d0fff7f094a265c7e966a2fa4c884001b99f02ddd927bf499d06 languageName: node linkType: hard -"@tootallnate/quickjs-emscripten@npm:^0.23.0": - version: 0.23.0 - resolution: "@tootallnate/quickjs-emscripten@npm:0.23.0" - checksum: c350a2947ffb80b22e14ff35099fd582d1340d65723384a0fd0515e905e2534459ad2f301a43279a37308a27c99273c932e64649abd57d0bb3ca8c557150eccc +"@octokit/oauth-app@npm:^6.0.0": + version: 6.1.0 + resolution: "@octokit/oauth-app@npm:6.1.0" + dependencies: + "@octokit/auth-oauth-app": ^7.0.0 + "@octokit/auth-oauth-user": ^4.0.0 + "@octokit/auth-unauthenticated": ^5.0.0 + "@octokit/core": ^5.0.0 + "@octokit/oauth-authorization-url": ^6.0.2 + "@octokit/oauth-methods": ^4.0.0 + "@types/aws-lambda": ^8.10.83 + universal-user-agent: ^6.0.0 + checksum: 4759ef41624928efee484802e3a6280d7a92205f435e0d299bc4b1e39661427d7f9ec33ef0d752dd6ee665e37d4afa81c8a6aea10ba53b8eb7da66167b0c52d4 languageName: node linkType: hard -"@trysound/sax@npm:0.2.0": - version: 0.2.0 - resolution: "@trysound/sax@npm:0.2.0" - checksum: 11226c39b52b391719a2a92e10183e4260d9651f86edced166da1d95f39a0a1eaa470e44d14ac685ccd6d3df7e2002433782872c0feeb260d61e80f21250e65c +"@octokit/oauth-authorization-url@npm:^5.0.0": + version: 5.0.0 + resolution: "@octokit/oauth-authorization-url@npm:5.0.0" + checksum: bc457c4af9559e9e8f752e643fc9d116247f4e4246e69959d99b9e39196c93d7af53c1c8e3bd946bd0e4fc29f7ba27efe9bced8525ffa41fe45ef56a8281014b languageName: node linkType: hard -"@ts-morph/common@npm:~0.24.0": - version: 0.24.0 - resolution: "@ts-morph/common@npm:0.24.0" +"@octokit/oauth-authorization-url@npm:^6.0.2": + version: 6.0.2 + resolution: "@octokit/oauth-authorization-url@npm:6.0.2" + checksum: 0f11169a3eeb782cc08312c923de1a702b25ae033b972ba40380b6d72cb3f684543c8b6a5cf6f05936fdc6b8892070d4f7581138d8efc1b4c4a55ae6d7762327 + languageName: node + linkType: hard + +"@octokit/oauth-methods@npm:^2.0.0": + version: 2.0.6 + resolution: "@octokit/oauth-methods@npm:2.0.6" dependencies: - fast-glob: ^3.3.2 - minimatch: ^9.0.4 - mkdirp: ^3.0.1 - path-browserify: ^1.0.1 - checksum: 793bc8a47c93ab55c6c036f94480d3b0e948661aef4bb7dbc29279b1dda2fc4fce809a88e221537867a313541842e12d1ecbd32b4769688abe1303807ec09db6 + "@octokit/oauth-authorization-url": ^5.0.0 + "@octokit/request": ^6.2.3 + "@octokit/request-error": ^3.0.3 + "@octokit/types": ^9.0.0 + btoa-lite: ^1.0.0 + checksum: 151b933d79d6fbf36fdfae8cdc868a3d43316352eaccf46cb8c420cfd238658275e41996d2d377177553bc0c637c3aefe8ca99c1ab7fd62054654b6119b7b1cc languageName: node linkType: hard -"@tsconfig/node10@npm:^1.0.7": - version: 1.0.11 - resolution: "@tsconfig/node10@npm:1.0.11" - checksum: 51fe47d55fe1b80ec35e6e5ed30a13665fd3a531945350aa74a14a1e82875fb60b350c2f2a5e72a64831b1b6bc02acb6760c30b3738b54954ec2dea82db7a267 +"@octokit/oauth-methods@npm:^4.0.0, @octokit/oauth-methods@npm:^4.1.0": + version: 4.1.0 + resolution: "@octokit/oauth-methods@npm:4.1.0" + dependencies: + "@octokit/oauth-authorization-url": ^6.0.2 + "@octokit/request": ^8.3.1 + "@octokit/request-error": ^5.1.0 + "@octokit/types": ^13.0.0 + btoa-lite: ^1.0.0 + checksum: 2ca42f054a3b92f6f3fa9a984df7d75cc8c1f19aba5f6fc9636499dde3a8031e33148cbc936cace103b1eb7fe79d978aee7077aa6f69e0dd996ee345a10f2aa4 languageName: node linkType: hard -"@tsconfig/node12@npm:^1.0.7": - version: 1.0.11 - resolution: "@tsconfig/node12@npm:1.0.11" - checksum: 5ce29a41b13e7897a58b8e2df11269c5395999e588b9a467386f99d1d26f6c77d1af2719e407621412520ea30517d718d5192a32403b8dfcc163bf33e40a338a +"@octokit/openapi-types@npm:^14.0.0": + version: 14.0.0 + resolution: "@octokit/openapi-types@npm:14.0.0" + checksum: 0a1f8f3be998cd82c5a640e9166d43fd183b33d5d36f5e1a9b81608e94d0da87c01ec46c9988f69cd26585d4e2ffc4d3ec99ee4f75e5fe997fc86dad0aa8293c languageName: node linkType: hard -"@tsconfig/node14@npm:^1.0.0": - version: 1.0.3 - resolution: "@tsconfig/node14@npm:1.0.3" - checksum: 19275fe80c4c8d0ad0abed6a96dbf00642e88b220b090418609c4376e1cef81bf16237bf170ad1b341452feddb8115d8dd2e5acdfdea1b27422071163dc9ba9d +"@octokit/openapi-types@npm:^18.0.0": + version: 18.1.1 + resolution: "@octokit/openapi-types@npm:18.1.1" + checksum: 94f42977fd2fcb9983c781fd199bc11218885a1226d492680bfb1268524a1b2af48a768eef90c63b80a2874437de641d59b3b7f640a5afa93e7c21fe1a79069a languageName: node linkType: hard -"@tsconfig/node16@npm:^1.0.2": - version: 1.0.4 - resolution: "@tsconfig/node16@npm:1.0.4" - checksum: 202319785901f942a6e1e476b872d421baec20cf09f4b266a1854060efbf78cde16a4d256e8bc949d31e6cd9a90f1e8ef8fb06af96a65e98338a2b6b0de0a0ff +"@octokit/openapi-types@npm:^20.0.0": + version: 20.0.0 + resolution: "@octokit/openapi-types@npm:20.0.0" + checksum: 23ff7613750f8b5790a0cbed5a2048728a7909e50d726932831044908357a932c7fc0613fb7b86430a49d31b3d03a180632ea5dd936535bfbc1176391a199e96 languageName: node linkType: hard -"@types/argparse@npm:1.0.38": - version: 1.0.38 - resolution: "@types/argparse@npm:1.0.38" - checksum: 26ed7e3f1e3595efdb883a852f5205f971b798e4c28b7e30a32c5298eee596e8b45834ce831f014d250b9730819ab05acff5b31229666d3af4ba465b4697d0eb +"@octokit/openapi-types@npm:^22.2.0": + version: 22.2.0 + resolution: "@octokit/openapi-types@npm:22.2.0" + checksum: eca41feac2b83298e0d95e253ac1c5b6d65155ac57f65c5fd8d4a485d9728922d85ff4bee0e815a1f3a5421311db092bdb6da9d6104a1b1843d8b274bcad9630 languageName: node linkType: hard -"@types/aws-lambda@npm:^8.10.83": - version: 8.10.145 - resolution: "@types/aws-lambda@npm:8.10.145" - checksum: 4beb4febe8eb7da3087e009b4d1df61de5e9a7336792424254ca1e24740e17ee701de21423a125dcd26afb499003557e717cc824e24c47c916d2de6b0c245482 +"@octokit/plugin-paginate-graphql@npm:^4.0.0": + version: 4.0.1 + resolution: "@octokit/plugin-paginate-graphql@npm:4.0.1" + peerDependencies: + "@octokit/core": ">=5" + checksum: 109d895303d39c1ba362a260c71202f3c92798faa4f4e05638023685b5ac9191cee61759ea0eee43b9ce945cf8c52aebf2dbd54c392165e86448d6421e97b0f5 languageName: node linkType: hard -"@types/babel__core@npm:^7.1.14": - version: 7.20.5 - resolution: "@types/babel__core@npm:7.20.5" +"@octokit/plugin-paginate-rest@npm:11.3.1": + version: 11.3.1 + resolution: "@octokit/plugin-paginate-rest@npm:11.3.1" dependencies: - "@babel/parser": ^7.20.7 - "@babel/types": ^7.20.7 - "@types/babel__generator": "*" - "@types/babel__template": "*" - "@types/babel__traverse": "*" - checksum: a3226f7930b635ee7a5e72c8d51a357e799d19cbf9d445710fa39ab13804f79ab1a54b72ea7d8e504659c7dfc50675db974b526142c754398d7413aa4bc30845 + "@octokit/types": ^13.5.0 + peerDependencies: + "@octokit/core": 5 + checksum: 42c7c08e7287b4b85d2ae47852d2ffeb238c134ad6bcff18bddc154b15f6bec31778816c0763181401c370198390db7f6b0c3c44750fdfeec459594f7f4b5933 languageName: node linkType: hard -"@types/babel__generator@npm:*": - version: 7.6.8 - resolution: "@types/babel__generator@npm:7.6.8" +"@octokit/plugin-paginate-rest@npm:^6.1.2": + version: 6.1.2 + resolution: "@octokit/plugin-paginate-rest@npm:6.1.2" dependencies: - "@babel/types": ^7.0.0 - checksum: 5b332ea336a2efffbdeedb92b6781949b73498606ddd4205462f7d96dafd45ff3618770b41de04c4881e333dd84388bfb8afbdf6f2764cbd98be550d85c6bb48 + "@octokit/tsconfig": ^1.0.2 + "@octokit/types": ^9.2.3 + peerDependencies: + "@octokit/core": ">=4" + checksum: a7b3e686c7cbd27ec07871cde6e0b1dc96337afbcef426bbe3067152a17b535abd480db1861ca28c88d93db5f7bfdbcadd0919ead19818c28a69d0e194038065 languageName: node linkType: hard -"@types/babel__template@npm:*": - version: 7.4.4 - resolution: "@types/babel__template@npm:7.4.4" +"@octokit/plugin-paginate-rest@npm:^9.0.0": + version: 9.2.1 + resolution: "@octokit/plugin-paginate-rest@npm:9.2.1" dependencies: - "@babel/parser": ^7.1.0 - "@babel/types": ^7.0.0 - checksum: d7a02d2a9b67e822694d8e6a7ddb8f2b71a1d6962dfd266554d2513eefbb205b33ca71a0d163b1caea3981ccf849211f9964d8bd0727124d18ace45aa6c9ae29 + "@octokit/types": ^12.6.0 + peerDependencies: + "@octokit/core": 5 + checksum: 554ad17a7dcfd7028e321ffcae233f8ae7975569084f19d9b6217b47fb182e2604145108de7a9029777e6dc976b27b2dd7387e2e47a77532a72e6c195880576d languageName: node linkType: hard -"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.6": - version: 7.20.6 - resolution: "@types/babel__traverse@npm:7.20.6" - dependencies: - "@babel/types": ^7.20.7 - checksum: 2bdc65eb62232c2d5c1086adeb0c31e7980e6fd7e50a3483b4a724a1a1029c84d9cb59749cf8de612f9afa2bc14c85b8f50e64e21f8a4398fa77eb9059a4283c +"@octokit/plugin-request-log@npm:^1.0.4": + version: 1.0.4 + resolution: "@octokit/plugin-request-log@npm:1.0.4" + peerDependencies: + "@octokit/core": ">=3" + checksum: 2086db00056aee0f8ebd79797b5b57149ae1014e757ea08985b71eec8c3d85dbb54533f4fd34b6b9ecaa760904ae6a7536be27d71e50a3782ab47809094bfc0c languageName: node linkType: hard -"@types/body-parser@npm:*": - version: 1.19.5 - resolution: "@types/body-parser@npm:1.19.5" +"@octokit/plugin-rest-endpoint-methods@npm:13.2.2": + version: 13.2.2 + resolution: "@octokit/plugin-rest-endpoint-methods@npm:13.2.2" dependencies: - "@types/connect": "*" - "@types/node": "*" - checksum: 1e251118c4b2f61029cc43b0dc028495f2d1957fe8ee49a707fb940f86a9bd2f9754230805598278fe99958b49e9b7e66eec8ef6a50ab5c1f6b93e1ba2aaba82 + "@octokit/types": ^13.5.0 + peerDependencies: + "@octokit/core": ^5 + checksum: 347b3a891a561ed1dcc307a2dce42ca48c318c465ad91a26225d3d6493aef1b7ff868e6c56a0d7aa4170d028c7429ca1ec52aed6be34615a6ed701c3bcafdb17 languageName: node linkType: hard -"@types/bonjour@npm:^3.5.13, @types/bonjour@npm:^3.5.9": - version: 3.5.13 - resolution: "@types/bonjour@npm:3.5.13" +"@octokit/plugin-rest-endpoint-methods@npm:^7.1.2": + version: 7.2.3 + resolution: "@octokit/plugin-rest-endpoint-methods@npm:7.2.3" dependencies: - "@types/node": "*" - checksum: e827570e097bd7d625a673c9c208af2d1a22fa3885c0a1646533cf24394c839c3e5f60ac1bc60c0ddcc69c0615078c9fb2c01b42596c7c582d895d974f2409ee + "@octokit/types": ^10.0.0 + peerDependencies: + "@octokit/core": ">=3" + checksum: 21dfb98514dbe900c29cddb13b335bbce43d613800c6b17eba3c1fd31d17e69c1960f3067f7bf864bb38fdd5043391f4a23edee42729d8c7fbabd00569a80336 languageName: node linkType: hard -"@types/btoa-lite@npm:^1.0.0": - version: 1.0.2 - resolution: "@types/btoa-lite@npm:1.0.2" - checksum: 4c46b163c881a75522c7556dd7a7df8a0d4c680a45e8bac34e50864e1c2d9df8dc90b99f75199154c60ef2faff90896b7e5f11df6936c94167a3e5e1c6f4d935 +"@octokit/plugin-retry@npm:^6.0.0": + version: 6.1.0 + resolution: "@octokit/plugin-retry@npm:6.1.0" + dependencies: + "@octokit/request-error": ^5.0.0 + "@octokit/types": ^13.0.0 + bottleneck: ^2.15.3 + peerDependencies: + "@octokit/core": 5 + checksum: 95233dcd4c9a3e8a6a448eec95cc850b0d0b24ddfbfb8bb7f082bdedfcb81aca598cbc18d6e50f9c10976414ad3b83a6a2c4edb4c617da9b3399d4726b77ee82 languageName: node linkType: hard -"@types/caseless@npm:*": - version: 0.12.5 - resolution: "@types/caseless@npm:0.12.5" - checksum: f6a3628add76d27005495914c9c3873a93536957edaa5b69c63b46fe10b4649a6fecf16b676c1695f46aab851da47ec6047dcf3570fa8d9b6883492ff6d074e0 +"@octokit/plugin-throttling@npm:^8.0.0": + version: 8.2.0 + resolution: "@octokit/plugin-throttling@npm:8.2.0" + dependencies: + "@octokit/types": ^12.2.0 + bottleneck: ^2.15.3 + peerDependencies: + "@octokit/core": ^5.0.0 + checksum: 12c357175783bcd0feea454ece57f033928948a0555dc97c79675b56d2cc79043d2a5e28a7554d3531f1de13583634df3b48fb9609f79e8bb3adad92820bd807 languageName: node linkType: hard -"@types/connect-history-api-fallback@npm:^1.3.5, @types/connect-history-api-fallback@npm:^1.5.4": - version: 1.5.4 - resolution: "@types/connect-history-api-fallback@npm:1.5.4" +"@octokit/request-error@npm:^3.0.0, @octokit/request-error@npm:^3.0.3": + version: 3.0.3 + resolution: "@octokit/request-error@npm:3.0.3" dependencies: - "@types/express-serve-static-core": "*" - "@types/node": "*" - checksum: e1dee43b8570ffac02d2d47a2b4ba80d3ca0dd1840632dafb221da199e59dbe3778d3d7303c9e23c6b401f37c076935a5bc2aeae1c4e5feaefe1c371fe2073fd + "@octokit/types": ^9.0.0 + deprecation: ^2.0.0 + once: ^1.4.0 + checksum: 5db0b514732686b627e6ed9ef1ccdbc10501f1b271a9b31f784783f01beee70083d7edcfeb35fbd7e569fa31fdd6762b1ff6b46101700d2d97e7e48e749520d0 languageName: node linkType: hard -"@types/connect@npm:*": - version: 3.4.38 - resolution: "@types/connect@npm:3.4.38" +"@octokit/request-error@npm:^5.0.0, @octokit/request-error@npm:^5.1.0": + version: 5.1.0 + resolution: "@octokit/request-error@npm:5.1.0" dependencies: - "@types/node": "*" - checksum: 7eb1bc5342a9604facd57598a6c62621e244822442976c443efb84ff745246b10d06e8b309b6e80130026a396f19bf6793b7cecd7380169f369dac3bfc46fb99 + "@octokit/types": ^13.1.0 + deprecation: ^2.0.0 + once: ^1.4.0 + checksum: 2cdbb8e44072323b5e1c8c385727af6700e3e492d55bc1e8d0549c4a3d9026914f915866323d371b1f1772326d6e902341c872679cc05c417ffc15cadf5f4a4e languageName: node linkType: hard -"@types/cookie@npm:^0.4.1": - version: 0.4.1 - resolution: "@types/cookie@npm:0.4.1" - checksum: 3275534ed69a76c68eb1a77d547d75f99fedc80befb75a3d1d03662fb08d697e6f8b1274e12af1a74c6896071b11510631ba891f64d30c78528d0ec45a9c1a18 +"@octokit/request@npm:^6.0.0, @octokit/request@npm:^6.2.3": + version: 6.2.8 + resolution: "@octokit/request@npm:6.2.8" + dependencies: + "@octokit/endpoint": ^7.0.0 + "@octokit/request-error": ^3.0.0 + "@octokit/types": ^9.0.0 + is-plain-object: ^5.0.0 + node-fetch: ^2.6.7 + universal-user-agent: ^6.0.0 + checksum: 3747106f50d7c462131ff995b13defdd78024b7becc40283f4ac9ea0af2391ff33a0bb476a05aa710346fe766d20254979079a1d6f626112015ba271fe38f3e2 languageName: node linkType: hard -"@types/cookiejar@npm:^2.1.5": - version: 2.1.5 - resolution: "@types/cookiejar@npm:2.1.5" - checksum: 04d5990e87b6387532d15a87d9ec9b2eb783039291193863751dcfd7fc723a3b3aa30ce4c06b03975cba58632e933772f1ff031af23eaa3ac7f94e71afa6e073 +"@octokit/request@npm:^8.3.0, @octokit/request@npm:^8.3.1": + version: 8.4.0 + resolution: "@octokit/request@npm:8.4.0" + dependencies: + "@octokit/endpoint": ^9.0.1 + "@octokit/request-error": ^5.1.0 + "@octokit/types": ^13.1.0 + universal-user-agent: ^6.0.0 + checksum: 3d937e817a85c0adf447ab46b428ccd702c31b2091e47adec90583ec2242bd64666306fe8188628fb139aa4752e19400eb7652b0f5ca33cd9e77bbb2c60b202a languageName: node linkType: hard -"@types/cors@npm:^2.8.6": - version: 2.8.17 - resolution: "@types/cors@npm:2.8.17" +"@octokit/rest@npm:^19.0.3": + version: 19.0.13 + resolution: "@octokit/rest@npm:19.0.13" dependencies: - "@types/node": "*" - checksum: 469bd85e29a35977099a3745c78e489916011169a664e97c4c3d6538143b0a16e4cc72b05b407dc008df3892ed7bf595f9b7c0f1f4680e169565ee9d64966bde + "@octokit/core": ^4.2.1 + "@octokit/plugin-paginate-rest": ^6.1.2 + "@octokit/plugin-request-log": ^1.0.4 + "@octokit/plugin-rest-endpoint-methods": ^7.1.2 + checksum: ca1553e3fe46efabffef60e68e4a228d4cc0f0d545daf7f019560f666d3e934c6f3a6402a42bbd786af4f3c0a6e69380776312f01b7d52998fe1bbdd1b068f69 languageName: node linkType: hard -"@types/debug@npm:^4.1.7": - version: 4.1.12 - resolution: "@types/debug@npm:4.1.12" +"@octokit/tsconfig@npm:^1.0.2": + version: 1.0.2 + resolution: "@octokit/tsconfig@npm:1.0.2" + checksum: 74d56f3e9f326a8dd63700e9a51a7c75487180629c7a68bbafee97c612fbf57af8347369bfa6610b9268a3e8b833c19c1e4beb03f26db9a9dce31f6f7a19b5b1 + languageName: node + linkType: hard + +"@octokit/types@npm:^10.0.0": + version: 10.0.0 + resolution: "@octokit/types@npm:10.0.0" dependencies: - "@types/ms": "*" - checksum: 47876a852de8240bfdaf7481357af2b88cb660d30c72e73789abf00c499d6bc7cd5e52f41c915d1b9cd8ec9fef5b05688d7b7aef17f7f272c2d04679508d1053 + "@octokit/openapi-types": ^18.0.0 + checksum: 8aafba2ff0cd2435fb70c291bf75ed071c0fa8a865cf6169648732068a35dec7b85a345851f18920ec5f3e94ee0e954988485caac0da09ec3f6781cc44fe153a languageName: node linkType: hard -"@types/docker-modem@npm:*": - version: 3.0.6 - resolution: "@types/docker-modem@npm:3.0.6" +"@octokit/types@npm:^12.0.0, @octokit/types@npm:^12.2.0, @octokit/types@npm:^12.6.0": + version: 12.6.0 + resolution: "@octokit/types@npm:12.6.0" dependencies: - "@types/node": "*" - "@types/ssh2": "*" - checksum: cc58e8189f6ec5a2b8ca890207402178a97ddac8c80d125dc65d8ab29034b5db736de15e99b91b2d74e66d14e26e73b6b8b33216613dd15fd3aa6b82c11a83ed + "@octokit/openapi-types": ^20.0.0 + checksum: 850235f425584499a2266d5c585c1c2462ae11e25c650567142f3342cb9ce589c8c8fed87705811ca93271fd28c68e1fa77b88b67b97015d7b63d269fa46ed05 languageName: node linkType: hard -"@types/dockerode@npm:^3.3.0, @types/dockerode@npm:^3.3.29": - version: 3.3.31 - resolution: "@types/dockerode@npm:3.3.31" +"@octokit/types@npm:^13.0.0, @octokit/types@npm:^13.1.0, @octokit/types@npm:^13.5.0": + version: 13.6.2 + resolution: "@octokit/types@npm:13.6.2" dependencies: - "@types/docker-modem": "*" - "@types/node": "*" - "@types/ssh2": "*" - checksum: f634f18dc0633f8324faefcde53bcd3d8f3c4bd74d31078cbeb65d2e1597f9abcf12c2158abfaea13dc816bae0f5fa08d0bb570d4214ab0df1ded90db5ebabfe + "@octokit/openapi-types": ^22.2.0 + checksum: c4e51da1ccabc028b70fc90ca58d65091862a7fe3a65ec2692681f473a0aee4c355abfd15fd547bce3a9800d07c1592603fe84b4223e7beea0d493e4fcc1a65e languageName: node linkType: hard -"@types/es-aggregate-error@npm:^1.0.2": - version: 1.0.6 - resolution: "@types/es-aggregate-error@npm:1.0.6" +"@octokit/types@npm:^8.0.0": + version: 8.2.1 + resolution: "@octokit/types@npm:8.2.1" dependencies: - "@types/node": "*" - checksum: a5b2155f664a3460d3cbc1e84e76fc0f3e751c6cebb04bf79d38e2809f44a4ba6765b83761a1e5cc0bba1b7852f7ba4fae2231110dee6218405835024dd372ac + "@octokit/openapi-types": ^14.0.0 + checksum: 92f2fe5ea8c4c6ddbb2363c74cd865c64e5753eaa4895bc925b5064390890b1441c5406015d8a92285f386cc7e6fe714c47fe4beda370fcda9177153299c9e37 languageName: node linkType: hard -"@types/eslint@npm:^7.29.0 || ^8.4.1, @types/eslint@npm:^8.56.10": - version: 8.56.12 - resolution: "@types/eslint@npm:8.56.12" +"@octokit/types@npm:^9.0.0, @octokit/types@npm:^9.2.3": + version: 9.3.2 + resolution: "@octokit/types@npm:9.3.2" dependencies: - "@types/estree": "*" - "@types/json-schema": "*" - checksum: 0f7710ee02a256c499514251f527f84de964bb29487db840408e4cde79283124a38935597636d2265756c34dd1d902e1b00ae78930d4a0b55111909cb7b80d84 + "@octokit/openapi-types": ^18.0.0 + checksum: f55d096aaed3e04b8308d4422104fb888f355988056ba7b7ef0a4c397b8a3e54290d7827b06774dbe0c9ce55280b00db486286954f9c265aa6b03091026d9da8 languageName: node linkType: hard -"@types/estree@npm:*, @types/estree@npm:1.0.6, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.5": - version: 1.0.6 - resolution: "@types/estree@npm:1.0.6" - checksum: 8825d6e729e16445d9a1dd2fb1db2edc5ed400799064cd4d028150701031af012ba30d6d03fe9df40f4d7a437d0de6d2b256020152b7b09bde9f2e420afdffd9 +"@octokit/webhooks-methods@npm:^3.0.0": + version: 3.0.3 + resolution: "@octokit/webhooks-methods@npm:3.0.3" + checksum: 1caccc8b27ad53bbb8e39cf3db98a3ef5abcec9f919024d7f89618a5156044c6585871cc97176ec63fb2503bfe6b6ca8e4a18313e1eaed1c0163b194a4dada09 languageName: node linkType: hard -"@types/express-serve-static-core@npm:*, @types/express-serve-static-core@npm:^5.0.0": - version: 5.0.1 - resolution: "@types/express-serve-static-core@npm:5.0.1" - dependencies: - "@types/node": "*" - "@types/qs": "*" - "@types/range-parser": "*" - "@types/send": "*" - checksum: e9daf9bc0d83f593aa2fdcb7c3f9c0a8747bfdf6d8a5ee48ed8d8cc4dc2ed52bdc75d20f6fec9ef00a1aa5ade4c7f16668ff1c020911b50394472844813b1cdb +"@octokit/webhooks-methods@npm:^4.1.0": + version: 4.1.0 + resolution: "@octokit/webhooks-methods@npm:4.1.0" + checksum: 0ce67220156d554ae4bc6a7230ae62c0389b9bbee1f6d1077947e64645ee864f0702778e86427d59ae970176620753f54edb44665cedbeb9bc22b9348a074427 languageName: node linkType: hard -"@types/express-serve-static-core@npm:^4.17.33, @types/express-serve-static-core@npm:^4.17.5": - version: 4.19.6 - resolution: "@types/express-serve-static-core@npm:4.19.6" - dependencies: - "@types/node": "*" - "@types/qs": "*" - "@types/range-parser": "*" - "@types/send": "*" - checksum: b0576eddc2d25ccdf10e68ba09598b87a4d7b2ad04a81dc847cb39fe56beb0b6a5cc017b1e00aa0060cb3b38e700384ce96d291a116a0f1e54895564a104aae9 +"@octokit/webhooks-types@npm:6.11.0": + version: 6.11.0 + resolution: "@octokit/webhooks-types@npm:6.11.0" + checksum: af35ac7a3d8d95bf9906fb3a8f6075cf9cb10707c79444fa82df2d64596125f515a35a4995b4548b84ee042c7c1b1cc120e05ece4a197af541a52f154bf4bcce languageName: node linkType: hard -"@types/express@npm:*": - version: 5.0.0 - resolution: "@types/express@npm:5.0.0" - dependencies: - "@types/body-parser": "*" - "@types/express-serve-static-core": ^5.0.0 - "@types/qs": "*" - "@types/serve-static": "*" - checksum: ef68d8e2b7593c930093b1e79bf4df15413773508c9acd6a1a933ed7017f2a4892a8d128b2222d7eab9a3fa43181067a378c2600d9258bd7ae917f170e962df4 +"@octokit/webhooks-types@npm:7.6.1": + version: 7.6.1 + resolution: "@octokit/webhooks-types@npm:7.6.1" + checksum: 5b3aa8e63c4eaf511e571dbd55868688cb2ec68c41f02238b4894336e2220fa19a723be83b6383621fbaa90695056a64533959a9cc6ffdbd27faa58b22e6ef51 languageName: node linkType: hard -"@types/express@npm:4.17.21, @types/express@npm:^4.17.13, @types/express@npm:^4.17.21, @types/express@npm:^4.17.6": - version: 4.17.21 - resolution: "@types/express@npm:4.17.21" +"@octokit/webhooks@npm:^10.9.2": + version: 10.9.2 + resolution: "@octokit/webhooks@npm:10.9.2" dependencies: - "@types/body-parser": "*" - "@types/express-serve-static-core": ^4.17.33 - "@types/qs": "*" - "@types/serve-static": "*" - checksum: fb238298630370a7392c7abdc80f495ae6c716723e114705d7e3fb67e3850b3859bbfd29391463a3fb8c0b32051847935933d99e719c0478710f8098ee7091c5 + "@octokit/request-error": ^3.0.0 + "@octokit/webhooks-methods": ^3.0.0 + "@octokit/webhooks-types": 6.11.0 + aggregate-error: ^3.1.0 + checksum: 06ad79021adf9facff3937d387ed5949a2c42ef550401ce2b12df88816b2de30f5b868129a7af523c6036d18b76fb89d22c71d26223f1c2e07c40552f45f6387 languageName: node linkType: hard -"@types/graceful-fs@npm:^4.1.3": - version: 4.1.9 - resolution: "@types/graceful-fs@npm:4.1.9" +"@octokit/webhooks@npm:^12.0.4": + version: 12.3.1 + resolution: "@octokit/webhooks@npm:12.3.1" dependencies: - "@types/node": "*" - checksum: 79d746a8f053954bba36bd3d94a90c78de995d126289d656fb3271dd9f1229d33f678da04d10bce6be440494a5a73438e2e363e92802d16b8315b051036c5256 + "@octokit/request-error": ^5.0.0 + "@octokit/webhooks-methods": ^4.1.0 + "@octokit/webhooks-types": 7.6.1 + aggregate-error: ^3.1.0 + checksum: 883be6e06a18e59884914f43818dc6249612401905b98c133e6e6f52f039fa5a65b420a2bdd7b2a7c248ada6b23504963fdd3685719a42798a40d838a832026f languageName: node linkType: hard -"@types/html-minifier-terser@npm:^6.0.0": - version: 6.1.0 - resolution: "@types/html-minifier-terser@npm:6.1.0" - checksum: eb843f6a8d662d44fb18ec61041117734c6aae77aa38df1be3b4712e8e50ffaa35f1e1c92fdd0fde14a5675fecf457abcd0d15a01fae7506c91926176967f452 +"@open-draft/until@npm:^1.0.3": + version: 1.0.3 + resolution: "@open-draft/until@npm:1.0.3" + checksum: 323e92ebef0150ed0f8caedc7d219b68cdc50784fa4eba0377eef93533d3f46514eb2400ced83dda8c51bddc3d2c7b8e9cf95e5ec85ab7f62dfc015d174f62f2 languageName: node linkType: hard -"@types/http-errors@npm:*": - version: 2.0.4 - resolution: "@types/http-errors@npm:2.0.4" - checksum: 1f3d7c3b32c7524811a45690881736b3ef741bf9849ae03d32ad1ab7062608454b150a4e7f1351f83d26a418b2d65af9bdc06198f1c079d75578282884c4e8e3 +"@openapi-contrib/openapi-schema-to-json-schema@npm:~3.2.0": + version: 3.2.0 + resolution: "@openapi-contrib/openapi-schema-to-json-schema@npm:3.2.0" + dependencies: + fast-deep-equal: ^3.1.3 + checksum: c47cbf85bee3e38e06a627efbbdffd78c95cdadebf6d935092c8ff616e31a69fcfd739a5d9cca5b4b2c6aef49f8dbced6c300eac1f8ade66b3fab403df19ccb2 languageName: node linkType: hard -"@types/http-proxy@npm:^1.17.8": - version: 1.17.15 - resolution: "@types/http-proxy@npm:1.17.15" +"@openapitools/openapi-generator-cli@npm:^2.7.0": + version: 2.15.3 + resolution: "@openapitools/openapi-generator-cli@npm:2.15.3" dependencies: - "@types/node": "*" - checksum: d96eaf4e22232b587b46256b89c20525c453216684481015cf50fb385b0b319b883749ccb77dee9af57d107e8440cdacd56f4234f65176d317e9777077ff5bf3 + "@nestjs/axios": 3.1.1 + "@nestjs/common": 10.4.6 + "@nestjs/core": 10.4.6 + "@nuxtjs/opencollective": 0.3.2 + axios: 1.7.7 + chalk: 4.1.2 + commander: 8.3.0 + compare-versions: 4.1.4 + concurrently: 6.5.1 + console.table: 0.10.0 + fs-extra: 10.1.0 + glob: 9.3.5 + inquirer: 8.2.6 + lodash: 4.17.21 + proxy-agent: 6.4.0 + reflect-metadata: 0.1.13 + rxjs: 7.8.1 + tslib: 2.8.1 + bin: + openapi-generator-cli: main.js + checksum: 7aaf394615cccea80ef37184e556134c61dee97ba777aecb3d14ac143f3a7390327511915e85b2e9108e8dbf56444678e8302e06009757581a3a0733531dd654 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" - checksum: 3feac423fd3e5449485afac999dcfcb3d44a37c830af898b689fadc65d26526460bedb889db278e0d4d815a670331796494d073a10ee6e3a6526301fe7415778 +"@opentelemetry/api@npm:^1.3.0, @opentelemetry/api@npm:^1.4.0, @opentelemetry/api@npm:^1.9.0": + version: 1.9.0 + resolution: "@opentelemetry/api@npm:1.9.0" + checksum: 9e88e59d53ced668f3daaecfd721071c5b85a67dd386f1c6f051d1be54375d850016c881f656ffbe9a03bedae85f7e89c2f2b635313f9c9b195ad033cdc31020 languageName: node linkType: hard -"@types/istanbul-lib-report@npm:*": - version: 3.0.3 - resolution: "@types/istanbul-lib-report@npm:3.0.3" - dependencies: - "@types/istanbul-lib-coverage": "*" - checksum: b91e9b60f865ff08cb35667a427b70f6c2c63e88105eadd29a112582942af47ed99c60610180aa8dcc22382fa405033f141c119c69b95db78c4c709fbadfeeb4 +"@patternfly/patternfly@npm:^5.1.0": + version: 5.4.2 + resolution: "@patternfly/patternfly@npm:5.4.2" + checksum: 1cc2c3f7020f050eb4bd72d57a48473c7fad9c931b16e3c8e8ba7f0d94654d22a1944b3593b6b118a1b28f14749ae6a630622efd6c1cd54b6f08cd360b186cb3 languageName: node linkType: hard -"@types/istanbul-reports@npm:^3.0.0": - version: 3.0.4 - resolution: "@types/istanbul-reports@npm:3.0.4" +"@patternfly/react-charts@npm:^7.1.1": + version: 7.4.7 + resolution: "@patternfly/react-charts@npm:7.4.7" dependencies: - "@types/istanbul-lib-report": "*" - checksum: 93eb18835770b3431f68ae9ac1ca91741ab85f7606f310a34b3586b5a34450ec038c3eed7ab19266635499594de52ff73723a54a72a75b9f7d6a956f01edee95 + "@patternfly/react-styles": ^5.4.1 + "@patternfly/react-tokens": ^5.4.1 + hoist-non-react-statics: ^3.3.2 + lodash: ^4.17.21 + tslib: ^2.7.0 + victory-area: ^37.1.1 + victory-axis: ^37.1.1 + victory-bar: ^37.1.1 + victory-box-plot: ^37.1.1 + victory-chart: ^37.1.1 + victory-core: ^37.1.1 + victory-create-container: ^37.1.1 + victory-cursor-container: ^37.1.1 + victory-group: ^37.1.1 + victory-legend: ^37.1.1 + victory-line: ^37.1.1 + victory-pie: ^37.1.1 + victory-scatter: ^37.1.1 + victory-stack: ^37.1.1 + victory-tooltip: ^37.1.1 + victory-voronoi-container: ^37.1.1 + victory-zoom-container: ^37.1.1 + peerDependencies: + react: ^17 || ^18 + react-dom: ^17 || ^18 + checksum: 12053e92d884d7cf7ff2cb1c59eac6cb94b9df275f6dbeb690b8585c82b9ad403b85ff9c9473c468301b4f88a3205fca0e8f02c211aee60a60faccfd1401681c + languageName: node + linkType: hard + +"@patternfly/react-core@npm:^5.1.1": + version: 5.4.12 + resolution: "@patternfly/react-core@npm:5.4.12" + dependencies: + "@patternfly/react-icons": ^5.4.2 + "@patternfly/react-styles": ^5.4.1 + "@patternfly/react-tokens": ^5.4.1 + focus-trap: 7.6.2 + react-dropzone: ^14.2.3 + tslib: ^2.7.0 + peerDependencies: + react: ^17 || ^18 + react-dom: ^17 || ^18 + checksum: f73dfa1d7eaa33762277b5ca58378b99cf61dee25499f10702beab632e560bd2996acde8d04ff8eff446806f4f90ac9b68bbd17406e8aadb6d2c671248cce4fb + languageName: node + linkType: hard + +"@patternfly/react-icons@npm:^5.1.1, @patternfly/react-icons@npm:^5.4.2": + version: 5.4.2 + resolution: "@patternfly/react-icons@npm:5.4.2" + peerDependencies: + react: ^17 || ^18 + react-dom: ^17 || ^18 + checksum: 3f23a2e52f962b923ac28eccc4bdabbc0f2f698f8ff1dc9fec8c164123ebf921501ba86a6a4566607118f38c8924974a1d7976f9ab87c33b318be507b1e34946 languageName: node linkType: hard -"@types/jest@npm:^29.5.11": - version: 29.5.14 - resolution: "@types/jest@npm:29.5.14" - dependencies: - expect: ^29.0.0 - pretty-format: ^29.0.0 - checksum: 18dba4623f26661641d757c63da2db45e9524c9be96a29ef713c703a9a53792df9ecee9f7365a0858ddbd6440d98fe6b65ca67895ca5884b73cbc7ffc11f3838 +"@patternfly/react-styles@npm:^5.1.1, @patternfly/react-styles@npm:^5.4.1": + version: 5.4.1 + resolution: "@patternfly/react-styles@npm:5.4.1" + checksum: 6fb1ec38a017acd1cf1262b39c69f70a650ed7f205d5433c83087957395e6e487914ed1992a67de37718ea536145fc974d7d9dbc6460ae38d668035f4c6d0c1b languageName: node linkType: hard -"@types/js-levenshtein@npm:^1.1.1": - version: 1.1.3 - resolution: "@types/js-levenshtein@npm:1.1.3" - checksum: eb338696da976925ea8448a42d775d7615a14323dceeb08909f187d0b3d3b4c1f67a1c36ef586b1c2318b70ab141bba8fc58311ba1c816711704605aec09db8b +"@patternfly/react-tokens@npm:^5.4.1": + version: 5.4.1 + resolution: "@patternfly/react-tokens@npm:5.4.1" + checksum: d6f51cbd31db797ed42b148f58ecb28bcc93bdcdf39d0f20b8db5ac40ac2998002ddfad764af38c2f00bc366ac57b1c12fdd42a55e7a30fe3b01e26739e770cf languageName: node linkType: hard -"@types/js-yaml@npm:^4.0.1": - version: 4.0.9 - resolution: "@types/js-yaml@npm:4.0.9" - checksum: e5e5e49b5789a29fdb1f7d204f82de11cb9e8f6cb24ab064c616da5d6e1b3ccfbf95aa5d1498a9fbd3b9e745564e69b4a20b6c530b5a8bbb2d4eb830cda9bc69 +"@patternfly/react-topology@npm:5.3.0": + version: 5.3.0 + resolution: "@patternfly/react-topology@npm:5.3.0" + dependencies: + "@patternfly/react-core": ^5.1.1 + "@patternfly/react-icons": ^5.1.1 + "@patternfly/react-styles": ^5.1.1 + "@types/d3": ^7.4.0 + "@types/d3-force": ^1.2.1 + "@types/dagre": 0.7.42 + "@types/react-measure": ^2.0.6 + d3: ^7.8.0 + dagre: 0.8.2 + mobx: ^6.9.0 + mobx-react: ^7.6.0 + point-in-svg-path: ^1.0.1 + popper.js: ^1.16.1 + react-measure: ^2.3.0 + tslib: ^2.0.0 + webcola: 3.4.0 + peerDependencies: + react: ^17 || ^18 + react-dom: ^17 || ^18 + checksum: f0d4f0a3bcb371a94e7ca20e996119cfd448791baa974e8d3c246f0484be062ccaec215ce71ef3a7917faf1b30cffda7785ebb81d97ca8ea7ee9b12d79bf0b73 languageName: node linkType: hard -"@types/jsdom@npm:^20.0.0": - version: 20.0.1 - resolution: "@types/jsdom@npm:20.0.1" - dependencies: - "@types/node": "*" - "@types/tough-cookie": "*" - parse5: ^7.0.0 - checksum: d55402c5256ef451f93a6e3d3881f98339fe73a5ac2030588df056d6835df8367b5a857b48d27528289057e26dcdd3f502edc00cb877c79174cb3a4c7f2198c1 +"@pkgjs/parseargs@npm:^0.11.0": + version: 0.11.0 + resolution: "@pkgjs/parseargs@npm:0.11.0" + checksum: 6ad6a00fc4f2f2cfc6bff76fb1d88b8ee20bc0601e18ebb01b6d4be583733a860239a521a7fbca73b612e66705078809483549d2b18f370eb346c5155c8e4a0f languageName: node linkType: hard -"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.11, @types/json-schema@npm:^7.0.12, @types/json-schema@npm:^7.0.4, @types/json-schema@npm:^7.0.5, @types/json-schema@npm:^7.0.6, @types/json-schema@npm:^7.0.7, @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: 97ed0cb44d4070aecea772b7b2e2ed971e10c81ec87dd4ecc160322ffa55ff330dace1793489540e3e318d90942064bb697cc0f8989391797792d919737b3b98 +"@playwright/test@npm:1.45.3": + version: 1.45.3 + resolution: "@playwright/test@npm:1.45.3" + dependencies: + playwright: 1.45.3 + bin: + playwright: cli.js + checksum: 3e2c88d40f98cf94ab7947263804d1ee78c4bb21a35c8dbb64855eed5565ffc688509c5f07bda5438cba6c354374981448dcba3dbe326d1699b4fef75c9ce43d languageName: node linkType: hard -"@types/json5@npm:^0.0.29": - version: 0.0.29 - resolution: "@types/json5@npm:0.0.29" - checksum: e60b153664572116dfea673c5bda7778dbff150498f44f998e34b5886d8afc47f16799280e4b6e241c0472aef1bc36add771c569c68fc5125fc2ae519a3eb9ac +"@playwright/test@npm:^1.32.3": + version: 1.49.1 + resolution: "@playwright/test@npm:1.49.1" + dependencies: + playwright: 1.49.1 + bin: + playwright: cli.js + checksum: cdbd16df3d773dc8e522d79b4b961e25c2e1b1d4f3ec45eb711078ab5d11bca47caafe833e2be2f923328fbd012405a9ee31d9b449d184077598546a36847e69 languageName: node linkType: hard -"@types/jsonwebtoken@npm:^9.0.0": - version: 9.0.7 - resolution: "@types/jsonwebtoken@npm:9.0.7" +"@pmmmwh/react-refresh-webpack-plugin@npm:^0.5.7": + version: 0.5.15 + resolution: "@pmmmwh/react-refresh-webpack-plugin@npm:0.5.15" dependencies: - "@types/node": "*" - checksum: 872b62e2a50ec399d695402ccddfeb5cd66a6c3d28511f27453b932b6b67eb82c2d0ecaa864939848b88b3a8276c2492647bf5707bc82a6ac7e420d3412b9047 + ansi-html: ^0.0.9 + core-js-pure: ^3.23.3 + error-stack-parser: ^2.0.6 + html-entities: ^2.1.0 + loader-utils: ^2.0.4 + schema-utils: ^4.2.0 + source-map: ^0.7.3 + peerDependencies: + "@types/webpack": 4.x || 5.x + react-refresh: ">=0.10.0 <1.0.0" + sockjs-client: ^1.4.0 + type-fest: ">=0.17.0 <5.0.0" + webpack: ">=4.43.0 <6.0.0" + webpack-dev-server: 3.x || 4.x || 5.x + webpack-hot-middleware: 2.x + webpack-plugin-serve: 0.x || 1.x + peerDependenciesMeta: + "@types/webpack": + optional: true + sockjs-client: + optional: true + type-fest: + optional: true + webpack-dev-server: + optional: true + webpack-hot-middleware: + optional: true + webpack-plugin-serve: + optional: true + checksum: 82df6244146209d63a12f0ca2e70b05274ee058c7e6d6eb4ced1228afde3b039a7f3f3cc0c76f1bb4b28deadbcf08bc2821c814f0bfee06979128578300fff3d languageName: node linkType: hard -"@types/keyv@npm:^4.2.0": - version: 4.2.0 - resolution: "@types/keyv@npm:4.2.0" - dependencies: - keyv: "*" - checksum: 8713da9382b9346d664866a6cab2f91b0fd479f61379af891303a618e9a2abad6f347adc38a0850540e3f2dad278427de24e7555339264fddb04d1d17d3b50e0 +"@popperjs/core@npm:^2.11.8": + version: 2.11.8 + resolution: "@popperjs/core@npm:2.11.8" + checksum: e5c69fdebf52a4012f6a1f14817ca8e9599cb1be73dd1387e1785e2ed5e5f0862ff817f420a87c7fc532add1f88a12e25aeb010ffcbdc98eace3d55ce2139cf0 languageName: node linkType: hard -"@types/lodash@npm:^4.14.175": - version: 4.17.12 - resolution: "@types/lodash@npm:4.17.12" - checksum: 7b564e4114f09ce5ae31a2e9493592baf20bb498507f3705c5d91cf838c2298b4f6a06f2d6c8dc608fcac63e210a2b7b13388c7a5e220e15688f813521030127 +"@protobufjs/aspromise@npm:^1.1.1, @protobufjs/aspromise@npm:^1.1.2": + version: 1.1.2 + resolution: "@protobufjs/aspromise@npm:1.1.2" + checksum: 011fe7ef0826b0fd1a95935a033a3c0fd08483903e1aa8f8b4e0704e3233406abb9ee25350ec0c20bbecb2aad8da0dcea58b392bbd77d6690736f02c143865d2 languageName: node linkType: hard -"@types/luxon@npm:^3.0.0, @types/luxon@npm:~3.4.0": - version: 3.4.2 - resolution: "@types/luxon@npm:3.4.2" - checksum: 6f92d5bd02e89f310395753506bcd9cef3a56f5940f7a50db2a2b9822bce753553ac767d143cb5b4f9ed5ddd4a84e64f89ff538082ceb4d18739af7781b56925 +"@protobufjs/base64@npm:^1.1.2": + version: 1.1.2 + resolution: "@protobufjs/base64@npm:1.1.2" + checksum: 67173ac34de1e242c55da52c2f5bdc65505d82453893f9b51dc74af9fe4c065cf4a657a4538e91b0d4a1a1e0a0642215e31894c31650ff6e3831471061e1ee9e languageName: node linkType: hard -"@types/markdown-escape@npm:^1.1.3": - version: 1.1.3 - resolution: "@types/markdown-escape@npm:1.1.3" - checksum: cb2e410993271f0ccc526190391a08344f4f602be69e06fee989d36d5886866ba9ba2184054895d0ad2a12d57b02f3ccf86d7a1fe8904be48bcc1ee61b98e32f +"@protobufjs/codegen@npm:^2.0.4": + version: 2.0.4 + resolution: "@protobufjs/codegen@npm:2.0.4" + checksum: 59240c850b1d3d0b56d8f8098dd04787dcaec5c5bd8de186fa548de86b86076e1c50e80144b90335e705a044edf5bc8b0998548474c2a10a98c7e004a1547e4b languageName: node linkType: hard -"@types/methods@npm:^1.1.4": - version: 1.1.4 - resolution: "@types/methods@npm:1.1.4" - checksum: ad2a7178486f2fd167750f3eb920ab032a947ff2e26f55c86670a6038632d790b46f52e5b6ead5823f1e53fc68028f1e9ddd15cfead7903e04517c88debd72b1 +"@protobufjs/eventemitter@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/eventemitter@npm:1.1.0" + checksum: 0369163a3d226851682f855f81413cbf166cd98f131edb94a0f67f79e75342d86e89df9d7a1df08ac28be2bc77e0a7f0200526bb6c2a407abbfee1f0262d5fd7 languageName: node linkType: hard -"@types/mime@npm:^1": - version: 1.3.5 - resolution: "@types/mime@npm:1.3.5" - checksum: e29a5f9c4776f5229d84e525b7cd7dd960b51c30a0fb9a028c0821790b82fca9f672dab56561e2acd9e8eed51d431bde52eafdfef30f643586c4162f1aecfc78 +"@protobufjs/fetch@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/fetch@npm:1.1.0" + dependencies: + "@protobufjs/aspromise": ^1.1.1 + "@protobufjs/inquire": ^1.1.0 + checksum: 3fce7e09eb3f1171dd55a192066450f65324fd5f7cc01a431df01bb00d0a895e6bfb5b0c5561ce157ee1d886349c90703d10a4e11a1a256418ff591b969b3477 languageName: node linkType: hard -"@types/ms@npm:*": - version: 0.7.34 - resolution: "@types/ms@npm:0.7.34" - checksum: f38d36e7b6edecd9badc9cf50474159e9da5fa6965a75186cceaf883278611b9df6669dc3a3cc122b7938d317b68a9e3d573d316fcb35d1be47ec9e468c6bd8a +"@protobufjs/float@npm:^1.0.2": + version: 1.0.2 + resolution: "@protobufjs/float@npm:1.0.2" + checksum: 5781e1241270b8bd1591d324ca9e3a3128d2f768077a446187a049e36505e91bc4156ed5ac3159c3ce3d2ba3743dbc757b051b2d723eea9cd367bfd54ab29b2f languageName: node linkType: hard -"@types/node-forge@npm:^1.3.0": - version: 1.3.11 - resolution: "@types/node-forge@npm:1.3.11" - dependencies: - "@types/node": "*" - checksum: 1e86bd55b92a492eaafd75f6d01f31e7d86a5cdadd0c6bcdc0b1df4103b7f99bb75b832efd5217c7ddda5c781095dc086a868e20b9de00f5a427ddad4c296cd5 +"@protobufjs/inquire@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/inquire@npm:1.1.0" + checksum: ca06f02eaf65ca36fb7498fc3492b7fc087bfcc85c702bac5b86fad34b692bdce4990e0ef444c1e2aea8c034227bd1f0484be02810d5d7e931c55445555646f4 languageName: node linkType: hard -"@types/node@npm:*": - version: 22.8.2 - resolution: "@types/node@npm:22.8.2" - dependencies: - undici-types: ~6.19.8 - checksum: 8d57352fe563e8de78311c2f799e8c3805cbec3840dfa54d5168588c30112d1e87a7940ebdbdcebb1f0094e26b7e626dfadd9683f5c60d8a76e9082051fea14a +"@protobufjs/path@npm:^1.1.2": + version: 1.1.2 + resolution: "@protobufjs/path@npm:1.1.2" + checksum: 856eeb532b16a7aac071cacde5c5620df800db4c80cee6dbc56380524736205aae21e5ae47739114bf669ab5e8ba0e767a282ad894f3b5e124197cb9224445ee languageName: node linkType: hard -"@types/node@npm:^12.7.1": - version: 12.20.55 - resolution: "@types/node@npm:12.20.55" - checksum: e4f86785f4092706e0d3b0edff8dca5a13b45627e4b36700acd8dfe6ad53db71928c8dee914d4276c7fd3b6ccd829aa919811c9eb708a2c8e4c6eb3701178c37 +"@protobufjs/pool@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/pool@npm:1.1.0" + checksum: d6a34fbbd24f729e2a10ee915b74e1d77d52214de626b921b2d77288bd8f2386808da2315080f2905761527cceffe7ec34c7647bd21a5ae41a25e8212ff79451 languageName: node linkType: hard -"@types/node@npm:^16.9.2": - version: 16.18.115 - resolution: "@types/node@npm:16.18.115" - checksum: a9caf3a72b8fca0a945c04b99502615f297fc9d12779147822cf10b4a3fe77161b631ae239b9522cf9ccda90fcd9d49abe255bd2012a3347f677210610760d6d +"@protobufjs/utf8@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/utf8@npm:1.1.0" + checksum: f9bf3163d13aaa3b6f5e6fbf37a116e094ea021c0e1f2a7ccd0e12a29e2ce08dafba4e8b36e13f8ed7397e1591610ce880ed1289af4d66cf4ace8a36a9557278 languageName: node linkType: hard -"@types/node@npm:^18.11.18, @types/node@npm:^18.11.9": - version: 18.19.60 - resolution: "@types/node@npm:18.19.60" - dependencies: - undici-types: ~5.26.4 - checksum: 3cd21254a9f2175d6f652d9d5b9afc0261903e0dfd54355074bf5bd81d6606738bcfdb5581538037e9bd42886c8f5e96596245409fb8cde7fe13751d07bc1495 +"@radix-ui/primitive@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/primitive@npm:1.1.1" + checksum: d7e819177590108b74139809d52ec043c0962ae3513e947998be575fb13639c5c1c091896ddcf1d6a22a777d44ade59d22c2019ce9099607fc62a5de09c59707 languageName: node linkType: hard -"@types/node@npm:^20.1.1": - version: 20.17.2 - resolution: "@types/node@npm:20.17.2" +"@radix-ui/react-arrow@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-arrow@npm:1.1.1" dependencies: - undici-types: ~6.19.2 - checksum: 3e9be67728001fb2a0ba730d8e909559fb09b992443d8d9cc9009be717cb44c673f52a734d5802a67ff50c8ddd8ef7d9eba40e9d2a82a73098e081d2625260e6 + "@radix-ui/react-primitive": 2.0.1 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: c75505c2858cffff7c742e888b635879f9a6d95e08bf5ae939be33f97e1171379bc6b5354ec0cd3d12624bdbe5a830ee6aa0fb1f46b1af160b488bc54e64d486 languageName: node linkType: hard -"@types/parse-json@npm:^4.0.0": - version: 4.0.2 - resolution: "@types/parse-json@npm:4.0.2" - checksum: 5bf62eec37c332ad10059252fc0dab7e7da730764869c980b0714777ad3d065e490627be9f40fc52f238ffa3ac4199b19de4127196910576c2fe34dd47c7a470 +"@radix-ui/react-collection@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-collection@npm:1.1.1" + dependencies: + "@radix-ui/react-compose-refs": 1.1.1 + "@radix-ui/react-context": 1.1.1 + "@radix-ui/react-primitive": 2.0.1 + "@radix-ui/react-slot": 1.1.1 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 413fbcb542ae5efefab05053a9cc3380586e7bc3d36427845a62749d90284986333e609066b952cc6ccd0a8ef49e8de773ea1cd294aecff3cdb1eb4047e97c2f languageName: node linkType: hard -"@types/passport@npm:^1.0.3": - version: 1.0.17 - resolution: "@types/passport@npm:1.0.17" - dependencies: - "@types/express": "*" - checksum: b131d5963576e759f972f038bb7461dcaaa1dc484a488eb093eac6a9f8d4f51c9b7adcd432ae84e3ecb68839dfba16f6d569f36664330b6af59d36ff3c4c64e2 +"@radix-ui/react-compose-refs@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-compose-refs@npm:1.1.1" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 1be82f9f7fab96cc10f167a2e4f976e0135a63d473334f664c06f02af13bc5ea1994cb0505f89ed190d756cb65d57506721c030908af07e49b9e3cfd36044f33 languageName: node linkType: hard -"@types/qs@npm:*, @types/qs@npm:^6.9.6": - version: 6.9.16 - resolution: "@types/qs@npm:6.9.16" - checksum: 2e8918150c12735630f7ee16b770c72949274938c30306025f68aaf977227f41fe0c698ed93db1099e04916d582ac5a1faf7e3c7061c8d885d9169f59a184b6c +"@radix-ui/react-context@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-context@npm:1.1.1" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 9a04db236685dacc2f5ab2bdcfc4c82b974998e712ab97d79b11d5b4ef073d24aa9392398c876ef6cb3c59f40299285ceee3646187ad818cdad4fe1c74469d3f languageName: node linkType: hard -"@types/range-parser@npm:*": - version: 1.2.7 - resolution: "@types/range-parser@npm:1.2.7" - checksum: 95640233b689dfbd85b8c6ee268812a732cf36d5affead89e806fe30da9a430767af8ef2cd661024fd97e19d61f3dec75af2df5e80ec3bea000019ab7028629a +"@radix-ui/react-dialog@npm:^1.0.4": + version: 1.1.4 + resolution: "@radix-ui/react-dialog@npm:1.1.4" + dependencies: + "@radix-ui/primitive": 1.1.1 + "@radix-ui/react-compose-refs": 1.1.1 + "@radix-ui/react-context": 1.1.1 + "@radix-ui/react-dismissable-layer": 1.1.3 + "@radix-ui/react-focus-guards": 1.1.1 + "@radix-ui/react-focus-scope": 1.1.1 + "@radix-ui/react-id": 1.1.0 + "@radix-ui/react-portal": 1.1.3 + "@radix-ui/react-presence": 1.1.2 + "@radix-ui/react-primitive": 2.0.1 + "@radix-ui/react-slot": 1.1.1 + "@radix-ui/react-use-controllable-state": 1.1.0 + aria-hidden: ^1.1.1 + react-remove-scroll: ^2.6.1 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 695b35c7283adfe2be4ad88d30f0ad08be099a55dfd54e49ede61074846255b426eb57734509b5fc6f349439a051b48e44e58b542c2605383aa721a1b2bd7861 languageName: node linkType: hard -"@types/request@npm:^2.47.1, @types/request@npm:^2.48.8": - version: 2.48.12 - resolution: "@types/request@npm:2.48.12" - dependencies: - "@types/caseless": "*" - "@types/node": "*" - "@types/tough-cookie": "*" - form-data: ^2.5.0 - checksum: 20dfad0a46b4249bf42f09c51fbd4d02ec6738c5152194b5c7c69bab80b00eae9cc71df4489ffa929d0968d453ef7d0823d1f98871efed563a4fdb57bf0a4c58 +"@radix-ui/react-direction@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-direction@npm:1.1.0" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 25ad0d1d65ad08c93cebfbefdff9ef2602e53f4573a66b37d2c366ede9485e75ec6fc8e7dd7d2939b34ea5504ca0fe6ac4a3acc2f6ee9b62d131d65486eafd49 languageName: node linkType: hard -"@types/resolve@npm:1.20.2": - version: 1.20.2 - resolution: "@types/resolve@npm:1.20.2" - checksum: 61c2cad2499ffc8eab36e3b773945d337d848d3ac6b7b0a87c805ba814bc838ef2f262fc0f109bfd8d2e0898ff8bd80ad1025f9ff64f1f71d3d4294c9f14e5f6 +"@radix-ui/react-dismissable-layer@npm:1.1.3": + version: 1.1.3 + resolution: "@radix-ui/react-dismissable-layer@npm:1.1.3" + dependencies: + "@radix-ui/primitive": 1.1.1 + "@radix-ui/react-compose-refs": 1.1.1 + "@radix-ui/react-primitive": 2.0.1 + "@radix-ui/react-use-callback-ref": 1.1.0 + "@radix-ui/react-use-escape-keydown": 1.1.0 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 26d15726bdb274aeb8d801fd163051c270707fb19e9bac4e0e90b368e79063a5347a0b15dc3aadc0bbafa157674e9e796d785d720bd5132c059ac5294ac73a81 languageName: node linkType: hard -"@types/retry@npm:0.12.0": - version: 0.12.0 - resolution: "@types/retry@npm:0.12.0" - checksum: 61a072c7639f6e8126588bf1eb1ce8835f2cb9c2aba795c4491cf6310e013267b0c8488039857c261c387e9728c1b43205099223f160bb6a76b4374f741b5603 +"@radix-ui/react-dropdown-menu@npm:^2.0.5": + version: 2.1.4 + resolution: "@radix-ui/react-dropdown-menu@npm:2.1.4" + dependencies: + "@radix-ui/primitive": 1.1.1 + "@radix-ui/react-compose-refs": 1.1.1 + "@radix-ui/react-context": 1.1.1 + "@radix-ui/react-id": 1.1.0 + "@radix-ui/react-menu": 2.1.4 + "@radix-ui/react-primitive": 2.0.1 + "@radix-ui/react-use-controllable-state": 1.1.0 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 51014b38daab21d32164813d228b182e5dbf90c77115e5c32b8bbd37696a303485fe30fa2e0a097e1ca3f474cad0dd15efcecc3f567b5edf0a79b5092fe3b4e0 languageName: node linkType: hard -"@types/retry@npm:0.12.2": - version: 0.12.2 - resolution: "@types/retry@npm:0.12.2" - checksum: e5675035717b39ce4f42f339657cae9637cf0c0051cf54314a6a2c44d38d91f6544be9ddc0280587789b6afd056be5d99dbe3e9f4df68c286c36321579b1bf4a +"@radix-ui/react-focus-guards@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-focus-guards@npm:1.1.1" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: ac8dd31f48fa0500bafd9368f2f06c5a06918dccefa89fa5dc77ca218dc931a094a81ca57f6b181138029822f7acdd5280dceccf5ba4d9263c754fb8f7961879 languageName: node linkType: hard -"@types/sarif@npm:^2.1.4": - version: 2.1.7 - resolution: "@types/sarif@npm:2.1.7" - checksum: ee5d30f5a2678091502343fba7905e85d25dbb545f920de9fc8a7c6693509b491a043168970a16325730cc0c88de54d2b6b3de0c2caa31645c8ebf558c5553af +"@radix-ui/react-focus-scope@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-focus-scope@npm:1.1.1" + dependencies: + "@radix-ui/react-compose-refs": 1.1.1 + "@radix-ui/react-primitive": 2.0.1 + "@radix-ui/react-use-callback-ref": 1.1.0 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 8716fe9b029a66f81b37e4e22457dd0fc7b4dba573d712454e18ead850f256d84cd994eeebcc31dd7780cf1028b6410d9ebe152fff4478d3b4ce2700690a38f4 languageName: node linkType: hard -"@types/semver@npm:7.5.8, @types/semver@npm:^7.5.0": - version: 7.5.8 - resolution: "@types/semver@npm:7.5.8" - checksum: ea6f5276f5b84c55921785a3a27a3cd37afee0111dfe2bcb3e03c31819c197c782598f17f0b150a69d453c9584cd14c4c4d7b9a55d2c5e6cacd4d66fdb3b3663 +"@radix-ui/react-id@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-id@npm:1.1.0" + dependencies: + "@radix-ui/react-use-layout-effect": 1.1.0 + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 6fbc9d1739b3b082412da10359e63967b4f3a60383ebda4c9e56b07a722d29bee53b203b3b1418f88854a29315a7715867133bb149e6e22a027a048cdd20d970 languageName: node linkType: hard -"@types/send@npm:*": - version: 0.17.4 - resolution: "@types/send@npm:0.17.4" - dependencies: - "@types/mime": ^1 - "@types/node": "*" - checksum: cf4db48251bbb03cd6452b4de6e8e09e2d75390a92fd798eca4a803df06444adc94ed050246c94c7ed46fb97be1f63607f0e1f13c3ce83d71788b3e08640e5e0 +"@radix-ui/react-menu@npm:2.1.4": + version: 2.1.4 + resolution: "@radix-ui/react-menu@npm:2.1.4" + dependencies: + "@radix-ui/primitive": 1.1.1 + "@radix-ui/react-collection": 1.1.1 + "@radix-ui/react-compose-refs": 1.1.1 + "@radix-ui/react-context": 1.1.1 + "@radix-ui/react-direction": 1.1.0 + "@radix-ui/react-dismissable-layer": 1.1.3 + "@radix-ui/react-focus-guards": 1.1.1 + "@radix-ui/react-focus-scope": 1.1.1 + "@radix-ui/react-id": 1.1.0 + "@radix-ui/react-popper": 1.2.1 + "@radix-ui/react-portal": 1.1.3 + "@radix-ui/react-presence": 1.1.2 + "@radix-ui/react-primitive": 2.0.1 + "@radix-ui/react-roving-focus": 1.1.1 + "@radix-ui/react-slot": 1.1.1 + "@radix-ui/react-use-callback-ref": 1.1.0 + aria-hidden: ^1.1.1 + react-remove-scroll: ^2.6.1 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 2a20db7c017075d3ceb07b076dfdbdc3c4d26825642e2f52d4bda9947078725db129c2b41a93a6f1393526eca3bf586f54dc47a9a66e1eef621c94a55a216aa4 languageName: node linkType: hard -"@types/serve-index@npm:^1.9.1, @types/serve-index@npm:^1.9.4": - version: 1.9.4 - resolution: "@types/serve-index@npm:1.9.4" - dependencies: - "@types/express": "*" - checksum: 72727c88d54da5b13275ebfb75dcdc4aa12417bbe9da1939e017c4c5f0c906fae843aa4e0fbfe360e7ee9df2f3d388c21abfc488f77ce58693fb57809f8ded92 +"@radix-ui/react-popper@npm:1.2.1": + version: 1.2.1 + resolution: "@radix-ui/react-popper@npm:1.2.1" + dependencies: + "@floating-ui/react-dom": ^2.0.0 + "@radix-ui/react-arrow": 1.1.1 + "@radix-ui/react-compose-refs": 1.1.1 + "@radix-ui/react-context": 1.1.1 + "@radix-ui/react-primitive": 2.0.1 + "@radix-ui/react-use-callback-ref": 1.1.0 + "@radix-ui/react-use-layout-effect": 1.1.0 + "@radix-ui/react-use-rect": 1.1.0 + "@radix-ui/react-use-size": 1.1.0 + "@radix-ui/rect": 1.1.0 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 1416acda53d06d497d40a587e02ef821dcb955f2eee86bad3a9acacfd7fda8601e5d36a9cbe5e47d200052169ccd2d840b685c51e7192afdf3fc7fa072274ee0 languageName: node linkType: hard -"@types/serve-static@npm:*, @types/serve-static@npm:^1.13.10, @types/serve-static@npm:^1.15.5": - version: 1.15.7 - resolution: "@types/serve-static@npm:1.15.7" +"@radix-ui/react-portal@npm:1.1.3": + version: 1.1.3 + resolution: "@radix-ui/react-portal@npm:1.1.3" dependencies: - "@types/http-errors": "*" - "@types/node": "*" - "@types/send": "*" - checksum: bbbf00dbd84719da2250a462270dc68964006e8d62f41fe3741abd94504ba3688f420a49afb2b7478921a1544d3793183ffa097c5724167da777f4e0c7f1a7d6 + "@radix-ui/react-primitive": 2.0.1 + "@radix-ui/react-use-layout-effect": 1.1.0 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 470fb50c940772d05cc268e219b3d15848909dcd0a2dc1952965d0af905992f0ccab99e99c490dea6564c441397eba720b8425ba9f4582c94bef40ebe27ac0d0 languageName: node linkType: hard -"@types/set-cookie-parser@npm:^2.4.0": - version: 2.4.10 - resolution: "@types/set-cookie-parser@npm:2.4.10" +"@radix-ui/react-presence@npm:1.1.2": + version: 1.1.2 + resolution: "@radix-ui/react-presence@npm:1.1.2" dependencies: - "@types/node": "*" - checksum: 105cc90c7d7deeb344858f720b58bd137356586545ac00d1a448e050bfcc0f385553ff26bc9c674bd8c2e953a458149eadb1945ee3d1eee81e6c0656236ebc0a + "@radix-ui/react-compose-refs": 1.1.1 + "@radix-ui/react-use-layout-effect": 1.1.0 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 0345bc8d3e1ddcbf4b864025833c71f3d76e4801ce16ad126a98aed816be6e819c4fe01097c6c1320771b947f5a14929cc610d18e7a1438cfb5573289fa4d4a6 languageName: node linkType: hard -"@types/sockjs@npm:^0.3.33, @types/sockjs@npm:^0.3.36": - version: 0.3.36 - resolution: "@types/sockjs@npm:0.3.36" +"@radix-ui/react-primitive@npm:2.0.1": + version: 2.0.1 + resolution: "@radix-ui/react-primitive@npm:2.0.1" dependencies: - "@types/node": "*" - checksum: b4b5381122465d80ea8b158537c00bc82317222d3fb31fd7229ff25b31fa89134abfbab969118da55622236bf3d8fee75759f3959908b5688991f492008f29bc + "@radix-ui/react-slot": 1.1.1 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: d75882209101155f20babcff9475b887929db6473cd8e5b56d0c24d24d0042202e0fa785e6d6c6b322a96d9777cd0ef7610def9e11ea69839c6b204f1c99cf16 languageName: node linkType: hard -"@types/ssh2-streams@npm:*": - version: 0.1.12 - resolution: "@types/ssh2-streams@npm:0.1.12" - dependencies: - "@types/node": "*" - checksum: aa0aa45e40cfca34b4443dafa8d28ff49196c05c71867cbf0a8cdd5127be4d8a3840819543fcad16535653ca8b0e29217671ed6500ff1e7a3ad2442c5d1b40a6 +"@radix-ui/react-roving-focus@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-roving-focus@npm:1.1.1" + dependencies: + "@radix-ui/primitive": 1.1.1 + "@radix-ui/react-collection": 1.1.1 + "@radix-ui/react-compose-refs": 1.1.1 + "@radix-ui/react-context": 1.1.1 + "@radix-ui/react-direction": 1.1.0 + "@radix-ui/react-id": 1.1.0 + "@radix-ui/react-primitive": 2.0.1 + "@radix-ui/react-use-callback-ref": 1.1.0 + "@radix-ui/react-use-controllable-state": 1.1.0 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: f3a78bd15cca322b384758c938106414b4cbe99aa58ca3eb12ec9d66552c7fa137128e846f413a6b7027f4bed04b2233c9aad8adb1ba07e14ed7a697f972d4f6 languageName: node linkType: hard -"@types/ssh2@npm:*": - version: 1.15.1 - resolution: "@types/ssh2@npm:1.15.1" +"@radix-ui/react-slot@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-slot@npm:1.1.1" dependencies: - "@types/node": ^18.11.18 - checksum: 6a10b4da60817f2939cac18006a7ccbc6421facf2370a263072fc5290b1f5d445b385c5f309e93ce447bb33ad92dac18f562ccda20f092076da1c1a55da299fb + "@radix-ui/react-compose-refs": 1.1.1 + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: ac391b921dcde1a71db8307247b36cd6908e0886d7a7b0babeb25158292bc29b61ccfb3f83279bfad11fe1f0f90e3e2f3de93b1174f36d107d77b073fe1a652a languageName: node linkType: hard -"@types/ssh2@npm:^0.5.48": - version: 0.5.52 - resolution: "@types/ssh2@npm:0.5.52" - dependencies: - "@types/node": "*" - "@types/ssh2-streams": "*" - checksum: bc1c76ac727ad73ddd59ba849cf0ea3ed2e930439e7a363aff24f04f29b74f9b1976369b869dc9a018223c9fb8ad041c09a0f07aea8cf46a8c920049188cddae +"@radix-ui/react-tooltip@npm:^1.0.6": + version: 1.1.6 + resolution: "@radix-ui/react-tooltip@npm:1.1.6" + dependencies: + "@radix-ui/primitive": 1.1.1 + "@radix-ui/react-compose-refs": 1.1.1 + "@radix-ui/react-context": 1.1.1 + "@radix-ui/react-dismissable-layer": 1.1.3 + "@radix-ui/react-id": 1.1.0 + "@radix-ui/react-popper": 1.2.1 + "@radix-ui/react-portal": 1.1.3 + "@radix-ui/react-presence": 1.1.2 + "@radix-ui/react-primitive": 2.0.1 + "@radix-ui/react-slot": 1.1.1 + "@radix-ui/react-use-controllable-state": 1.1.0 + "@radix-ui/react-visually-hidden": 1.1.1 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: aabbb2c3a7592419fcf41d306582c57307e9518ee29d80e0a8f811bb29ade72144ee35a4f4a120e5143dee46813017fe4e087f351503929553a94e3af986305f languageName: node linkType: hard -"@types/stack-utils@npm:^2.0.0": - version: 2.0.3 - resolution: "@types/stack-utils@npm:2.0.3" - checksum: 72576cc1522090fe497337c2b99d9838e320659ac57fa5560fcbdcbafcf5d0216c6b3a0a8a4ee4fdb3b1f5e3420aa4f6223ab57b82fef3578bec3206425c6cf5 +"@radix-ui/react-use-callback-ref@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-use-callback-ref@npm:1.1.0" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 2ec7903c67e3034b646005556f44fd975dc5204db6885fc58403e3584f27d95f0b573bc161de3d14fab9fda25150bf3b91f718d299fdfc701c736bd0bd2281fa languageName: node linkType: hard -"@types/superagent@npm:*": - version: 8.1.9 - resolution: "@types/superagent@npm:8.1.9" +"@radix-ui/react-use-controllable-state@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-use-controllable-state@npm:1.1.0" dependencies: - "@types/cookiejar": ^2.1.5 - "@types/methods": ^1.1.4 - "@types/node": "*" - form-data: ^4.0.0 - checksum: 530d8c2e87706315c82c8c9696500c40621de3353bc54ea9b104947f3530243abf54d0a49a6ae219d4947606a102ceb94bedfc43b9cc49f74069a18cbb3be8e2 + "@radix-ui/react-use-callback-ref": 1.1.0 + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: a6c167cf8eb0744effbeab1f92ea6c0ad71838b222670c0488599f28eecd941d87ac1eed4b5d3b10df6dc7b7b2edb88a54e99d92c2942ce3b21f81d5c188f32d languageName: node linkType: hard -"@types/supertest@npm:2.0.16": - version: 2.0.16 - resolution: "@types/supertest@npm:2.0.16" +"@radix-ui/react-use-escape-keydown@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-use-escape-keydown@npm:1.1.0" dependencies: - "@types/superagent": "*" - checksum: 2fc998ea698e0467cdbe3bea0ebce2027ea3a45a13e51a6cecb0435f44b486faecf99c34d8702d2d7fe033e6e09fdd2b374af52ecc8d0c69a1deec66b8c0dd52 + "@radix-ui/react-use-callback-ref": 1.1.0 + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 9bf88ea272b32ea0f292afd336780a59c5646f795036b7e6105df2d224d73c54399ee5265f61d571eb545d28382491a8b02dc436e3088de8dae415d58b959b71 languageName: node linkType: hard -"@types/tough-cookie@npm:*": - version: 4.0.5 - resolution: "@types/tough-cookie@npm:4.0.5" - checksum: f19409d0190b179331586365912920d192733112a195e870c7f18d20ac8adb7ad0b0ff69dad430dba8bc2be09593453a719cfea92dc3bda19748fd158fe1498d +"@radix-ui/react-use-layout-effect@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-use-layout-effect@npm:1.1.0" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 271ea0bf1cd74718895a68414a6e95537737f36e02ad08eeb61a82b229d6abda9cff3135a479e134e1f0ce2c3ff97bb85babbdce751985fb755a39b231d7ccf2 languageName: node linkType: hard -"@types/triple-beam@npm:^1.3.2": - version: 1.3.5 - resolution: "@types/triple-beam@npm:1.3.5" - checksum: 519b6a1b30d4571965c9706ad5400a200b94e4050feca3e7856e3ea7ac00ec9903e32e9a10e2762d0f7e472d5d03e5f4b29c16c0bd8c1f77c8876c683b2231f1 +"@radix-ui/react-use-rect@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-use-rect@npm:1.1.0" + dependencies: + "@radix-ui/rect": 1.1.0 + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: facc9528af43df3b01952dbb915ff751b5924db2c31d41f053ddea19a7cc5cac5b096c4d7a2059e8f564a3f0d4a95bcd909df8faed52fa01709af27337628e2c languageName: node linkType: hard -"@types/urijs@npm:^1.19.19": - version: 1.19.25 - resolution: "@types/urijs@npm:1.19.25" - checksum: cce3fd2845d5e143f4130134a5f6ff7e02b4dfc05f4d13c7b28a404fd9420bb8a6483a572c0662693bb18c5b3d8f814270aa75f3fd539f32fae22d005e755b5d +"@radix-ui/react-use-size@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-use-size@npm:1.1.0" + dependencies: + "@radix-ui/react-use-layout-effect": 1.1.0 + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 01a11d4c07fc620b8a081e53d7ec8495b19a11e02688f3d9f47cf41a5fe0428d1e52ed60b2bf88dfd447dc2502797b9dad2841097389126dd108530913c4d90d languageName: node linkType: hard -"@types/uuid@npm:^9.0.1": - version: 9.0.8 - resolution: "@types/uuid@npm:9.0.8" - checksum: b8c60b7ba8250356b5088302583d1704a4e1a13558d143c549c408bf8920535602ffc12394ede77f8a8083511b023704bc66d1345792714002bfa261b17c5275 +"@radix-ui/react-visually-hidden@npm:1.1.1, @radix-ui/react-visually-hidden@npm:^1.0.3": + version: 1.1.1 + resolution: "@radix-ui/react-visually-hidden@npm:1.1.1" + dependencies: + "@radix-ui/react-primitive": 2.0.1 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: ccbdf29811283fb257f0b0f8604923e6fe349a264986463f6d6a20946fc51e243527985e69f0af27659f78fd7a4199dacbba5bfc7af3667aa409cd23a0ae3283 languageName: node linkType: hard -"@types/webpack-env@npm:^1.15.2": - version: 1.18.5 - resolution: "@types/webpack-env@npm:1.18.5" - checksum: 4ca8eb4c44e1e1807c3e245442fce7aaf2816a163056de9436bbac44cc47c8bc5b1c9a330dc05748d6616431b1fb5bd5379733fb1da0b78d03c59f4ec824c184 +"@radix-ui/rect@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/rect@npm:1.1.0" + checksum: 1ad93efbc9fc3b878bae5e8bb26ffa1005235d8b5b9fca8339eb5dbcf7bf53abc9ccd2a8ce128557820168c8600521e48e0ea4dda96aa5f116381f66f46aeda3 languageName: node linkType: hard -"@types/ws@npm:^8.5.10, @types/ws@npm:^8.5.3, @types/ws@npm:^8.5.5": - version: 8.5.12 - resolution: "@types/ws@npm:8.5.12" - dependencies: - "@types/node": "*" - checksum: ddefb6ad1671f70ce73b38a5f47f471d4d493864fca7c51f002a86e5993d031294201c5dced6d5018fb8905ad46888d65c7f20dd54fc165910b69f42fba9a6d0 +"@react-hookz/deep-equal@npm:^1.0.4": + version: 1.0.4 + resolution: "@react-hookz/deep-equal@npm:1.0.4" + checksum: 0923e364d309e32ee54e0850471a86488faf149d7a04ee838552cf5d54f493964623a8d742880ec82410cc1105530123f056e66dfc72b7da235d4cc93fad708f languageName: node linkType: hard -"@types/yargs-parser@npm:*": - version: 21.0.3 - resolution: "@types/yargs-parser@npm:21.0.3" - checksum: ef236c27f9432983e91432d974243e6c4cdae227cb673740320eff32d04d853eed59c92ca6f1142a335cfdc0e17cccafa62e95886a8154ca8891cc2dec4ee6fc +"@react-hookz/web@npm:^24.0.0": + version: 24.0.4 + resolution: "@react-hookz/web@npm:24.0.4" + dependencies: + "@react-hookz/deep-equal": ^1.0.4 + peerDependencies: + js-cookie: ^3.0.5 + react: ^16.8 || ^17 || ^18 + react-dom: ^16.8 || ^17 || ^18 + peerDependenciesMeta: + js-cookie: + optional: true + checksum: 842dd51a2c875814c7468632315d756e79fcdff2882d7224e8e06c630f95ab788b6a59c29c0318cb049a18be97537803be8e3dbae12de34b2ae1290ababe266a languageName: node linkType: hard -"@types/yargs@npm:^17.0.8": - version: 17.0.33 - resolution: "@types/yargs@npm:17.0.33" - dependencies: - "@types/yargs-parser": "*" - checksum: ee013f257472ab643cb0584cf3e1ff9b0c44bca1c9ba662395300a7f1a6c55fa9d41bd40ddff42d99f5d95febb3907c9ff600fbcb92dadbec22c6a76de7e1236 +"@redhat-developer/red-hat-developer-hub-theme@npm:0.4.0": + version: 0.4.0 + resolution: "@redhat-developer/red-hat-developer-hub-theme@npm:0.4.0" + peerDependencies: + "@backstage/theme": ^0.5.2 + "@emotion/react": ^11.11.1 + "@emotion/styled": ^11.11.0 + "@material-ui/core": ^4.12.4 + "@material-ui/icons": ^4.11.3 + "@mui/icons-material": ^5.14.19 + "@mui/material": ^5.14.20 + checksum: 8684f8faa2fe87100dba2c19f1e1a306e808cf98bc65da829c3203a325ea6520a93e54c174e25a220ccf8280ecc2750a178a0d18b12f5ba354c7c415e8a9dc7b languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^6.12.0": - version: 6.21.0 - resolution: "@typescript-eslint/eslint-plugin@npm:6.21.0" - dependencies: - "@eslint-community/regexpp": ^4.5.1 - "@typescript-eslint/scope-manager": 6.21.0 - "@typescript-eslint/type-utils": 6.21.0 - "@typescript-eslint/utils": 6.21.0 - "@typescript-eslint/visitor-keys": 6.21.0 - debug: ^4.3.4 - graphemer: ^1.4.0 - ignore: ^5.2.4 - natural-compare: ^1.4.0 - semver: ^7.5.4 - ts-api-utils: ^1.0.1 +"@redis/bloom@npm:1.2.0": + version: 1.2.0 + resolution: "@redis/bloom@npm:1.2.0" peerDependencies: - "@typescript-eslint/parser": ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 5ef2c502255e643e98051e87eb682c2a257e87afd8ec3b9f6274277615e1c2caf3131b352244cfb1987b8b2c415645eeacb9113fa841fc4c9b2ac46e8aed6efd + "@redis/client": ^1.0.0 + checksum: 8c214227287d6b278109098bca00afc601cf84f7da9c6c24f4fa7d3854b946170e5893aa86ed607ba017a4198231d570541c79931b98b6d50b262971022d1d6c languageName: node linkType: hard -"@typescript-eslint/parser@npm:^6.7.2": - version: 6.21.0 - resolution: "@typescript-eslint/parser@npm:6.21.0" +"@redis/client@npm:1.6.0": + version: 1.6.0 + resolution: "@redis/client@npm:1.6.0" dependencies: - "@typescript-eslint/scope-manager": 6.21.0 - "@typescript-eslint/types": 6.21.0 - "@typescript-eslint/typescript-estree": 6.21.0 - "@typescript-eslint/visitor-keys": 6.21.0 - debug: ^4.3.4 + cluster-key-slot: 1.1.2 + generic-pool: 3.9.0 + yallist: 4.0.0 + checksum: c01c89a793541dc6908a97f375fec3ac28bed7f92b1c20351a3073ce75c0263998a30c3316cbb76e6a4403059d9982d40aec0bc8f1b3cab43615edaaf05980da + languageName: node + linkType: hard + +"@redis/graph@npm:1.1.1": + version: 1.1.1 + resolution: "@redis/graph@npm:1.1.1" peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 162fe3a867eeeffda7328bce32dae45b52283c68c8cb23258fb9f44971f761991af61f71b8c9fe1aa389e93dfe6386f8509c1273d870736c507d76dd40647b68 + "@redis/client": ^1.0.0 + checksum: caf9b9a3ff82a08ae543c356a3fed548399ae79aba5ed08ce6cf1b522b955eb5cee4406b0ed0c6899345f8fbc06dfd6cd51304ae8422c3ebbc468f53294dc509 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:6.21.0": - version: 6.21.0 - resolution: "@typescript-eslint/scope-manager@npm:6.21.0" - dependencies: - "@typescript-eslint/types": 6.21.0 - "@typescript-eslint/visitor-keys": 6.21.0 - checksum: 71028b757da9694528c4c3294a96cc80bc7d396e383a405eab3bc224cda7341b88e0fc292120b35d3f31f47beac69f7083196c70616434072fbcd3d3e62d3376 +"@redis/json@npm:1.0.7": + version: 1.0.7 + resolution: "@redis/json@npm:1.0.7" + peerDependencies: + "@redis/client": ^1.0.0 + checksum: a84d51c06a2af9a42eff5a6db795e7c0f7ada27d958f5d762b6f9778f413399dbe6a0c2ab00dd7ccc5fdab5f2940afbab4a56c2b1c284a2326d0f79965d5bba1 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.12.2": - version: 8.12.2 - resolution: "@typescript-eslint/scope-manager@npm:8.12.2" - dependencies: - "@typescript-eslint/types": 8.12.2 - "@typescript-eslint/visitor-keys": 8.12.2 - checksum: dd960238f1cf0f24e6c16525f0cbdb6cf65bfc3cfe650f376ecda2583c378c2e3a7eb4c2d57e04e009626d009018226b722a670ca283086c2a6cc1931c2268d8 +"@redis/search@npm:1.2.0": + version: 1.2.0 + resolution: "@redis/search@npm:1.2.0" + peerDependencies: + "@redis/client": ^1.0.0 + checksum: 256ddf8b30f216b605e571c9085e0efd5e3b43229b57db8ba0eea3376540ada437b68509c3bb0354e3c784f5fa1b825593cc602ebbfc5cbfa9e46d5c7be67eb6 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:6.21.0": - version: 6.21.0 - resolution: "@typescript-eslint/type-utils@npm:6.21.0" - dependencies: - "@typescript-eslint/typescript-estree": 6.21.0 - "@typescript-eslint/utils": 6.21.0 - debug: ^4.3.4 - ts-api-utils: ^1.0.1 +"@redis/time-series@npm:1.1.0": + version: 1.1.0 + resolution: "@redis/time-series@npm:1.1.0" peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 77025473f4d80acf1fafcce99c5c283e557686a61861febeba9c9913331f8a41e930bf5cd8b7a54db502a57b6eb8ea6d155cbd4f41349ed00e3d7aeb1f477ddc + "@redis/client": ^1.0.0 + checksum: 785f024e1c83866708beb254f765e561ccd6e6caad61b697223b3355ee92ca1e99a4d312c4ce03a3d6a29a223f38a2ec844c80b47990fa3bd9ddc56a30c1376f languageName: node linkType: hard -"@typescript-eslint/types@npm:6.21.0": - version: 6.21.0 - resolution: "@typescript-eslint/types@npm:6.21.0" - checksum: 9501b47d7403417af95fc1fb72b2038c5ac46feac0e1598a46bcb43e56a606c387e9dcd8a2a0abe174c91b509f2d2a8078b093786219eb9a01ab2fbf9ee7b684 +"@remix-run/router@npm:1.21.0": + version: 1.21.0 + resolution: "@remix-run/router@npm:1.21.0" + checksum: d9477a7772053ad0ffcf03385cfb1a54e56f8a56d1f9f5062de3b1dfcbd019dd73282a00a5a72aa55c120771110982448c165c1405d64540aaef13051a8e45cc languageName: node linkType: hard -"@typescript-eslint/types@npm:8.12.2": - version: 8.12.2 - resolution: "@typescript-eslint/types@npm:8.12.2" - checksum: b0f7effdac842428b15d76710295a8b4f1fe1ff14e40fbb10c8f571c11fd517d75d76decbecf90412bc5eabce0cd4ac0acf53d6b0d8ba2bdde86ab3b627bdac2 +"@repeaterjs/repeater@npm:^3.0.4, @repeaterjs/repeater@npm:^3.0.6": + version: 3.0.6 + resolution: "@repeaterjs/repeater@npm:3.0.6" + checksum: aae878b953162bec77c94b45f2236ddfc01a65308267c7cb30220fa2f8511654a302c0d32aad228c58241d685607d7bb35b6d528b2879355e6636ff08fddb266 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:6.21.0": - version: 6.21.0 - resolution: "@typescript-eslint/typescript-estree@npm:6.21.0" +"@rjsf/core@npm:5.23.1": + version: 5.23.1 + resolution: "@rjsf/core@npm:5.23.1" dependencies: - "@typescript-eslint/types": 6.21.0 - "@typescript-eslint/visitor-keys": 6.21.0 - debug: ^4.3.4 - globby: ^11.1.0 - is-glob: ^4.0.3 - minimatch: 9.0.3 - semver: ^7.5.4 - ts-api-utils: ^1.0.1 - peerDependenciesMeta: - typescript: - optional: true - checksum: dec02dc107c4a541e14fb0c96148f3764b92117c3b635db3a577b5a56fc48df7a556fa853fb82b07c0663b4bf2c484c9f245c28ba3e17e5cb0918ea4cab2ea21 + lodash: ^4.17.21 + lodash-es: ^4.17.21 + markdown-to-jsx: ^7.4.1 + nanoid: ^3.3.7 + prop-types: ^15.8.1 + peerDependencies: + "@rjsf/utils": ^5.23.x + react: ^16.14.0 || >=17 + checksum: acb5b1541b7e6f9911dce33455c297402fc1b2278b0c688073decdea977efae7d4227962eaadeb48fd14c2a8e4bba73a80df975b1c49aa2e2b933c2646ab4904 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.12.2": - version: 8.12.2 - resolution: "@typescript-eslint/typescript-estree@npm:8.12.2" - dependencies: - "@typescript-eslint/types": 8.12.2 - "@typescript-eslint/visitor-keys": 8.12.2 - debug: ^4.3.4 - fast-glob: ^3.3.2 - is-glob: ^4.0.3 - minimatch: ^9.0.4 - semver: ^7.6.0 - ts-api-utils: ^1.3.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 923d297ba891cbaf4f00618db2313123238657b179f56a5d42d02a4e6433c513f73a9dd9aa62cd2c5b9fb2c5912a59319eb0a14ef2403792e15757142722309a +"@rjsf/material-ui@npm:5.23.1": + version: 5.23.1 + resolution: "@rjsf/material-ui@npm:5.23.1" + peerDependencies: + "@material-ui/core": ^4.12.3 + "@material-ui/icons": ^4.11.2 + "@rjsf/core": ^5.23.x + "@rjsf/utils": ^5.23.x + react: ^16.14.0 || >=17 + checksum: ae0d401edd407c534406cce60fda2725fc246286cbedd8a8e4031097d4d318761fd8a4f35339d0f3f857a3dc863b88a75002d6900176052913bb629d0ebde4f9 languageName: node linkType: hard -"@typescript-eslint/utils@npm:6.21.0, @typescript-eslint/utils@npm:^6.0.0": - version: 6.21.0 - resolution: "@typescript-eslint/utils@npm:6.21.0" +"@rjsf/utils@npm:5.23.1": + version: 5.23.1 + resolution: "@rjsf/utils@npm:5.23.1" dependencies: - "@eslint-community/eslint-utils": ^4.4.0 - "@types/json-schema": ^7.0.12 - "@types/semver": ^7.5.0 - "@typescript-eslint/scope-manager": 6.21.0 - "@typescript-eslint/types": 6.21.0 - "@typescript-eslint/typescript-estree": 6.21.0 - semver: ^7.5.4 + json-schema-merge-allof: ^0.8.1 + jsonpointer: ^5.0.1 + lodash: ^4.17.21 + lodash-es: ^4.17.21 + react-is: ^18.2.0 peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - checksum: b129b3a4aebec8468259f4589985cb59ea808afbfdb9c54f02fad11e17d185e2bf72bb332f7c36ec3c09b31f18fc41368678b076323e6e019d06f74ee93f7bf2 + react: ^16.14.0 || >=17 + checksum: 7580419cf07416fe1e608ed171c30b25b3a78cfebba7d97e3120fe2e40f702fd0e61494e6c823281091522b053a39a83ab31ceb97c078cfb39ac636dc2d997c1 languageName: node linkType: hard -"@typescript-eslint/utils@npm:^6.0.0 || ^7.0.0 || ^8.0.0": - version: 8.12.2 - resolution: "@typescript-eslint/utils@npm:8.12.2" +"@rjsf/validator-ajv8@npm:5.23.1": + version: 5.23.1 + resolution: "@rjsf/validator-ajv8@npm:5.23.1" dependencies: - "@eslint-community/eslint-utils": ^4.4.0 - "@typescript-eslint/scope-manager": 8.12.2 - "@typescript-eslint/types": 8.12.2 - "@typescript-eslint/typescript-estree": 8.12.2 + ajv: ^8.12.0 + ajv-formats: ^2.1.1 + lodash: ^4.17.21 + lodash-es: ^4.17.21 peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - checksum: 7ae4ef40d0961642fc31644c47e05f751369b47f3d9f5ea4e6c6eaa09d534efc6a2ea89f12368eed7dc8b32a7378e533f84379f70f2acd85418815f63b249b18 + "@rjsf/utils": ^5.23.x + checksum: 3eca428bd682ea8226558e0c719f263912ad8d6fde2c3ee817c5c106070fd3142f614dc35e15819000f8f00f9c00aa654c2dab5fd3a7318164ad6420d53068f5 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:6.21.0": - version: 6.21.0 - resolution: "@typescript-eslint/visitor-keys@npm:6.21.0" +"@rollup/plugin-commonjs@npm:^26.0.0": + version: 26.0.3 + resolution: "@rollup/plugin-commonjs@npm:26.0.3" dependencies: - "@typescript-eslint/types": 6.21.0 - eslint-visitor-keys: ^3.4.1 - checksum: 67c7e6003d5af042d8703d11538fca9d76899f0119130b373402819ae43f0bc90d18656aa7add25a24427ccf1a0efd0804157ba83b0d4e145f06107d7d1b7433 + "@rollup/pluginutils": ^5.0.1 + commondir: ^1.0.1 + estree-walker: ^2.0.2 + glob: ^10.4.1 + is-reference: 1.2.1 + magic-string: ^0.30.3 + peerDependencies: + rollup: ^2.68.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: 6f3ce53054f9b2edfd04a673c7572b5f8ba6b8416da55a7aef670a9b4630caf46e3e8d74b481d05e1d9f9cb98fa96228e23abad10ab2c95a6cc0b1a0065568e6 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.12.2": - version: 8.12.2 - resolution: "@typescript-eslint/visitor-keys@npm:8.12.2" +"@rollup/plugin-json@npm:^6.0.0": + version: 6.1.0 + resolution: "@rollup/plugin-json@npm:6.1.0" dependencies: - "@typescript-eslint/types": 8.12.2 - eslint-visitor-keys: ^3.4.3 - checksum: 97b919a0f0982e16a46ed568ae195906ec4aed7db358308d2311e9829ceb7f521e4a2017b3bdedad264ee61fdf08d3d12ada7d5622f13b20ac324118fe5b8447 + "@rollup/pluginutils": ^5.1.0 + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: cc018d20c80242a2b8b44fae61a968049cf31bb8406218187cc7cda35747616594e79452dd65722e7da6dd825b392e90d4599d43cd4461a02fefa2865945164e languageName: node linkType: hard -"@ungap/structured-clone@npm:^1.2.0": - version: 1.2.0 - resolution: "@ungap/structured-clone@npm:1.2.0" - checksum: 4f656b7b4672f2ce6e272f2427d8b0824ed11546a601d8d5412b9d7704e83db38a8d9f402ecdf2b9063fc164af842ad0ec4a55819f621ed7e7ea4d1efcc74524 +"@rollup/plugin-node-resolve@npm:^15.0.0": + version: 15.3.1 + resolution: "@rollup/plugin-node-resolve@npm:15.3.1" + dependencies: + "@rollup/pluginutils": ^5.0.1 + "@types/resolve": 1.20.2 + deepmerge: ^4.2.2 + is-module: ^1.0.0 + resolve: ^1.22.1 + peerDependencies: + rollup: ^2.78.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: 2973db4da0e7ed97c35a8dd8878ed6b6781bcb03d72039f064d878f711b0290446348c5268aa1359d064787adc0d5cc35f662d35ea5a4fa9b0b3f9f17c678f41 languageName: node linkType: hard -"@useoptic/json-pointer-helpers@npm:0.55.1": - version: 0.55.1 - resolution: "@useoptic/json-pointer-helpers@npm:0.55.1" +"@rollup/plugin-yaml@npm:^4.0.0": + version: 4.1.2 + resolution: "@rollup/plugin-yaml@npm:4.1.2" dependencies: - jsonpointer: ^5.0.1 - minimatch: 9.0.3 - checksum: 874db1e25c4abecf29faf95c51d39d127ac50ee9f1ad9654babb3a0257a7c321e54312bf66214ac188e3f92f7e9c342fd81565356c0472689c120ea40465b15d + "@rollup/pluginutils": ^5.0.1 + js-yaml: ^4.1.0 + tosource: ^2.0.0-alpha.3 + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: a044bb4568a10712465553ea5f31c13a2b7bc371a7f8382014e6b8048c0a264f5645f83f4d70ce9ab46b75117b94cdc032b597e9315fd2adcd8f30637f44bbea languageName: node linkType: hard -"@useoptic/openapi-utilities@npm:^0.55.0": - version: 0.55.1 - resolution: "@useoptic/openapi-utilities@npm:0.55.1" +"@rollup/pluginutils@npm:^4.2.1": + version: 4.2.1 + resolution: "@rollup/pluginutils@npm:4.2.1" dependencies: - "@useoptic/json-pointer-helpers": 0.55.1 - ajv: ^8.6.0 - ajv-errors: ~3.0.0 - ajv-formats: ~2.1.0 - chalk: ^4.1.2 - fast-deep-equal: ^3.1.3 - is-url: ^1.2.4 - js-yaml: ^4.1.0 - json-stable-stringify: ^1.0.1 - lodash.groupby: ^4.6.0 - lodash.isequal: ^4.5.0 - lodash.omit: ^4.5.0 - node-machine-id: ^1.1.12 - openapi-types: ^12.0.2 - ts-invariant: ^0.9.3 - url-join: ^4.0.1 - yaml-ast-parser: ^0.0.43 - checksum: 53f9ebc645d69cb1ede0263bb3dc2786cfb18f7e5a3da734898c3d9cc2109d581cd6238cec77e6eaae2f478da4ed134abca8255977e68fd06418966a65a9bbe6 + estree-walker: ^2.0.1 + picomatch: ^2.2.2 + checksum: 6bc41f22b1a0f1efec3043899e4d3b6b1497b3dea4d94292d8f83b4cf07a1073ecbaedd562a22d11913ff7659f459677b01b09e9598a98936e746780ecc93a12 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" +"@rollup/pluginutils@npm:^5.0.1, @rollup/pluginutils@npm:^5.0.5, @rollup/pluginutils@npm:^5.1.0": + version: 5.1.4 + resolution: "@rollup/pluginutils@npm:5.1.4" dependencies: - "@webassemblyjs/helper-numbers": 1.11.6 - "@webassemblyjs/helper-wasm-bytecode": 1.11.6 - checksum: 31bcc64147236bd7b1b6d29d1f419c1f5845c785e1e42dc9e3f8ca2e05a029e9393a271b84f3a5bff2a32d35f51ff59e2181a6e5f953fe88576acd6750506202 + "@types/estree": ^1.0.0 + estree-walker: ^2.0.2 + picomatch: ^4.0.2 + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: dc0294580effbf68965ed7939c9e469b8c8847b59842e4691fd10d0a8d0b178600bd912694c409ae33600c9059efce72e96f25917cff983afd57f092a7aeb8d2 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: 29b08758841fd8b299c7152eda36b9eb4921e9c584eb4594437b5cd90ed6b920523606eae7316175f89c20628da14326801090167cc7fbffc77af448ac84b7e2 +"@rollup/rollup-android-arm-eabi@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.28.1" + conditions: os=android & cpu=arm 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: e8563df85161096343008f9161adb138a6e8f3c2cc338d6a36011aa55eabb32f2fd138ffe63bc278d009ada001cc41d263dadd1c0be01be6c2ed99076103689f +"@rollup/rollup-android-arm64@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-android-arm64@npm:4.28.1" + conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@webassemblyjs/helper-buffer@npm:1.12.1": - version: 1.12.1 - resolution: "@webassemblyjs/helper-buffer@npm:1.12.1" - checksum: c3ffb723024130308db608e86e2bdccd4868bbb62dffb0a9a1530606496f79c87f8565bd8e02805ce64912b71f1a70ee5fb00307258b0c082c3abf961d097eca +"@rollup/rollup-darwin-arm64@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-darwin-arm64@npm:4.28.1" + conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@webassemblyjs/helper-numbers@npm:1.11.6": - version: 1.11.6 - resolution: "@webassemblyjs/helper-numbers@npm:1.11.6" - dependencies: - "@webassemblyjs/floating-point-hex-parser": 1.11.6 - "@webassemblyjs/helper-api-error": 1.11.6 - "@xtuc/long": 4.2.2 - checksum: f4b562fa219f84368528339e0f8d273ad44e047a07641ffcaaec6f93e5b76fd86490a009aa91a294584e1436d74b0a01fa9fde45e333a4c657b58168b04da424 +"@rollup/rollup-darwin-x64@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-darwin-x64@npm:4.28.1" + conditions: os=darwin & cpu=x64 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: 3535ef4f1fba38de3475e383b3980f4bbf3de72bbb631c2b6584c7df45be4eccd62c6ff48b5edd3f1bcff275cfd605a37679ec199fc91fd0a7705d7f1e3972dc +"@rollup/rollup-freebsd-arm64@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.28.1" + conditions: os=freebsd & cpu=arm64 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" - dependencies: - "@webassemblyjs/ast": 1.12.1 - "@webassemblyjs/helper-buffer": 1.12.1 - "@webassemblyjs/helper-wasm-bytecode": 1.11.6 - "@webassemblyjs/wasm-gen": 1.12.1 - checksum: c19810cdd2c90ff574139b6d8c0dda254d42d168a9e5b3d353d1bc085f1d7164ccd1b3c05592a45a939c47f7e403dc8d03572bb686642f06a3d02932f6f0bc8f +"@rollup/rollup-freebsd-x64@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-freebsd-x64@npm:4.28.1" + conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@webassemblyjs/ieee754@npm:1.11.6": - version: 1.11.6 - resolution: "@webassemblyjs/ieee754@npm:1.11.6" - dependencies: - "@xtuc/ieee754": ^1.2.0 - checksum: 13574b8e41f6ca39b700e292d7edf102577db5650fe8add7066a320aa4b7a7c09a5056feccac7a74eb68c10dea9546d4461412af351f13f6b24b5f32379b49de +"@rollup/rollup-linux-arm-gnueabihf@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.28.1" + conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard -"@webassemblyjs/leb128@npm:1.11.6": - version: 1.11.6 - resolution: "@webassemblyjs/leb128@npm:1.11.6" - dependencies: - "@xtuc/long": 4.2.2 - checksum: 7ea942dc9777d4b18a5ebfa3a937b30ae9e1d2ce1fee637583ed7f376334dd1d4274f813d2e250056cca803e0952def4b954913f1a3c9068bcd4ab4ee5143bf0 +"@rollup/rollup-linux-arm-musleabihf@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.28.1" + conditions: os=linux & cpu=arm & libc=musl languageName: node linkType: hard -"@webassemblyjs/utf8@npm:1.11.6": - version: 1.11.6 - resolution: "@webassemblyjs/utf8@npm:1.11.6" - checksum: 807fe5b5ce10c390cfdd93e0fb92abda8aebabb5199980681e7c3743ee3306a75729bcd1e56a3903980e96c885ee53ef901fcbaac8efdfa480f9c0dae1d08713 +"@rollup/rollup-linux-arm64-gnu@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.28.1" + conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@webassemblyjs/wasm-edit@npm:^1.12.1": - version: 1.12.1 - resolution: "@webassemblyjs/wasm-edit@npm:1.12.1" - dependencies: - "@webassemblyjs/ast": 1.12.1 - "@webassemblyjs/helper-buffer": 1.12.1 - "@webassemblyjs/helper-wasm-bytecode": 1.11.6 - "@webassemblyjs/helper-wasm-section": 1.12.1 - "@webassemblyjs/wasm-gen": 1.12.1 - "@webassemblyjs/wasm-opt": 1.12.1 - "@webassemblyjs/wasm-parser": 1.12.1 - "@webassemblyjs/wast-printer": 1.12.1 - checksum: ae23642303f030af888d30c4ef37b08dfec7eab6851a9575a616e65d1219f880d9223913a39056dd654e49049d76e97555b285d1f7e56935047abf578cce0692 +"@rollup/rollup-linux-arm64-musl@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.28.1" + conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@webassemblyjs/wasm-gen@npm:1.12.1": - version: 1.12.1 - resolution: "@webassemblyjs/wasm-gen@npm:1.12.1" - dependencies: - "@webassemblyjs/ast": 1.12.1 - "@webassemblyjs/helper-wasm-bytecode": 1.11.6 - "@webassemblyjs/ieee754": 1.11.6 - "@webassemblyjs/leb128": 1.11.6 - "@webassemblyjs/utf8": 1.11.6 - checksum: 5787626bb7f0b033044471ddd00ce0c9fe1ee4584e8b73e232051e3a4c99ba1a102700d75337151c8b6055bae77eefa4548960c610a5e4a504e356bd872138ff +"@rollup/rollup-linux-loongarch64-gnu@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.28.1" + conditions: os=linux & cpu=loong64 & libc=glibc languageName: node linkType: hard -"@webassemblyjs/wasm-opt@npm:1.12.1": - version: 1.12.1 - resolution: "@webassemblyjs/wasm-opt@npm:1.12.1" - dependencies: - "@webassemblyjs/ast": 1.12.1 - "@webassemblyjs/helper-buffer": 1.12.1 - "@webassemblyjs/wasm-gen": 1.12.1 - "@webassemblyjs/wasm-parser": 1.12.1 - checksum: 0e8fa8a0645304a1e18ff40d3db5a2e9233ebaa169b19fcc651d6fc9fe2cac0ce092ddee927318015ae735d9cd9c5d97c0cafb6a51dcd2932ac73587b62df991 +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.28.1" + conditions: os=linux & cpu=ppc64 & libc=glibc 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" - dependencies: - "@webassemblyjs/ast": 1.12.1 - "@webassemblyjs/helper-api-error": 1.11.6 - "@webassemblyjs/helper-wasm-bytecode": 1.11.6 - "@webassemblyjs/ieee754": 1.11.6 - "@webassemblyjs/leb128": 1.11.6 - "@webassemblyjs/utf8": 1.11.6 - checksum: 176015de3551ac068cd4505d837414f258d9ade7442bd71efb1232fa26c9f6d7d4e11a5c816caeed389943f409af7ebff6899289a992d7a70343cb47009d21a8 +"@rollup/rollup-linux-riscv64-gnu@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.28.1" + conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@webassemblyjs/wast-printer@npm:1.12.1": - version: 1.12.1 - resolution: "@webassemblyjs/wast-printer@npm:1.12.1" - dependencies: - "@webassemblyjs/ast": 1.12.1 - "@xtuc/long": 4.2.2 - checksum: 2974b5dda8d769145ba0efd886ea94a601e61fb37114c14f9a9a7606afc23456799af652ac3052f284909bd42edc3665a76bc9b50f95f0794c053a8a1757b713 +"@rollup/rollup-linux-s390x-gnu@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.28.1" + conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@xmldom/xmldom@npm:^0.8.3": - version: 0.8.10 - resolution: "@xmldom/xmldom@npm:0.8.10" - checksum: 4c136aec31fb3b49aaa53b6fcbfe524d02a1dc0d8e17ee35bd3bf35e9ce1344560481cd1efd086ad1a4821541482528672306d5e37cdbd187f33d7fadd3e2cf0 +"@rollup/rollup-linux-x64-gnu@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.28.1" + conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@xtuc/ieee754@npm:^1.2.0": - version: 1.2.0 - resolution: "@xtuc/ieee754@npm:1.2.0" - checksum: ac56d4ca6e17790f1b1677f978c0c6808b1900a5b138885d3da21732f62e30e8f0d9120fcf8f6edfff5100ca902b46f8dd7c1e3f903728634523981e80e2885a +"@rollup/rollup-linux-x64-musl@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.28.1" + conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@xtuc/long@npm:4.2.2": - version: 4.2.2 - resolution: "@xtuc/long@npm:4.2.2" - checksum: 8ed0d477ce3bc9c6fe2bf6a6a2cc316bb9c4127c5a7827bae947fa8ec34c7092395c5a283cc300c05b5fa01cbbfa1f938f410a7bf75db7c7846fea41949989ec +"@rollup/rollup-win32-arm64-msvc@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.28.1" + conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@yarnpkg/lockfile@npm:^1.1.0": - version: 1.1.0 - resolution: "@yarnpkg/lockfile@npm:1.1.0" - checksum: 05b881b4866a3546861fee756e6d3812776ea47fa6eb7098f983d6d0eefa02e12b66c3fff931574120f196286a7ad4879ce02743c8bb2be36c6a576c7852083a +"@rollup/rollup-win32-ia32-msvc@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.28.1" + conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@yarnpkg/parsers@npm:^3.0.0, @yarnpkg/parsers@npm:^3.0.0-rc.4": - version: 3.0.2 - resolution: "@yarnpkg/parsers@npm:3.0.2" - dependencies: - js-yaml: ^3.10.0 - tslib: ^2.4.0 - checksum: fb40a87ae7c9f3fc0b2a6b7d84375d1c69ae8304daf598c089b52966bfb4ac94fbd2dcd87ed041970416e03d34359cb5ff16be5f5601f48d1f936213a8edaf4d +"@rollup/rollup-win32-x64-msvc@npm:4.28.1": + version: 4.28.1 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.28.1" + conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@zxing/text-encoding@npm:0.9.0": - version: 0.9.0 - resolution: "@zxing/text-encoding@npm:0.9.0" - checksum: c23b12aee7639382e4949961304a1294776afaffa40f579e09ffecd0e5e68cf26ef3edd75009de46da8a536e571448755ca68b3e2ea707d53793c0edb2e2c34a +"@rtsao/scc@npm:^1.1.0": + version: 1.1.0 + resolution: "@rtsao/scc@npm:1.1.0" + checksum: 17d04adf404e04c1e61391ed97bca5117d4c2767a76ae3e879390d6dec7b317fcae68afbf9e98badee075d0b64fa60f287729c4942021b4d19cd01db77385c01 languageName: node linkType: hard -"abab@npm:^2.0.6": - version: 2.0.6 - resolution: "abab@npm:2.0.6" - checksum: 6ffc1af4ff315066c62600123990d87551ceb0aafa01e6539da77b0f5987ac7019466780bf480f1787576d4385e3690c81ccc37cfda12819bf510b8ab47e5a3e +"@rushstack/node-core-library@npm:5.10.1": + version: 5.10.1 + resolution: "@rushstack/node-core-library@npm:5.10.1" + dependencies: + ajv: ~8.13.0 + ajv-draft-04: ~1.0.0 + ajv-formats: ~3.0.1 + fs-extra: ~7.0.1 + import-lazy: ~4.0.0 + jju: ~1.4.0 + resolve: ~1.22.1 + semver: ~7.5.4 + peerDependencies: + "@types/node": "*" + peerDependenciesMeta: + "@types/node": + optional: true + checksum: 8c306f4c0abe7744bae4652c086165ae999a730da636befdc83841025cc1ac58a60e0554312a78489fd65239ee927513df1e639d3b54952a3aaabe72cddf4d31 languageName: node linkType: hard -"abbrev@npm:^1.0.0": - version: 1.1.1 - resolution: "abbrev@npm:1.1.1" - checksum: a4a97ec07d7ea112c517036882b2ac22f3109b7b19077dc656316d07d308438aac28e4d9746dc4d84bf6b1e75b4a7b0a5f3cb30592419f128ca9a8cee3bcfa17 +"@rushstack/rig-package@npm:0.5.3": + version: 0.5.3 + resolution: "@rushstack/rig-package@npm:0.5.3" + dependencies: + resolve: ~1.22.1 + strip-json-comments: ~3.1.1 + checksum: bf3eadfc434bff273893efd22b319fe159d0e3b95729cb32ce3ad9f4ab4b6fabe3c4dd7f03ee0ddc7b480f0d989e908349eae6d6dce3500f896728a085af7aab languageName: node linkType: hard -"abbrev@npm:^2.0.0": - version: 2.0.0 - resolution: "abbrev@npm:2.0.0" - checksum: 0e994ad2aa6575f94670d8a2149afe94465de9cedaaaac364e7fb43a40c3691c980ff74899f682f4ca58fa96b4cbd7421a015d3a6defe43a442117d7821a2f36 +"@rushstack/terminal@npm:0.14.4": + version: 0.14.4 + resolution: "@rushstack/terminal@npm:0.14.4" + dependencies: + "@rushstack/node-core-library": 5.10.1 + supports-color: ~8.1.1 + peerDependencies: + "@types/node": "*" + peerDependenciesMeta: + "@types/node": + optional: true + checksum: db0b4db9129e2706f3a19e38fa956f6a8ec23d52b22b601afe22d917859e9e254b03ff273903ddec57b4419ae5beeac7f3f1001d75879d047e28060286f37491 languageName: node linkType: hard -"abort-controller@npm:^3.0.0": - version: 3.0.0 - resolution: "abort-controller@npm:3.0.0" +"@rushstack/ts-command-line@npm:4.23.2": + version: 4.23.2 + resolution: "@rushstack/ts-command-line@npm:4.23.2" dependencies: - event-target-shim: ^5.0.0 - checksum: 170bdba9b47b7e65906a28c8ce4f38a7a369d78e2271706f020849c1bfe0ee2067d4261df8bbb66eb84f79208fd5b710df759d64191db58cfba7ce8ef9c54b75 + "@rushstack/terminal": 0.14.4 + "@types/argparse": 1.0.38 + argparse: ~1.0.9 + string-argv: ~0.3.1 + checksum: 46a65af13d3e1fe381c868e94f19fbf1217d1366a782618b2282d8e3e153ffcbb930311d36528248d49ef6e5c8494f80d5ceeeb900a318f12f50e962915ccc34 languageName: node linkType: hard -"accepts@npm:^1.3.5, accepts@npm:~1.3.4, accepts@npm:~1.3.5, accepts@npm:~1.3.8": - version: 1.3.8 - resolution: "accepts@npm:1.3.8" - dependencies: - mime-types: ~2.1.34 - negotiator: 0.6.3 - checksum: 50c43d32e7b50285ebe84b613ee4a3aa426715a7d131b65b786e2ead0fd76b6b60091b9916d3478a75f11f162628a2139991b6c03ab3f1d9ab7c86075dc8eab4 +"@sagold/json-pointer@npm:^5.1.2": + version: 5.1.2 + resolution: "@sagold/json-pointer@npm:5.1.2" + checksum: e29afd3f7e21196e369b332e99504472742ac5a0c141438071e822d3bd9fa55164a14dd25cc0396f2d50b0f9d9b76161e81c83c2035e16e72731b98130968cda languageName: node linkType: hard -"acorn-globals@npm:^7.0.0": - version: 7.0.1 - resolution: "acorn-globals@npm:7.0.1" +"@sagold/json-query@npm:^6.1.3": + version: 6.2.0 + resolution: "@sagold/json-query@npm:6.2.0" dependencies: - acorn: ^8.1.0 - acorn-walk: ^8.0.2 - checksum: 2a2998a547af6d0db5f0cdb90acaa7c3cbca6709010e02121fb8b8617c0fbd8bab0b869579903fde358ac78454356a14fadcc1a672ecb97b04b1c2ccba955ce8 + "@sagold/json-pointer": ^5.1.2 + ebnf: ^1.9.1 + checksum: 1c29a1bb81fa14573d37f485170083b0f43ecee66d08422f8ff6d3083ab65954cff9178502132d87175f34cf1e432e1ee7985d60417e350a730de907c63ef633 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: 1c0c49b6a244503964ae46ae850baccf306e84caf99bc2010ed6103c69a423987b07b520a6c619f075d215388bd4923eccac995886a54309eda049ab78a4be95 +"@scarf/scarf@npm:=1.4.0": + version: 1.4.0 + resolution: "@scarf/scarf@npm:1.4.0" + checksum: def62aa403f7e63165ccb219efd2c420fc0b7357b0ba43397f635e4aa813ace1cdf3855a93fc559b4619bcc0469ae4767b8cb72af30ea5c0522bf4a2ecb18198 languageName: node linkType: hard -"acorn-jsx@npm:^5.3.2": - version: 5.3.2 - resolution: "acorn-jsx@npm:5.3.2" - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: c3d3b2a89c9a056b205b69530a37b972b404ee46ec8e5b341666f9513d3163e2a4f214a71f4dfc7370f5a9c07472d2fd1c11c91c3f03d093e37637d95da98950 +"@sideway/address@npm:^4.1.5": + version: 4.1.5 + resolution: "@sideway/address@npm:4.1.5" + dependencies: + "@hapi/hoek": ^9.0.0 + checksum: 3e3ea0f00b4765d86509282290368a4a5fd39a7995fdc6de42116ca19a96120858e56c2c995081def06e1c53e1f8bccc7d013f6326602bec9d56b72ee2772b9d 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" - dependencies: - acorn: ^8.11.0 - checksum: 4ff03f42323e7cf90f1683e08606b0f460e1e6ac263d2730e3df91c7665b6f64e696db6ea27ee4bed18c2599569be61f28a8399fa170c611161a348c402ca19c +"@sideway/formula@npm:^3.0.1": + version: 3.0.1 + resolution: "@sideway/formula@npm:3.0.1" + checksum: e4beeebc9dbe2ff4ef0def15cec0165e00d1612e3d7cea0bc9ce5175c3263fc2c818b679bd558957f49400ee7be9d4e5ac90487e1625b4932e15c4aa7919c57a 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.9.0": - version: 8.14.0 - resolution: "acorn@npm:8.14.0" - bin: - acorn: bin/acorn - checksum: 8755074ba55fff94e84e81c72f1013c2d9c78e973c31231c8ae505a5f966859baf654bddd75046bffd73ce816b149298977fff5077a3033dedba0ae2aad152d4 +"@sideway/pinpoint@npm:^2.0.0": + version: 2.0.0 + resolution: "@sideway/pinpoint@npm:2.0.0" + checksum: 0f4491e5897fcf5bf02c46f5c359c56a314e90ba243f42f0c100437935daa2488f20482f0f77186bd6bf43345095a95d8143ecf8b1f4d876a7bc0806aba9c3d2 languageName: node linkType: hard -"address@npm:^1.0.1, address@npm:^1.1.2": - version: 1.2.2 - resolution: "address@npm:1.2.2" - checksum: ace439960c1e3564d8f523aff23a841904bf33a2a7c2e064f7f60a064194075758b9690e65bd9785692a4ef698a998c57eb74d145881a1cecab8ba658ddb1607 +"@sinclair/typebox@npm:^0.27.8": + version: 0.27.8 + resolution: "@sinclair/typebox@npm:0.27.8" + checksum: 00bd7362a3439021aa1ea51b0e0d0a0e8ca1351a3d54c606b115fdcc49b51b16db6e5f43b4fe7a28c38688523e22a94d49dd31168868b655f0d4d50f032d07a1 languageName: node linkType: hard -"adm-zip@npm:^0.5.10": - version: 0.5.16 - resolution: "adm-zip@npm:0.5.16" - checksum: 1f4104f3462b99e1b34d78ccfbdcf47e533a9cc7f894cedec6cd67b06cc6ad0b3a45241d66df5471050c7abbdd67e5707e3959fc76d75176ed6101a5b2a580d5 +"@sinonjs/commons@npm:^3.0.0": + version: 3.0.1 + resolution: "@sinonjs/commons@npm:3.0.1" + dependencies: + type-detect: 4.0.8 + checksum: a7c3e7cc612352f4004873747d9d8b2d4d90b13a6d483f685598c945a70e734e255f1ca5dc49702515533c403b32725defff148177453b3f3915bcb60e9d4601 languageName: node linkType: hard -"agent-base@npm:6, agent-base@npm:^6.0.2": - version: 6.0.2 - resolution: "agent-base@npm:6.0.2" +"@sinonjs/fake-timers@npm:^10.0.2": + version: 10.3.0 + resolution: "@sinonjs/fake-timers@npm:10.3.0" dependencies: - debug: 4 - checksum: f52b6872cc96fd5f622071b71ef200e01c7c4c454ee68bc9accca90c98cfb39f2810e3e9aa330435835eedc8c23f4f8a15267f67c6e245d2b33757575bdac49d + "@sinonjs/commons": ^3.0.0 + checksum: 614d30cb4d5201550c940945d44c9e0b6d64a888ff2cd5b357f95ad6721070d6b8839cd10e15b76bf5e14af0bcc1d8f9ec00d49a46318f1f669a4bec1d7f3148 languageName: node linkType: hard -"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.1": - version: 7.1.1 - resolution: "agent-base@npm:7.1.1" +"@smithy/abort-controller@npm:^3.1.9": + version: 3.1.9 + resolution: "@smithy/abort-controller@npm:3.1.9" dependencies: - debug: ^4.3.4 - checksum: 51c158769c5c051482f9ca2e6e1ec085ac72b5a418a9b31b4e82fe6c0a6699adb94c1c42d246699a587b3335215037091c79e0de512c516f73b6ea844202f037 + "@smithy/types": ^3.7.2 + tslib: ^2.6.2 + checksum: 0d15ce236a14cc5193b76e6990a224957926404dd683c23000b9370a230d9331b36a4cb805521b0d713aec80b2ea78b22e0c44b03d52aa77c8d998915aafd2ac languageName: node linkType: hard -"agentkeepalive@npm:^4.2.1": - version: 4.5.0 - resolution: "agentkeepalive@npm:4.5.0" +"@smithy/chunked-blob-reader-native@npm:^3.0.1": + version: 3.0.1 + resolution: "@smithy/chunked-blob-reader-native@npm:3.0.1" dependencies: - humanize-ms: ^1.2.1 - checksum: 13278cd5b125e51eddd5079f04d6fe0914ac1b8b91c1f3db2c1822f99ac1a7457869068997784342fe455d59daaff22e14fb7b8c3da4e741896e7e31faf92481 + "@smithy/util-base64": ^3.0.0 + tslib: ^2.6.2 + checksum: b133aebc7662923f88eb859acf3dee95d54fb99effef3ed34384e137d479a8e88549f7888d037919f2821480689ea57892c9d7eeb730fa622ee9f55e3bb9a684 languageName: node linkType: hard -"aggregate-error@npm:^3.0.0": - version: 3.1.0 - resolution: "aggregate-error@npm:3.1.0" +"@smithy/chunked-blob-reader@npm:^4.0.0": + version: 4.0.0 + resolution: "@smithy/chunked-blob-reader@npm:4.0.0" dependencies: - clean-stack: ^2.0.0 - indent-string: ^4.0.0 - checksum: 1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79 + tslib: ^2.6.2 + checksum: 45107be7b56efc598e445bf73e45694be10b933dcd5c0c38910311c463eff473e1eb82452b11ed6772986b518565ee8f3bec68cdfefe7c4a9a0c4b9968b582d8 languageName: node linkType: hard -"ajv-draft-04@npm:^1.0.0, ajv-draft-04@npm:~1.0.0": - version: 1.0.0 - resolution: "ajv-draft-04@npm:1.0.0" - peerDependencies: - ajv: ^8.5.0 - peerDependenciesMeta: - ajv: - optional: true - checksum: 3f11fa0e7f7359bef6608657f02ab78e9cc62b1fb7bdd860db0d00351b3863a1189c1a23b72466d2d82726cab4eb20725c76f5e7c134a89865e2bfd0e6828137 +"@smithy/config-resolver@npm:^3.0.13": + version: 3.0.13 + resolution: "@smithy/config-resolver@npm:3.0.13" + dependencies: + "@smithy/node-config-provider": ^3.1.12 + "@smithy/types": ^3.7.2 + "@smithy/util-config-provider": ^3.0.0 + "@smithy/util-middleware": ^3.0.11 + tslib: ^2.6.2 + checksum: d31b1b01733f0e9442817651c8a5f1a5feb04e0656ece431c39c8bd96d782636f7e0b3f729c05d25ab4b0155473c17116b6fe46216a6eee9eeceab4d7477393e languageName: node linkType: hard -"ajv-errors@npm:~3.0.0": - version: 3.0.0 - resolution: "ajv-errors@npm:3.0.0" - peerDependencies: - ajv: ^8.0.1 - checksum: f3d1610a104fa776c2f90534acbe2113842a40d5ee446062da9e956ae6de6959afc997da1e3948c47316faa225255fc2d9d97aacd0803f47998fb38156d3d03c +"@smithy/core@npm:^2.5.5": + version: 2.5.5 + resolution: "@smithy/core@npm:2.5.5" + dependencies: + "@smithy/middleware-serde": ^3.0.11 + "@smithy/protocol-http": ^4.1.8 + "@smithy/types": ^3.7.2 + "@smithy/util-body-length-browser": ^3.0.0 + "@smithy/util-middleware": ^3.0.11 + "@smithy/util-stream": ^3.3.2 + "@smithy/util-utf8": ^3.0.0 + tslib: ^2.6.2 + checksum: 32df1fdaca5f8d24abd68e13453d1dcfb1040d955bf6571ae2e5fa84418d16412b953429cb6507227045c8587b15709e1e0a44878d8c24e6064adc4fd1221db9 languageName: node linkType: hard -"ajv-formats@npm:^2.1.1, ajv-formats@npm:~2.1.0": - version: 2.1.1 - resolution: "ajv-formats@npm:2.1.1" +"@smithy/credential-provider-imds@npm:^3.2.8": + version: 3.2.8 + resolution: "@smithy/credential-provider-imds@npm:3.2.8" dependencies: - ajv: ^8.0.0 - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - checksum: 4a287d937f1ebaad4683249a4c40c0fa3beed30d9ddc0adba04859026a622da0d317851316ea64b3680dc60f5c3c708105ddd5d5db8fe595d9d0207fd19f90b7 + "@smithy/node-config-provider": ^3.1.12 + "@smithy/property-provider": ^3.1.11 + "@smithy/types": ^3.7.2 + "@smithy/url-parser": ^3.0.11 + tslib: ^2.6.2 + checksum: b6292a5525b3c6bc0d502688e4f02720b7085b51a069fda1cb64d6b4c50a1eb945310e467a4c0a050a3b5477cec26f8f95ae0a8e9b9052477a357b4fbf04ac63 languageName: node linkType: hard -"ajv-formats@npm:~3.0.1": - version: 3.0.1 - resolution: "ajv-formats@npm:3.0.1" +"@smithy/eventstream-codec@npm:^3.1.10": + version: 3.1.10 + resolution: "@smithy/eventstream-codec@npm:3.1.10" dependencies: - ajv: ^8.0.0 - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - checksum: f4e1fe232d67fcafc02eafe373a7a9962351e0439dd0736647ca75c93c3da23b430b6502c255ab4315410ae330d4f3013ac9fe226c40b2524ca93a58e786d086 + "@aws-crypto/crc32": 5.2.0 + "@smithy/types": ^3.7.2 + "@smithy/util-hex-encoding": ^3.0.0 + tslib: ^2.6.2 + checksum: 5a8f951660c8777d9f1e0487e4410b3a96429a48733fbd105ce611aceff43d14a50465f3c1fd2122793b39fcc2752c02166e65ac5cb0852f7194db8f0f9905a5 languageName: node linkType: hard -"ajv-keywords@npm:^3.4.1, ajv-keywords@npm:^3.5.2": - version: 3.5.2 - resolution: "ajv-keywords@npm:3.5.2" - peerDependencies: - ajv: ^6.9.1 - checksum: 7dc5e5931677a680589050f79dcbe1fefbb8fea38a955af03724229139175b433c63c68f7ae5f86cf8f65d55eb7c25f75a046723e2e58296707617ca690feae9 +"@smithy/eventstream-serde-browser@npm:^3.0.14": + version: 3.0.14 + resolution: "@smithy/eventstream-serde-browser@npm:3.0.14" + dependencies: + "@smithy/eventstream-serde-universal": ^3.0.13 + "@smithy/types": ^3.7.2 + tslib: ^2.6.2 + checksum: 11f15701042e985a479613a9f5ac7d1d8f06c72ee7d7010a67195bdc2fadacf6d7be97125e07c8c5b386ed189a8d18ef1aea4cd605750ce2a1a3fe8b98c2243d languageName: node linkType: hard -"ajv-keywords@npm:^5.1.0": - version: 5.1.0 - resolution: "ajv-keywords@npm:5.1.0" +"@smithy/eventstream-serde-config-resolver@npm:^3.0.11": + version: 3.0.11 + resolution: "@smithy/eventstream-serde-config-resolver@npm:3.0.11" dependencies: - fast-deep-equal: ^3.1.3 - peerDependencies: - ajv: ^8.8.2 - checksum: c35193940b853119242c6757787f09ecf89a2c19bcd36d03ed1a615e710d19d450cb448bfda407b939aba54b002368c8bff30529cc50a0536a8e10bcce300421 + "@smithy/types": ^3.7.2 + tslib: ^2.6.2 + checksum: e4c7004e87c95f82a54495c7f7ef2471e16c3a93e6a1773064996453b22028b4963a32700b299994ad669aff4c8240a7d0a81f9b89b7633af6900b1fcab1bd27 languageName: node linkType: hard -"ajv@npm:^6.12.2, ajv@npm:^6.12.3, ajv@npm:^6.12.4, ajv@npm:^6.12.5": - version: 6.12.6 - resolution: "ajv@npm:6.12.6" +"@smithy/eventstream-serde-node@npm:^3.0.13": + version: 3.0.13 + resolution: "@smithy/eventstream-serde-node@npm:3.0.13" dependencies: - fast-deep-equal: ^3.1.1 - fast-json-stable-stringify: ^2.0.0 - json-schema-traverse: ^0.4.1 - uri-js: ^4.2.2 - checksum: 874972efe5c4202ab0a68379481fbd3d1b5d0a7bd6d3cc21d40d3536ebff3352a2a1fabb632d4fd2cc7fe4cbdcd5ed6782084c9bbf7f32a1536d18f9da5007d4 + "@smithy/eventstream-serde-universal": ^3.0.13 + "@smithy/types": ^3.7.2 + tslib: ^2.6.2 + checksum: 8d03ce838c14647da90fcc778c41c066f2df5dbe45119884cca5d310bc2a07b741affceaf6c665d0b7db65b17ad8f96232f10db95c4d5afde38df2ef70b0c0e3 languageName: node linkType: hard -"ajv@npm:^8.0.0, ajv@npm:^8.10.0, ajv@npm:^8.17.1, ajv@npm:^8.6.0, ajv@npm:^8.6.3, ajv@npm:^8.9.0": - version: 8.17.1 - resolution: "ajv@npm:8.17.1" +"@smithy/eventstream-serde-universal@npm:^3.0.13": + version: 3.0.13 + resolution: "@smithy/eventstream-serde-universal@npm:3.0.13" dependencies: - fast-deep-equal: ^3.1.3 - fast-uri: ^3.0.1 - json-schema-traverse: ^1.0.0 - require-from-string: ^2.0.2 - checksum: 1797bf242cfffbaf3b870d13565bd1716b73f214bb7ada9a497063aada210200da36e3ed40237285f3255acc4feeae91b1fb183625331bad27da95973f7253d9 + "@smithy/eventstream-codec": ^3.1.10 + "@smithy/types": ^3.7.2 + tslib: ^2.6.2 + checksum: 232d5a9e9b0c494f241ffce3a3afdd790be342f666908ef4bc24f6320540f01ddb6fbc47a2f2651a054317a4e5992deb75f05505e17802b5bdd6d4550daf3554 languageName: node linkType: hard -"ajv@npm:~8.12.0": - version: 8.12.0 - resolution: "ajv@npm:8.12.0" +"@smithy/fetch-http-handler@npm:^4.1.2": + version: 4.1.2 + resolution: "@smithy/fetch-http-handler@npm:4.1.2" dependencies: - fast-deep-equal: ^3.1.1 - json-schema-traverse: ^1.0.0 - require-from-string: ^2.0.2 - uri-js: ^4.2.2 - checksum: 4dc13714e316e67537c8b31bc063f99a1d9d9a497eb4bbd55191ac0dcd5e4985bbb71570352ad6f1e76684fb6d790928f96ba3b2d4fd6e10024be9612fe3f001 + "@smithy/protocol-http": ^4.1.8 + "@smithy/querystring-builder": ^3.0.11 + "@smithy/types": ^3.7.2 + "@smithy/util-base64": ^3.0.0 + tslib: ^2.6.2 + checksum: 30dd0fa9bacec24c97e536fe4423541c9aafe6231049e2bc2693bb6cbb0aaaadc26c3ab0424e53cc08cce3770816e378570cd8f9b47e7a3375cdc82fdf667a9a languageName: node linkType: hard -"ajv@npm:~8.13.0": - version: 8.13.0 - resolution: "ajv@npm:8.13.0" +"@smithy/hash-blob-browser@npm:^3.1.10": + version: 3.1.10 + resolution: "@smithy/hash-blob-browser@npm:3.1.10" dependencies: - fast-deep-equal: ^3.1.3 - json-schema-traverse: ^1.0.0 - require-from-string: ^2.0.2 - uri-js: ^4.4.1 - checksum: 6de82d0b2073e645ca3300561356ddda0234f39b35d2125a8700b650509b296f41c00ab69f53178bbe25ad688bd6ac3747ab44101f2f4bd245952e8fd6ccc3c1 + "@smithy/chunked-blob-reader": ^4.0.0 + "@smithy/chunked-blob-reader-native": ^3.0.1 + "@smithy/types": ^3.7.2 + tslib: ^2.6.2 + checksum: d892f63de4ac69b6b5939e97a5f27c3b494c99dd32734cb85beeb1b49e84104562599a641e83ce7685550191e6c3da14b227c7825fa9d53ae69473e981ead918 languageName: node linkType: hard -"ansi-colors@npm:^4.1.1, ansi-colors@npm:^4.1.3": - version: 4.1.3 - resolution: "ansi-colors@npm:4.1.3" - checksum: a9c2ec842038a1fabc7db9ece7d3177e2fe1c5dc6f0c51ecfbf5f39911427b89c00b5dc6b8bd95f82a26e9b16aaae2e83d45f060e98070ce4d1333038edceb0e +"@smithy/hash-node@npm:^3.0.11": + version: 3.0.11 + resolution: "@smithy/hash-node@npm:3.0.11" + dependencies: + "@smithy/types": ^3.7.2 + "@smithy/util-buffer-from": ^3.0.0 + "@smithy/util-utf8": ^3.0.0 + tslib: ^2.6.2 + checksum: 14ed6e0b2704365dabb7437d7a19125f646b2fae42192738dc4286b6fd26fac1d906e1e800737b93fbc13ef6d090fdec82af04f9e49269e2e90d7c1190ebd010 languageName: node linkType: hard -"ansi-escapes@npm:^4.2.1": - version: 4.3.2 - resolution: "ansi-escapes@npm:4.3.2" +"@smithy/hash-stream-node@npm:^3.1.10": + version: 3.1.10 + resolution: "@smithy/hash-stream-node@npm:3.1.10" dependencies: - type-fest: ^0.21.3 - checksum: 93111c42189c0a6bed9cdb4d7f2829548e943827ee8479c74d6e0b22ee127b2a21d3f8b5ca57723b8ef78ce011fbfc2784350eb2bde3ccfccf2f575fa8489815 + "@smithy/types": ^3.7.2 + "@smithy/util-utf8": ^3.0.0 + tslib: ^2.6.2 + checksum: 4108b7a3b6d0ed4d84c8032f6b4b775728ce8f07cb65b8918e29be92ed9f2beb97c7a9c4f5d533f02814f492ff557c895d639635ae3a953b5af10f3502c148b0 languageName: node linkType: hard -"ansi-html-community@npm:^0.0.8": - version: 0.0.8 - resolution: "ansi-html-community@npm:0.0.8" - bin: - ansi-html: bin/ansi-html - checksum: 04c568e8348a636963f915e48eaa3e01218322e1169acafdd79c384f22e5558c003f79bbc480c1563865497482817c7eed025f0653ebc17642fededa5cb42089 +"@smithy/invalid-dependency@npm:^3.0.11": + version: 3.0.11 + resolution: "@smithy/invalid-dependency@npm:3.0.11" + dependencies: + "@smithy/types": ^3.7.2 + tslib: ^2.6.2 + checksum: 3f4d6114fb0ace339b97ce1e17df126a2a0d058a7ea32753ef16ab82da4f481b1a4a3b2655027e983a5569167ccb48f0471bf5ca4ab3e8f5f6193e52c07caeb8 languageName: node linkType: hard -"ansi-html@npm:^0.0.9": - version: 0.0.9 - resolution: "ansi-html@npm:0.0.9" - bin: - ansi-html: bin/ansi-html - checksum: a03754d6f66bae33938ed8bb3dd98174b7f4895ebe45226185036ed4a1388a7aaf2f2b9581608f0626432ba7add92cfc590aa6475a78bbb90d9d1e1d1af8cbe6 +"@smithy/is-array-buffer@npm:^2.2.0": + version: 2.2.0 + resolution: "@smithy/is-array-buffer@npm:2.2.0" + dependencies: + tslib: ^2.6.2 + checksum: cd12c2e27884fec89ca8966d33c9dc34d3234efe89b33a9b309c61ebcde463e6f15f6a02d31d4fddbfd6e5904743524ca5b95021b517b98fe10957c2da0cd5fc languageName: node linkType: hard -"ansi-regex@npm:^4.1.0": - version: 4.1.1 - resolution: "ansi-regex@npm:4.1.1" - checksum: b1a6ee44cb6ecdabaa770b2ed500542714d4395d71c7e5c25baa631f680fb2ad322eb9ba697548d498a6fd366949fc8b5bfcf48d49a32803611f648005b01888 +"@smithy/is-array-buffer@npm:^3.0.0": + version: 3.0.0 + resolution: "@smithy/is-array-buffer@npm:3.0.0" + dependencies: + tslib: ^2.6.2 + checksum: ce7440fcb1ce3c46722cff11c33e2f62a9df86d74fa2054a8e6b540302a91211cf6e4e3b1b7aac7030c6c8909158c1b6867c394201fa8afc6b631979956610e5 languageName: node linkType: hard -"ansi-regex@npm:^5.0.1": - version: 5.0.1 - resolution: "ansi-regex@npm:5.0.1" - checksum: 2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b +"@smithy/md5-js@npm:^3.0.11": + version: 3.0.11 + resolution: "@smithy/md5-js@npm:3.0.11" + dependencies: + "@smithy/types": ^3.7.2 + "@smithy/util-utf8": ^3.0.0 + tslib: ^2.6.2 + checksum: 1e2ff4315d158c38fa1666d002c81d63ba58d30b6e3f3bcde937dd613197305d22da1fd5c1d1e42c3a76ee95507fa8b470164086ebe120d0091852bc99c4d666 languageName: node linkType: hard -"ansi-regex@npm:^6.0.1": - version: 6.1.0 - resolution: "ansi-regex@npm:6.1.0" - checksum: 495834a53b0856c02acd40446f7130cb0f8284f4a39afdab20d5dc42b2e198b1196119fe887beed8f9055c4ff2055e3b2f6d4641d0be018cdfb64fedf6fc1aac +"@smithy/middleware-content-length@npm:^3.0.13": + version: 3.0.13 + resolution: "@smithy/middleware-content-length@npm:3.0.13" + dependencies: + "@smithy/protocol-http": ^4.1.8 + "@smithy/types": ^3.7.2 + tslib: ^2.6.2 + checksum: 06803cbe557ad64c806c89aa10e9e2bc07cd51537e2bb00a4eb0ddc21a89e28fae5c9df2ef60103670ab89a70ab6f241830b258cad07c49b7091f5bc0981c18d languageName: node linkType: hard -"ansi-styles@npm:^3.2.1": - version: 3.2.1 - resolution: "ansi-styles@npm:3.2.1" - dependencies: - color-convert: ^1.9.0 - checksum: d85ade01c10e5dd77b6c89f34ed7531da5830d2cb5882c645f330079975b716438cd7ebb81d0d6e6b4f9c577f19ae41ab55f07f19786b02f9dfd9e0377395665 +"@smithy/middleware-endpoint@npm:^3.2.6": + version: 3.2.6 + resolution: "@smithy/middleware-endpoint@npm:3.2.6" + dependencies: + "@smithy/core": ^2.5.5 + "@smithy/middleware-serde": ^3.0.11 + "@smithy/node-config-provider": ^3.1.12 + "@smithy/shared-ini-file-loader": ^3.1.12 + "@smithy/types": ^3.7.2 + "@smithy/url-parser": ^3.0.11 + "@smithy/util-middleware": ^3.0.11 + tslib: ^2.6.2 + checksum: f2fd18bfbd9c229f61043f1c1a930a2a9f8f04a65b9c70f7dc7e65342e55e11ff6b034a23e595a6e0f7f8c897f97f79a3bb922d152a891e0e9d515df34c6fc0a languageName: node linkType: hard -"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": - version: 4.3.0 - resolution: "ansi-styles@npm:4.3.0" +"@smithy/middleware-retry@npm:^3.0.31": + version: 3.0.31 + resolution: "@smithy/middleware-retry@npm:3.0.31" dependencies: - color-convert: ^2.0.1 - checksum: 513b44c3b2105dd14cc42a19271e80f386466c4be574bccf60b627432f9198571ebf4ab1e4c3ba17347658f4ee1711c163d574248c0c1cdc2d5917a0ad582ec4 + "@smithy/node-config-provider": ^3.1.12 + "@smithy/protocol-http": ^4.1.8 + "@smithy/service-error-classification": ^3.0.11 + "@smithy/smithy-client": ^3.5.1 + "@smithy/types": ^3.7.2 + "@smithy/util-middleware": ^3.0.11 + "@smithy/util-retry": ^3.0.11 + tslib: ^2.6.2 + uuid: ^9.0.1 + checksum: 55b017f7eb29a2a6057385965d095f038af412ef65a2710a4165f7521da3283ba1cd15ff1b6d1ab2c4fff2f4999c5d50ed7f4e198f75220ee5fce5cfa4389454 languageName: node linkType: hard -"ansi-styles@npm:^5.0.0": - version: 5.2.0 - resolution: "ansi-styles@npm:5.2.0" - checksum: d7f4e97ce0623aea6bc0d90dcd28881ee04cba06c570b97fd3391bd7a268eedfd9d5e2dd4fdcbdd82b8105df5faf6f24aaedc08eaf3da898e702db5948f63469 +"@smithy/middleware-serde@npm:^3.0.11": + version: 3.0.11 + resolution: "@smithy/middleware-serde@npm:3.0.11" + dependencies: + "@smithy/types": ^3.7.2 + tslib: ^2.6.2 + checksum: dbc180567a7bab74a645853abdc911fc03d1adedea0dcdfbf9259fef274fdc0a9ad3548479537d58176e1eeadcab7d30582a920731bd201dfc29f067265718ec languageName: node linkType: hard -"ansi-styles@npm:^6.1.0": - version: 6.2.1 - resolution: "ansi-styles@npm:6.2.1" - checksum: ef940f2f0ced1a6347398da88a91da7930c33ecac3c77b72c5905f8b8fe402c52e6fde304ff5347f616e27a742da3f1dc76de98f6866c69251ad0b07a66776d9 +"@smithy/middleware-stack@npm:^3.0.11": + version: 3.0.11 + resolution: "@smithy/middleware-stack@npm:3.0.11" + dependencies: + "@smithy/types": ^3.7.2 + tslib: ^2.6.2 + checksum: 65fa1a3815dc091dccfde1e24de74768ca55fabb18eba3868acd295a1566f8345538238b3f3db242d03ec989ac785933176291340feae755815d8c43f5135810 languageName: node linkType: hard -"any-promise@npm:^1.0.0": - version: 1.3.0 - resolution: "any-promise@npm:1.3.0" - checksum: 0ee8a9bdbe882c90464d75d1f55cf027f5458650c4bd1f0467e65aec38ccccda07ca5844969ee77ed46d04e7dded3eaceb027e8d32f385688523fe305fa7e1de - languageName: node - linkType: hard - -"anymatch@npm:^3.0.3, anymatch@npm:~3.1.2": - version: 3.1.3 - resolution: "anymatch@npm:3.1.3" +"@smithy/node-config-provider@npm:^3.1.12": + version: 3.1.12 + resolution: "@smithy/node-config-provider@npm:3.1.12" dependencies: - normalize-path: ^3.0.0 - picomatch: ^2.0.4 - checksum: 3e044fd6d1d26545f235a9fe4d7a534e2029d8e59fa7fd9f2a6eb21230f6b5380ea1eaf55136e60cbf8e613544b3b766e7a6fa2102e2a3a117505466e3025dc2 + "@smithy/property-provider": ^3.1.11 + "@smithy/shared-ini-file-loader": ^3.1.12 + "@smithy/types": ^3.7.2 + tslib: ^2.6.2 + checksum: 42b61e2286387046f55130f2e0c11048c41310789441fee708bc498bb2a3b44c75d4b4e1a6fcca5c3ac593b73d1b73c082e556f0d4eab3966561eae52513db2e languageName: node linkType: hard -"aproba@npm:^1.0.3 || ^2.0.0": - version: 2.0.0 - resolution: "aproba@npm:2.0.0" - checksum: 5615cadcfb45289eea63f8afd064ab656006361020e1735112e346593856f87435e02d8dcc7ff0d11928bc7d425f27bc7c2a84f6c0b35ab0ff659c814c138a24 +"@smithy/node-http-handler@npm:^3.0.0, @smithy/node-http-handler@npm:^3.3.2": + version: 3.3.2 + resolution: "@smithy/node-http-handler@npm:3.3.2" + dependencies: + "@smithy/abort-controller": ^3.1.9 + "@smithy/protocol-http": ^4.1.8 + "@smithy/querystring-builder": ^3.0.11 + "@smithy/types": ^3.7.2 + tslib: ^2.6.2 + checksum: f4d70ca9ba6d62ae9c3257c069a42ff9c0d3bce28625e7ebab34bc3196eb5a2a1cb2c20d3409b8d1a9c24f0a5d0b3d0809904ceea8d87c4fb991474fd0d9fd31 languageName: node linkType: hard -"archiver-utils@npm:^5.0.0, archiver-utils@npm:^5.0.2": - version: 5.0.2 - resolution: "archiver-utils@npm:5.0.2" +"@smithy/property-provider@npm:^3.1.11": + version: 3.1.11 + resolution: "@smithy/property-provider@npm:3.1.11" dependencies: - glob: ^10.0.0 - graceful-fs: ^4.2.0 - is-stream: ^2.0.1 - lazystream: ^1.0.0 - lodash: ^4.17.15 - normalize-path: ^3.0.0 - readable-stream: ^4.0.0 - checksum: 7dc4f3001dc373bd0fa7671ebf08edf6f815cbc539c78b5478a2eaa67e52e3fc0e92f562cdef2ba016c4dcb5468d3d069eb89535c6844da4a5bb0baf08ad5720 + "@smithy/types": ^3.7.2 + tslib: ^2.6.2 + checksum: c6f4d4bb241381254083df95c36e8632fb7e54437ab5ad56cb6b1bf6c6b81072f396fa958a700037b1ab3efb6c25fb1f7aeb92560366f35fa14055c34077ea30 languageName: node linkType: hard -"archiver@npm:^7.0.0, archiver@npm:^7.0.1": - version: 7.0.1 - resolution: "archiver@npm:7.0.1" +"@smithy/protocol-http@npm:^4.1.8": + version: 4.1.8 + resolution: "@smithy/protocol-http@npm:4.1.8" dependencies: - archiver-utils: ^5.0.2 - async: ^3.2.4 - buffer-crc32: ^1.0.0 - readable-stream: ^4.0.0 - readdir-glob: ^1.1.2 - tar-stream: ^3.0.0 - zip-stream: ^6.0.1 - checksum: f93bcc00f919e0bbb6bf38fddf111d6e4d1ed34721b73cc073edd37278303a7a9f67aa4abd6fd2beb80f6c88af77f2eb4f60276343f67605e3aea404e5ad93ea + "@smithy/types": ^3.7.2 + tslib: ^2.6.2 + checksum: 43cdc163137f09dc5f2419ab75c9f31ca7c1da9210023c027be5fa29455543bdc10ab886449dc1399d7ea21ab4b83ba828714f31d06c1638999fa17d5bba0626 languageName: node linkType: hard -"are-we-there-yet@npm:^3.0.0": - version: 3.0.1 - resolution: "are-we-there-yet@npm:3.0.1" +"@smithy/querystring-builder@npm:^3.0.11": + version: 3.0.11 + resolution: "@smithy/querystring-builder@npm:3.0.11" dependencies: - delegates: ^1.0.0 - readable-stream: ^3.6.0 - checksum: 52590c24860fa7173bedeb69a4c05fb573473e860197f618b9a28432ee4379049336727ae3a1f9c4cb083114601c1140cee578376164d0e651217a9843f9fe83 + "@smithy/types": ^3.7.2 + "@smithy/util-uri-escape": ^3.0.0 + tslib: ^2.6.2 + checksum: 168f3104b2db0b704f211e18a318dffdbaaa9675b62ca44c892267c7825295e10041c1c82086cdcd1a7a05f1db95c0a1c74540d8b6d9c9504b13bb89387186fd languageName: node linkType: hard -"arg@npm:^4.1.0": - version: 4.1.3 - resolution: "arg@npm:4.1.3" - checksum: 544af8dd3f60546d3e4aff084d451b96961d2267d668670199692f8d054f0415d86fc5497d0e641e91546f0aa920e7c29e5250e99fc89f5552a34b5d93b77f43 +"@smithy/querystring-parser@npm:^3.0.11": + version: 3.0.11 + resolution: "@smithy/querystring-parser@npm:3.0.11" + dependencies: + "@smithy/types": ^3.7.2 + tslib: ^2.6.2 + checksum: 2aa2ce6a8da9c7c4a89b900fd83b84915f7e17a668376a4e1257eca10d4d6eeedef529be8ab9e94415c58cb4b33f3e6bd82bb6131d6b0bd12bb1a942b54acb6e languageName: node linkType: hard -"argparse@npm:^1.0.7, argparse@npm:~1.0.9": - version: 1.0.10 - resolution: "argparse@npm:1.0.10" +"@smithy/service-error-classification@npm:^3.0.11": + version: 3.0.11 + resolution: "@smithy/service-error-classification@npm:3.0.11" dependencies: - sprintf-js: ~1.0.2 - checksum: 7ca6e45583a28de7258e39e13d81e925cfa25d7d4aacbf806a382d3c02fcb13403a07fb8aeef949f10a7cfe4a62da0e2e807b348a5980554cc28ee573ef95945 + "@smithy/types": ^3.7.2 + checksum: 09e2694bbc683f8da400a898b22710fd301a5aa120b3adbf5b04f785446615841402c76fd4cfb19b087ba6258bd358c58549d629d585054a610acee123100a9c languageName: node linkType: hard -"argparse@npm:^2.0.1": - version: 2.0.1 - resolution: "argparse@npm:2.0.1" - checksum: 83644b56493e89a254bae05702abf3a1101b4fa4d0ca31df1c9985275a5a5bd47b3c27b7fa0b71098d41114d8ca000e6ed90cad764b306f8a503665e4d517ced +"@smithy/shared-ini-file-loader@npm:^3.1.12": + version: 3.1.12 + resolution: "@smithy/shared-ini-file-loader@npm:3.1.12" + dependencies: + "@smithy/types": ^3.7.2 + tslib: ^2.6.2 + checksum: f726604f0f176d8f05eb0adc0878474a04ebefc2796ad72ca7c40d83f8bac65ef1239c9b1f8faa25838787a9aa3f83f28c50f150db76000b900bf220934d4bc7 languageName: node linkType: hard -"aria-query@npm:^5.3.2": - version: 5.3.2 - resolution: "aria-query@npm:5.3.2" - checksum: d971175c85c10df0f6d14adfe6f1292409196114ab3c62f238e208b53103686f46cc70695a4f775b73bc65f6a09b6a092fd963c4f3a5a7d690c8fc5094925717 +"@smithy/signature-v4@npm:^4.2.4": + version: 4.2.4 + resolution: "@smithy/signature-v4@npm:4.2.4" + dependencies: + "@smithy/is-array-buffer": ^3.0.0 + "@smithy/protocol-http": ^4.1.8 + "@smithy/types": ^3.7.2 + "@smithy/util-hex-encoding": ^3.0.0 + "@smithy/util-middleware": ^3.0.11 + "@smithy/util-uri-escape": ^3.0.0 + "@smithy/util-utf8": ^3.0.0 + tslib: ^2.6.2 + checksum: 72b093212be97d3d6b19f7e5dc1185a31921f64417a3627dac6fe336a64f7413eadbc7afd4f6b7fd866eb249261216a63d526b46c15b3c542a3163d1e3ca62aa languageName: node linkType: hard -"array-buffer-byte-length@npm:^1.0.1": - version: 1.0.1 - resolution: "array-buffer-byte-length@npm:1.0.1" +"@smithy/smithy-client@npm:^3.5.1": + version: 3.5.1 + resolution: "@smithy/smithy-client@npm:3.5.1" dependencies: - call-bind: ^1.0.5 - is-array-buffer: ^3.0.4 - checksum: 53524e08f40867f6a9f35318fafe467c32e45e9c682ba67b11943e167344d2febc0f6977a17e699b05699e805c3e8f073d876f8bbf1b559ed494ad2cd0fae09e + "@smithy/core": ^2.5.5 + "@smithy/middleware-endpoint": ^3.2.6 + "@smithy/middleware-stack": ^3.0.11 + "@smithy/protocol-http": ^4.1.8 + "@smithy/types": ^3.7.2 + "@smithy/util-stream": ^3.3.2 + tslib: ^2.6.2 + checksum: f3df8e92b932d393773a2df5eb2c372bfab40ef516c74420039010d0295277dc2726148fdd42b16bae59a6dcb370e6872aeac9cb4c1c3d662659feff659c3397 languageName: node linkType: hard -"array-flatten@npm:1.1.1": - version: 1.1.1 - resolution: "array-flatten@npm:1.1.1" - checksum: a9925bf3512d9dce202112965de90c222cd59a4fbfce68a0951d25d965cf44642931f40aac72309c41f12df19afa010ecadceb07cfff9ccc1621e99d89ab5f3b +"@smithy/types@npm:^1.1.0": + version: 1.2.0 + resolution: "@smithy/types@npm:1.2.0" + dependencies: + tslib: ^2.5.0 + checksum: 376a1402d356a8dddd804af66ff2d273e57e332a3e9537a98039b47572684aae044d5fcd879ac6eee5cc08640ea00fbef0725a6a16026db5fb8d189473d44fe6 languageName: node linkType: hard -"array-includes@npm:^3.1.6, array-includes@npm:^3.1.8": - version: 3.1.8 - resolution: "array-includes@npm:3.1.8" +"@smithy/types@npm:^3.7.2": + version: 3.7.2 + resolution: "@smithy/types@npm:3.7.2" dependencies: - call-bind: ^1.0.7 - define-properties: ^1.2.1 - es-abstract: ^1.23.2 - es-object-atoms: ^1.0.0 - get-intrinsic: ^1.2.4 - is-string: ^1.0.7 - checksum: eb39ba5530f64e4d8acab39297c11c1c5be2a4ea188ab2b34aba5fb7224d918f77717a9d57a3e2900caaa8440e59431bdaf5c974d5212ef65d97f132e38e2d91 + tslib: ^2.6.2 + checksum: f3ae277d2f81eeb67c12e651b2e999225cda115dff8fab257a77fbe3739d32c515dbd19218590dd2c33d203259b00c80c9fc6027f8484c50725390a8fc0f1e3e languageName: node linkType: hard -"array-union@npm:^2.1.0": - version: 2.1.0 - resolution: "array-union@npm:2.1.0" - checksum: 5bee12395cba82da674931df6d0fea23c4aa4660cb3b338ced9f828782a65caa232573e6bf3968f23e0c5eb301764a382cef2f128b170a9dc59de0e36c39f98d +"@smithy/url-parser@npm:^3.0.11": + version: 3.0.11 + resolution: "@smithy/url-parser@npm:3.0.11" + dependencies: + "@smithy/querystring-parser": ^3.0.11 + "@smithy/types": ^3.7.2 + tslib: ^2.6.2 + checksum: 1af2edc53b969255c231028b034115f8d21807fd4ffa052ae4a03f9c47b28f8679a7c709626f9d549d537a7d63d20596c89515e229fc84114122fc9b51bb4519 languageName: node linkType: hard -"array.prototype.findlast@npm:^1.2.5": - version: 1.2.5 - resolution: "array.prototype.findlast@npm:1.2.5" +"@smithy/util-base64@npm:^3.0.0": + version: 3.0.0 + resolution: "@smithy/util-base64@npm:3.0.0" dependencies: - call-bind: ^1.0.7 - define-properties: ^1.2.1 - es-abstract: ^1.23.2 - es-errors: ^1.3.0 - es-object-atoms: ^1.0.0 - es-shim-unscopables: ^1.0.2 - checksum: 83ce4ad95bae07f136d316f5a7c3a5b911ac3296c3476abe60225bc4a17938bf37541972fcc37dd5adbc99cbb9c928c70bbbfc1c1ce549d41a415144030bb446 + "@smithy/util-buffer-from": ^3.0.0 + "@smithy/util-utf8": ^3.0.0 + tslib: ^2.6.2 + checksum: 413f26046a7e98b2661a078f218a8d040c820fc5a02f5e364aff58c3957e28fde1ac4048c2ebbad5d87b9da4b9aa98a8d4a7fb0d2ce97def33738bd7d8d79aa0 languageName: node linkType: hard -"array.prototype.findlastindex@npm:^1.2.5": - version: 1.2.5 - resolution: "array.prototype.findlastindex@npm:1.2.5" +"@smithy/util-body-length-browser@npm:^3.0.0": + version: 3.0.0 + resolution: "@smithy/util-body-length-browser@npm:3.0.0" dependencies: - call-bind: ^1.0.7 - define-properties: ^1.2.1 - es-abstract: ^1.23.2 - es-errors: ^1.3.0 - es-object-atoms: ^1.0.0 - es-shim-unscopables: ^1.0.2 - checksum: 2c81cff2a75deb95bf1ed89b6f5f2bfbfb882211e3b7cc59c3d6b87df774cd9d6b36949a8ae39ac476e092c1d4a4905f5ee11a86a456abb10f35f8211ae4e710 + tslib: ^2.6.2 + checksum: b01d8258b9a25b262734fc49cefefe48583ba193c3eefd49a6f7fd5922c3015d23dda88b52f3dd9a16827cad16b5b9425eef01e91bd0c71bb5abc469d2952c07 languageName: node linkType: hard -"array.prototype.flat@npm:^1.3.1, array.prototype.flat@npm:^1.3.2": - version: 1.3.2 - resolution: "array.prototype.flat@npm:1.3.2" +"@smithy/util-body-length-node@npm:^3.0.0": + version: 3.0.0 + resolution: "@smithy/util-body-length-node@npm:3.0.0" dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - es-shim-unscopables: ^1.0.0 - checksum: 5d6b4bf102065fb3f43764bfff6feb3295d372ce89591e6005df3d0ce388527a9f03c909af6f2a973969a4d178ab232ffc9236654149173e0e187ec3a1a6b87b + tslib: ^2.6.2 + checksum: da1baf4790609d3dc28c88385c7274fdf9b91a641fe3c5af22b78e18156df17bd470181348f43b2c739680936b1dafb1526158dfd817c3d9ecb71e653b4cbe3f languageName: node linkType: hard -"array.prototype.flatmap@npm:^1.3.2": - version: 1.3.2 - resolution: "array.prototype.flatmap@npm:1.3.2" +"@smithy/util-buffer-from@npm:^2.2.0": + version: 2.2.0 + resolution: "@smithy/util-buffer-from@npm:2.2.0" dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - es-shim-unscopables: ^1.0.0 - checksum: ce09fe21dc0bcd4f30271f8144083aa8c13d4639074d6c8dc82054b847c7fc9a0c97f857491f4da19d4003e507172a78f4bcd12903098adac8b9cd374f734be3 + "@smithy/is-array-buffer": ^2.2.0 + tslib: ^2.6.2 + checksum: 424c5b7368ae5880a8f2732e298d17879a19ca925f24ca45e1c6c005f717bb15b76eb28174d308d81631ad457ea0088aab0fd3255dd42f45a535c81944ad64d3 languageName: node linkType: hard -"array.prototype.tosorted@npm:^1.1.4": - version: 1.1.4 - resolution: "array.prototype.tosorted@npm:1.1.4" +"@smithy/util-buffer-from@npm:^3.0.0": + version: 3.0.0 + resolution: "@smithy/util-buffer-from@npm:3.0.0" dependencies: - call-bind: ^1.0.7 - define-properties: ^1.2.1 - es-abstract: ^1.23.3 - es-errors: ^1.3.0 - es-shim-unscopables: ^1.0.2 - checksum: e4142d6f556bcbb4f393c02e7dbaea9af8f620c040450c2be137c9cbbd1a17f216b9c688c5f2c08fbb038ab83f55993fa6efdd9a05881d84693c7bcb5422127a + "@smithy/is-array-buffer": ^3.0.0 + tslib: ^2.6.2 + checksum: 1bfc4ab093fe98132bbc1ccd36a0b9ad75a31ed26bac4b7e9350205513a2481eb190ae44679ab4fecc5e10d367b5e6592bbfbf792671579d17d17bd7f7f233f5 languageName: node linkType: hard -"arraybuffer.prototype.slice@npm:^1.0.3": - version: 1.0.3 - resolution: "arraybuffer.prototype.slice@npm:1.0.3" +"@smithy/util-config-provider@npm:^3.0.0": + version: 3.0.0 + resolution: "@smithy/util-config-provider@npm:3.0.0" dependencies: - array-buffer-byte-length: ^1.0.1 - call-bind: ^1.0.5 - define-properties: ^1.2.1 - es-abstract: ^1.22.3 - es-errors: ^1.2.1 - get-intrinsic: ^1.2.3 - is-array-buffer: ^3.0.4 - is-shared-array-buffer: ^1.0.2 - checksum: 352259cba534dcdd969c92ab002efd2ba5025b2e3b9bead3973150edbdf0696c629d7f4b3f061c5931511e8207bdc2306da614703c820b45dabce39e3daf7e3e + tslib: ^2.6.2 + checksum: fc0f5f57d30261cf3a6693d8e338b9d269332c478ee18d905309a769844188190caf0564855d7e84f6c61e56aa556195dda89f65e8c30791951cf4999e4a70e7 languageName: node linkType: hard -"arrify@npm:^2.0.0": - version: 2.0.1 - resolution: "arrify@npm:2.0.1" - checksum: 067c4c1afd182806a82e4c1cb8acee16ab8b5284fbca1ce29408e6e91281c36bb5b612f6ddfbd40a0f7a7e0c75bf2696eb94c027f6e328d6e9c52465c98e4209 +"@smithy/util-defaults-mode-browser@npm:^3.0.31": + version: 3.0.31 + resolution: "@smithy/util-defaults-mode-browser@npm:3.0.31" + dependencies: + "@smithy/property-provider": ^3.1.11 + "@smithy/smithy-client": ^3.5.1 + "@smithy/types": ^3.7.2 + bowser: ^2.11.0 + tslib: ^2.6.2 + checksum: d28e872eaad067ef0094d8ef45df27c9a498853af4e15a578727b172c0b2cbd55a0fe0792d89ce8c1155c131855c1cfb806679ba7839ac218e817768d9426b7e languageName: node linkType: hard -"asap@npm:^2.0.0": - version: 2.0.6 - resolution: "asap@npm:2.0.6" - checksum: b296c92c4b969e973260e47523207cd5769abd27c245a68c26dc7a0fe8053c55bb04360237cb51cab1df52be939da77150ace99ad331fb7fb13b3423ed73ff3d +"@smithy/util-defaults-mode-node@npm:^3.0.31": + version: 3.0.31 + resolution: "@smithy/util-defaults-mode-node@npm:3.0.31" + dependencies: + "@smithy/config-resolver": ^3.0.13 + "@smithy/credential-provider-imds": ^3.2.8 + "@smithy/node-config-provider": ^3.1.12 + "@smithy/property-provider": ^3.1.11 + "@smithy/smithy-client": ^3.5.1 + "@smithy/types": ^3.7.2 + tslib: ^2.6.2 + checksum: a0ddbae6058663e1d8a189925c69ec565aadfb023500f534083abea694cad87a0c6483fc99f77ef40172b182934852a674c10bd8b48e6030a84c5f4d04377d92 languageName: node linkType: hard -"asn1.js@npm:^4.10.1": - version: 4.10.1 - resolution: "asn1.js@npm:4.10.1" +"@smithy/util-endpoints@npm:^2.1.7": + version: 2.1.7 + resolution: "@smithy/util-endpoints@npm:2.1.7" dependencies: - bn.js: ^4.0.0 - inherits: ^2.0.1 - minimalistic-assert: ^1.0.0 - checksum: 9289a1a55401238755e3142511d7b8f6fc32f08c86ff68bd7100da8b6c186179dd6b14234fba2f7f6099afcd6758a816708485efe44bc5b2a6ec87d9ceeddbb5 + "@smithy/node-config-provider": ^3.1.12 + "@smithy/types": ^3.7.2 + tslib: ^2.6.2 + checksum: 6917604d6f7b7b78f8501152fc25795dabb22e10b6d004eb2234ac519cc0c8e8882b4919419626d29adf39cde41dc0874aa9fe3bb2fa3e655bbb89e191c2aa50 languageName: node linkType: hard -"asn1@npm:^0.2.6, asn1@npm:~0.2.3": - version: 0.2.6 - resolution: "asn1@npm:0.2.6" +"@smithy/util-hex-encoding@npm:^3.0.0": + version: 3.0.0 + resolution: "@smithy/util-hex-encoding@npm:3.0.0" dependencies: - safer-buffer: ~2.1.0 - checksum: 39f2ae343b03c15ad4f238ba561e626602a3de8d94ae536c46a4a93e69578826305366dc09fbb9b56aec39b4982a463682f259c38e59f6fa380cd72cd61e493d + tslib: ^2.6.2 + checksum: dd32fd71e915825987a18bf7c0f8f0c4956d0b17a0ee71592b5563bb20e04f24dbf81d36161aac07caab3bb5e535cc609fce20aa4a38f66b457c4c6f5c7748d9 languageName: node linkType: hard -"assert-plus@npm:1.0.0, assert-plus@npm:^1.0.0": - version: 1.0.0 - resolution: "assert-plus@npm:1.0.0" - checksum: 19b4340cb8f0e6a981c07225eacac0e9d52c2644c080198765d63398f0075f83bbc0c8e95474d54224e297555ad0d631c1dcd058adb1ddc2437b41a6b424ac64 +"@smithy/util-middleware@npm:^3.0.11": + version: 3.0.11 + resolution: "@smithy/util-middleware@npm:3.0.11" + dependencies: + "@smithy/types": ^3.7.2 + tslib: ^2.6.2 + checksum: 74079b9b10af88699c1cbdfd8f8bf8750899c9a36076c256997c3eafa18993178a05ef5fae83cfcdecf63c0e89c23fdd4fea9893419d1d481deecf580292fc33 languageName: node linkType: hard -"assert@npm:^1.1.1": - version: 1.5.1 - resolution: "assert@npm:1.5.1" +"@smithy/util-retry@npm:^3.0.11": + version: 3.0.11 + resolution: "@smithy/util-retry@npm:3.0.11" dependencies: - object.assign: ^4.1.4 - util: ^0.10.4 - checksum: bfc539da97545f9b2989395d6b85be40b70649ce57464f3cc6e61f4975fb097ba0689c386f95bdb4c3ab867931e40a565c9e193ae3c02263a8e92acb17c9dc93 + "@smithy/service-error-classification": ^3.0.11 + "@smithy/types": ^3.7.2 + tslib: ^2.6.2 + checksum: b6e9a891944a2b77105e51ab854a5a0709cfdf9d60293b61782c9caa8ca06625f1dc812b10ee7c254519a40329a9ab4fd21f55bae2dfc9a879db0f06878d0337 languageName: node linkType: hard -"ast-types-flow@npm:^0.0.8": - version: 0.0.8 - resolution: "ast-types-flow@npm:0.0.8" - checksum: 0a64706609a179233aac23817837abab614f3548c252a2d3d79ea1e10c74aa28a0846e11f466cf72771b6ed8713abc094dcf8c40c3ec4207da163efa525a94a8 +"@smithy/util-stream@npm:^3.3.2": + version: 3.3.2 + resolution: "@smithy/util-stream@npm:3.3.2" + dependencies: + "@smithy/fetch-http-handler": ^4.1.2 + "@smithy/node-http-handler": ^3.3.2 + "@smithy/types": ^3.7.2 + "@smithy/util-base64": ^3.0.0 + "@smithy/util-buffer-from": ^3.0.0 + "@smithy/util-hex-encoding": ^3.0.0 + "@smithy/util-utf8": ^3.0.0 + tslib: ^2.6.2 + checksum: def72c8102a2b3ae50d17f13eedc5622332c4ad7adf6109f69a73a9cc2e6c2543c08e05150179575cca01951d693d10aceef1ef6a42bef8025656a6676327186 languageName: node linkType: hard -"ast-types@npm:^0.13.4": - version: 0.13.4 - resolution: "ast-types@npm:0.13.4" +"@smithy/util-uri-escape@npm:^3.0.0": + version: 3.0.0 + resolution: "@smithy/util-uri-escape@npm:3.0.0" dependencies: - tslib: ^2.0.1 - checksum: 5a51f7b70588ecced3601845a0e203279ca2f5fdc184416a0a1640c93ec0a267241d6090a328e78eebb8de81f8754754e0a4f1558ba2a3d638f8ccbd0b1f0eff + tslib: ^2.6.2 + checksum: d7ee01c978e2b08d0a89a3b678f5d5e5d5bb4ab4ab85567a238b1a6195dff1bdaf9ae62497e7f32ff5121b3dc007c370bcb6e8ef79b01fe5acdec5bbce8c7ce4 languageName: node linkType: hard -"astring@npm:^1.8.1": - version: 1.9.0 - resolution: "astring@npm:1.9.0" - bin: - astring: bin/astring - checksum: 69ffde3643f5280c6846231a995af878a94d3eab41d1a19a86b8c15f456453f63a7982cf5dd72d270b9f50dd26763a3e1e48377c961b7df16f550132b6dba805 +"@smithy/util-utf8@npm:^2.0.0": + version: 2.3.0 + resolution: "@smithy/util-utf8@npm:2.3.0" + dependencies: + "@smithy/util-buffer-from": ^2.2.0 + tslib: ^2.6.2 + checksum: 00e55d4b4e37d48be0eef3599082402b933c52a1407fed7e8e8ad76d94d81a0b30b8bfaf2047c59d9c3af31e5f20e7a8c959cb7ae270f894255e05a2229964f0 languageName: node linkType: hard -"async-lock@npm:^1.4.1": - version: 1.4.1 - resolution: "async-lock@npm:1.4.1" - checksum: 29e70cd892932b7c202437786cedc39ff62123cb6941014739bd3cabd6106326416e9e7c21285a5d1dc042cad239a0f7ec9c44658491ee4a615fd36a21c1d10a +"@smithy/util-utf8@npm:^3.0.0": + version: 3.0.0 + resolution: "@smithy/util-utf8@npm:3.0.0" + dependencies: + "@smithy/util-buffer-from": ^3.0.0 + tslib: ^2.6.2 + checksum: d97be1748963263a1161ba80417d82318b977b38542f3fdf0379b0162461188be680e5bfb66a89d65652f0fad6ecf2ab23a43205979216e50602488f73434da3 languageName: node linkType: hard -"async-retry@npm:^1.3.3": - version: 1.3.3 - resolution: "async-retry@npm:1.3.3" +"@smithy/util-waiter@npm:^3.2.0": + version: 3.2.0 + resolution: "@smithy/util-waiter@npm:3.2.0" dependencies: - retry: 0.13.1 - checksum: 38a7152ff7265a9321ea214b9c69e8224ab1febbdec98efbbde6e562f17ff68405569b796b1c5271f354aef8783665d29953f051f68c1fc45306e61aec82fdc4 + "@smithy/abort-controller": ^3.1.9 + "@smithy/types": ^3.7.2 + tslib: ^2.6.2 + checksum: b788d7313ff3e4853679108a0b37a874d5896a1fcab804c4774b2a8aa3c6128dd754c7afe6e38942667165fec9609a37a8253187c25264e7805d7168d602c51e languageName: node linkType: hard -"async@npm:^2.6.4": - version: 2.6.4 - resolution: "async@npm:2.6.4" +"@snyk/github-codeowners@npm:1.1.0": + version: 1.1.0 + resolution: "@snyk/github-codeowners@npm:1.1.0" dependencies: - lodash: ^4.17.14 - checksum: a52083fb32e1ebe1d63e5c5624038bb30be68ff07a6c8d7dfe35e47c93fc144bd8652cbec869e0ac07d57dde387aa5f1386be3559cdee799cb1f789678d88e19 + commander: ^4.1.1 + ignore: ^5.1.8 + p-map: ^4.0.0 + bin: + github-codeowners: dist/cli.js + checksum: 133f867fa968f96229ebce724d8aedaa124218e20add96a3a7d39ea45e52007fee50cc90c39e406c9e662483d003da9326e00dc4d612afa5c2ca069d1cdab9d7 languageName: node linkType: hard -"async@npm:^3.2.3, async@npm:^3.2.4": - version: 3.2.6 - resolution: "async@npm:3.2.6" - checksum: ee6eb8cd8a0ab1b58bd2a3ed6c415e93e773573a91d31df9d5ef559baafa9dab37d3b096fa7993e84585cac3697b2af6ddb9086f45d3ac8cae821bb2aab65682 +"@spotify/eslint-config-base@npm:^15.0.0": + version: 15.0.0 + resolution: "@spotify/eslint-config-base@npm:15.0.0" + peerDependencies: + eslint: ">=7.x" + checksum: 265a4d807b5236030466a3a8373f41e51a9b4939b450d47ed2cb4704485004a5d64b2f9e024e865b4f5eea61ab6bbe439442e4ca2ac06e52a3b5c7e94c2d6b27 languageName: node linkType: hard -"asynckit@npm:^0.4.0": - version: 0.4.0 - resolution: "asynckit@npm:0.4.0" - checksum: 7b78c451df768adba04e2d02e63e2d0bf3b07adcd6e42b4cf665cb7ce899bedd344c69a1dcbce355b5f972d597b25aaa1c1742b52cffd9caccb22f348114f6be +"@spotify/eslint-config-react@npm:^15.0.0": + version: 15.0.0 + resolution: "@spotify/eslint-config-react@npm:15.0.0" + peerDependencies: + eslint: ">=8.x" + eslint-plugin-jsx-a11y: 6.x + eslint-plugin-react: ">=7.7.0 <8" + eslint-plugin-react-hooks: ^4.0.0 + checksum: 42e16f63d51b2230d2e4eba6524d2d9278d480827c5d2ab32f96253bafd4d8ceb87c37d8429601e36642ff30c86b92011ad4efd26c83db4037478ad118497cce languageName: node linkType: hard -"at-least-node@npm:^1.0.0": - version: 1.0.0 - resolution: "at-least-node@npm:1.0.0" - checksum: 463e2f8e43384f1afb54bc68485c436d7622acec08b6fad269b421cb1d29cebb5af751426793d0961ed243146fe4dc983402f6d5a51b720b277818dbf6f2e49e +"@spotify/eslint-config-typescript@npm:^15.0.0": + version: 15.0.0 + resolution: "@spotify/eslint-config-typescript@npm:15.0.0" + peerDependencies: + "@typescript-eslint/eslint-plugin": ">=5" + "@typescript-eslint/parser": ">=5" + eslint: ">=8.x" + checksum: d30d07e1e2e0e18cc583a72ca74b5fdb80ee26e6529de26e1e85d1416ca5396c942efaccc2613287365c7ac3659378b0ba0cdda3df25c7e5cdbd7317f1cbe885 languageName: node linkType: hard -"available-typed-arrays@npm:^1.0.7": - version: 1.0.7 - resolution: "available-typed-arrays@npm:1.0.7" - dependencies: - possible-typed-array-names: ^1.0.0 - checksum: 1aa3ffbfe6578276996de660848b6e95669d9a95ad149e3dd0c0cda77db6ee1dbd9d1dd723b65b6d277b882dd0c4b91a654ae9d3cf9e1254b7e93e4908d78fd3 +"@spotify/prettier-config@npm:^12.0.0": + version: 12.0.0 + resolution: "@spotify/prettier-config@npm:12.0.0" + peerDependencies: + prettier: 2.x + checksum: 04732b96af895269bb8a988ba309e80bd7b87c785837e06f72ff938e8895c5a3a3211fa37b54c6a2b502e88587a437c2be3ccb486a84aff02c2f6fb4582a4a97 languageName: node linkType: hard -"aws-sign2@npm:~0.7.0": - version: 0.7.0 - resolution: "aws-sign2@npm:0.7.0" - checksum: b148b0bb0778098ad8cf7e5fc619768bcb51236707ca1d3e5b49e41b171166d8be9fdc2ea2ae43d7decf02989d0aaa3a9c4caa6f320af95d684de9b548a71525 +"@stoplight/better-ajv-errors@npm:1.0.3": + version: 1.0.3 + resolution: "@stoplight/better-ajv-errors@npm:1.0.3" + dependencies: + jsonpointer: ^5.0.0 + leven: ^3.1.0 + peerDependencies: + ajv: ">=8" + checksum: 642fe5636a72a86de72e4ffc7bbf07499fc09d8446b386f31d3667b07dd1849d921c38a74c109a9e2554d405b6e90dc150728a0c455bf93f158ff139e0538ddd languageName: node linkType: hard -"aws-ssl-profiles@npm:^1.1.1": - version: 1.1.2 - resolution: "aws-ssl-profiles@npm:1.1.2" - checksum: bfcf9b2cbb9788e24e4af39a1e8b4a8afbdf65773b6a1636e643c10068ffbae46b28277c4c9f9321179400b2080092db040ba4513f9143f22d1bb053a12dab2b +"@stoplight/json-ref-readers@npm:1.2.2, @stoplight/json-ref-readers@npm:^1.2.2": + version: 1.2.2 + resolution: "@stoplight/json-ref-readers@npm:1.2.2" + dependencies: + node-fetch: ^2.6.0 + tslib: ^1.14.1 + checksum: 31b0e78b119f7afd7dd84a4fbb0c4aaceeb6e889179e785ddb9880ee548d4d161dce5743451ef6dad4b7a902d9f0711909c87b63ad794bede234a144bcf2b2b4 languageName: node linkType: hard -"aws4@npm:^1.8.0": - version: 1.13.2 - resolution: "aws4@npm:1.13.2" - checksum: 9ac924e4a91c088b4928ea86b68d8c4558b0e6289ccabaae0e3e96a611bd75277c2eab6e3965821028768700516f612b929a5ce822f33a8771f74ba2a8cedb9c +"@stoplight/json-ref-resolver@npm:^3.1.5, @stoplight/json-ref-resolver@npm:~3.1.6": + version: 3.1.6 + resolution: "@stoplight/json-ref-resolver@npm:3.1.6" + dependencies: + "@stoplight/json": ^3.21.0 + "@stoplight/path": ^1.3.2 + "@stoplight/types": ^12.3.0 || ^13.0.0 + "@types/urijs": ^1.19.19 + dependency-graph: ~0.11.0 + fast-memoize: ^2.5.2 + immer: ^9.0.6 + lodash: ^4.17.21 + tslib: ^2.6.0 + urijs: ^1.19.11 + checksum: 57c944cc8cee51b18fd8165aae7431eddf3b6ca96f2de7a264d890f18a869e5abb7750d48a77455ee1c688ac440efa4115bc8e912efce7c83140834bae49879e languageName: node linkType: hard -"axe-core@npm:^4.10.0": - version: 4.10.2 - resolution: "axe-core@npm:4.10.2" - checksum: 2b9b1c93ea73ea9f206604e4e17bd771d2d835f077bde54517d73028b8865c69b209460e73d5b109968cbdb39ab3d28943efa5695189bd79e16421ce1706719e +"@stoplight/json@npm:3.21.0": + version: 3.21.0 + resolution: "@stoplight/json@npm:3.21.0" + dependencies: + "@stoplight/ordered-object-literal": ^1.0.3 + "@stoplight/path": ^1.3.2 + "@stoplight/types": ^13.6.0 + jsonc-parser: ~2.2.1 + lodash: ^4.17.21 + safe-stable-stringify: ^1.1 + checksum: 16fe56a6804cd47837bd82d85a8500c4226669558f3feda55d8fb0cd615ca2261622963700f04f049cf30a3a9764eb3c861516003d948743b6ae85dbbabf8a59 languageName: node linkType: hard -"axios@npm:1.7.7, axios@npm:^1.7.4": - version: 1.7.7 - resolution: "axios@npm:1.7.7" +"@stoplight/json@npm:^3.17.0, @stoplight/json@npm:^3.17.1, @stoplight/json@npm:^3.20.1, @stoplight/json@npm:^3.21.0, @stoplight/json@npm:~3.21.0": + version: 3.21.7 + resolution: "@stoplight/json@npm:3.21.7" dependencies: - follow-redirects: ^1.15.6 - form-data: ^4.0.0 - proxy-from-env: ^1.1.0 - checksum: 882d4fe0ec694a07c7f5c1f68205eb6dc5a62aecdb632cc7a4a3d0985188ce3030e0b277e1a8260ac3f194d314ae342117660a151fabffdc5081ca0b5a8b47fe + "@stoplight/ordered-object-literal": ^1.0.3 + "@stoplight/path": ^1.3.2 + "@stoplight/types": ^13.6.0 + jsonc-parser: ~2.2.1 + lodash: ^4.17.21 + safe-stable-stringify: ^1.1 + checksum: 5b0cd67e91e8f4cfac7ff0fe37c07e203611f429e8af7fce51cacb82f9c97150a3fa3aeda41daa9e65bc42d217b630bf01a8bf1f6db12b047079b0da9d7cd9af languageName: node linkType: hard -"axobject-query@npm:^4.1.0": - version: 4.1.0 - resolution: "axobject-query@npm:4.1.0" - checksum: 7d1e87bf0aa7ae7a76cd39ab627b7c48fda3dc40181303d9adce4ba1d5b5ce73b5e5403ee6626ec8e91090448c887294d6144e24b6741a976f5be9347e3ae1df +"@stoplight/ordered-object-literal@npm:^1.0.3, @stoplight/ordered-object-literal@npm:^1.0.5": + version: 1.0.5 + resolution: "@stoplight/ordered-object-literal@npm:1.0.5" + checksum: 84fe385ed742c5298fd5bee3f95366bfe17a2b99ed52f9b323180756d3495078dfb3bf7e5f49f3c8dee7b79f2e8358b38fe4977b7b6475f0094765160d716bb5 languageName: node linkType: hard -"b4a@npm:^1.6.4": - version: 1.6.7 - resolution: "b4a@npm:1.6.7" - checksum: afe4e239b49c0ef62236fe0d788ac9bd9d7eac7e9855b0d1835593cd0efcc7be394f9cc28a747a2ed2cdcb0a48c3528a551a196f472eb625457c711169c9efa2 +"@stoplight/path@npm:1.3.2, @stoplight/path@npm:^1.3.2": + version: 1.3.2 + resolution: "@stoplight/path@npm:1.3.2" + checksum: 8a1143cef9edcf9fd8cb24ca3f250693d475ce1f635f0dc95e5b045aad303fbf4d702c939f0c4ed8d28a04208d1aa4471fb10912ef1e3a94a9e6810878a7cfbb languageName: node linkType: hard -"babel-jest@npm:^29.7.0": - version: 29.7.0 - resolution: "babel-jest@npm:29.7.0" +"@stoplight/spectral-core@npm:^1.18.0, @stoplight/spectral-core@npm:^1.18.3, @stoplight/spectral-core@npm:^1.19.2, @stoplight/spectral-core@npm:^1.19.4": + version: 1.19.4 + resolution: "@stoplight/spectral-core@npm:1.19.4" dependencies: - "@jest/transform": ^29.7.0 - "@types/babel__core": ^7.1.14 - babel-plugin-istanbul: ^6.1.1 - babel-preset-jest: ^29.6.3 - chalk: ^4.0.0 - graceful-fs: ^4.2.9 - slash: ^3.0.0 - peerDependencies: - "@babel/core": ^7.8.0 - checksum: ee6f8e0495afee07cac5e4ee167be705c711a8cc8a737e05a587a131fdae2b3c8f9aa55dfd4d9c03009ac2d27f2de63d8ba96d3e8460da4d00e8af19ef9a83f7 + "@stoplight/better-ajv-errors": 1.0.3 + "@stoplight/json": ~3.21.0 + "@stoplight/path": 1.3.2 + "@stoplight/spectral-parsers": ^1.0.0 + "@stoplight/spectral-ref-resolver": ^1.0.4 + "@stoplight/spectral-runtime": ^1.1.2 + "@stoplight/types": ~13.6.0 + "@types/es-aggregate-error": ^1.0.2 + "@types/json-schema": ^7.0.11 + ajv: ^8.17.1 + ajv-errors: ~3.0.0 + ajv-formats: ~2.1.0 + es-aggregate-error: ^1.0.7 + jsonpath-plus: 10.2.0 + lodash: ~4.17.21 + lodash.topath: ^4.5.2 + minimatch: 3.1.2 + nimma: 0.2.3 + pony-cause: ^1.1.1 + simple-eval: 1.0.1 + tslib: ^2.8.1 + checksum: c9efb0892a80f66f58309e297e7cb27580847403a5625f95b0332dbba4e3fe360f04aa60339d61824a025e3ee6296c2f73e1ca7119b783f9349f21d971b73dd8 languageName: node linkType: hard -"babel-plugin-istanbul@npm:^6.1.1": - version: 6.1.1 - resolution: "babel-plugin-istanbul@npm:6.1.1" +"@stoplight/spectral-formats@npm:^1.2.0, @stoplight/spectral-formats@npm:^1.8.1": + version: 1.8.2 + resolution: "@stoplight/spectral-formats@npm:1.8.2" dependencies: - "@babel/helper-plugin-utils": ^7.0.0 - "@istanbuljs/load-nyc-config": ^1.0.0 - "@istanbuljs/schema": ^0.1.2 - istanbul-lib-instrument: ^5.0.4 - test-exclude: ^6.0.0 - checksum: cb4fd95738219f232f0aece1116628cccff16db891713c4ccb501cddbbf9272951a5df81f2f2658dfdf4b3e7b236a9d5cbcf04d5d8c07dd5077297339598061a + "@stoplight/json": ^3.17.0 + "@stoplight/spectral-core": ^1.19.2 + "@types/json-schema": ^7.0.7 + tslib: ^2.8.1 + checksum: 1724aeaf933446cda79cc62aef4326ff9df4dad2cfa64e3e1286b001957e628235be679610cf61e4f01d53703ede11853ff389f0d038e6af367e7861219a5c2d languageName: node linkType: hard -"babel-plugin-jest-hoist@npm:^29.6.3": - version: 29.6.3 - resolution: "babel-plugin-jest-hoist@npm:29.6.3" +"@stoplight/spectral-formatters@npm:^1.1.0": + version: 1.4.3 + resolution: "@stoplight/spectral-formatters@npm:1.4.3" dependencies: - "@babel/template": ^7.3.3 - "@babel/types": ^7.3.3 - "@types/babel__core": ^7.1.14 - "@types/babel__traverse": ^7.0.6 - checksum: 51250f22815a7318f17214a9d44650ba89551e6d4f47a2dc259128428324b52f5a73979d010cefd921fd5a720d8c1d55ad74ff601cd94c7bd44d5f6292fde2d1 + "@stoplight/path": ^1.3.2 + "@stoplight/spectral-core": ^1.19.4 + "@stoplight/spectral-runtime": ^1.1.2 + "@stoplight/types": ^13.15.0 + "@types/markdown-escape": ^1.1.3 + chalk: 4.1.2 + cliui: 7.0.4 + lodash: ^4.17.21 + markdown-escape: ^2.0.0 + node-sarif-builder: ^2.0.3 + strip-ansi: 6.0 + text-table: ^0.2.0 + tslib: ^2.8.1 + checksum: 949d82f1a790136357a305a71cb96cfd77ad4bff044941e36eecb98b30601aec92b6020d1869f5eca54e03c0c7e6e5aeb74346327489973332192629fbafdff7 languageName: node linkType: hard -"babel-plugin-polyfill-corejs2@npm:^0.4.10": - version: 0.4.11 - resolution: "babel-plugin-polyfill-corejs2@npm:0.4.11" +"@stoplight/spectral-functions@npm:^1.6.1, @stoplight/spectral-functions@npm:^1.7.2, @stoplight/spectral-functions@npm:^1.9.1": + version: 1.9.3 + resolution: "@stoplight/spectral-functions@npm:1.9.3" dependencies: - "@babel/compat-data": ^7.22.6 - "@babel/helper-define-polyfill-provider": ^0.6.2 - semver: ^6.3.1 - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: f098353ce7c7dde1a1d2710858e01b471e85689110c9e37813e009072347eb8c55d5f84d20d3bf1cab31755f20078ba90f8855fdc4686a9daa826a95ff280bd7 + "@stoplight/better-ajv-errors": 1.0.3 + "@stoplight/json": ^3.17.1 + "@stoplight/spectral-core": ^1.19.4 + "@stoplight/spectral-formats": ^1.8.1 + "@stoplight/spectral-runtime": ^1.1.2 + ajv: ^8.17.1 + ajv-draft-04: ~1.0.0 + ajv-errors: ~3.0.0 + ajv-formats: ~2.1.0 + lodash: ~4.17.21 + tslib: ^2.8.1 + checksum: bdb1c95b12b4ebef4f429621dd9f1b30134b07c23086573ad1e937cfc7b15d60c52cb2810939e030a8f8edb59100d198a40ee1278b832869ca71b058a0e857b1 languageName: node linkType: hard -"babel-plugin-polyfill-corejs3@npm:^0.10.6": - version: 0.10.6 - resolution: "babel-plugin-polyfill-corejs3@npm:0.10.6" - dependencies: - "@babel/helper-define-polyfill-provider": ^0.6.2 - core-js-compat: ^3.38.0 - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: f762f29f7acca576897c63149c850f0a72babd3fb9ea436a2e36f0c339161c4b912a77828541d8188ce8a91e50965c6687120cf36071eabb1b7aa92f279e2164 +"@stoplight/spectral-parsers@npm:^1.0.0, @stoplight/spectral-parsers@npm:^1.0.2": + version: 1.0.5 + resolution: "@stoplight/spectral-parsers@npm:1.0.5" + dependencies: + "@stoplight/json": ~3.21.0 + "@stoplight/types": ^14.1.1 + "@stoplight/yaml": ~4.3.0 + tslib: ^2.8.1 + checksum: 633921b78c67201a32ee99c35ecaf4425f488b9ad65e13551b16a7042704846d3d12ee8b87aa39a2525527e78b55840d40bd6b6396c22b3a4aa2aa5ce05c565b languageName: node linkType: hard -"babel-plugin-polyfill-regenerator@npm:^0.6.1": - version: 0.6.2 - resolution: "babel-plugin-polyfill-regenerator@npm:0.6.2" +"@stoplight/spectral-ref-resolver@npm:^1.0.3, @stoplight/spectral-ref-resolver@npm:^1.0.4": + version: 1.0.5 + resolution: "@stoplight/spectral-ref-resolver@npm:1.0.5" dependencies: - "@babel/helper-define-polyfill-provider": ^0.6.2 - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 150233571072b6b3dfe946242da39cba8587b7f908d1c006f7545fc88b0e3c3018d445739beb61e7a75835f0c2751dbe884a94ff9b245ec42369d9267e0e1b3f + "@stoplight/json-ref-readers": 1.2.2 + "@stoplight/json-ref-resolver": ~3.1.6 + "@stoplight/spectral-runtime": ^1.1.2 + dependency-graph: 0.11.0 + tslib: ^2.8.1 + checksum: 054ab74e9ed9b12b7b6d6826c8b89e7a3d46632855eca1bd454930a1e09e0d4423fda219931a021eb50098d13f22823178b0b2fae90eac08cd6b600f447e1cf2 languageName: node linkType: hard -"babel-preset-current-node-syntax@npm:^1.0.0": - version: 1.1.0 - resolution: "babel-preset-current-node-syntax@npm:1.1.0" +"@stoplight/spectral-rulesets@npm:^1.18.0": + version: 1.21.3 + resolution: "@stoplight/spectral-rulesets@npm:1.21.3" dependencies: - "@babel/plugin-syntax-async-generators": ^7.8.4 - "@babel/plugin-syntax-bigint": ^7.8.3 - "@babel/plugin-syntax-class-properties": ^7.12.13 - "@babel/plugin-syntax-class-static-block": ^7.14.5 - "@babel/plugin-syntax-import-attributes": ^7.24.7 - "@babel/plugin-syntax-import-meta": ^7.10.4 - "@babel/plugin-syntax-json-strings": ^7.8.3 - "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 - "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 - "@babel/plugin-syntax-numeric-separator": ^7.10.4 - "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 - "@babel/plugin-syntax-optional-chaining": ^7.8.3 - "@babel/plugin-syntax-private-property-in-object": ^7.14.5 - "@babel/plugin-syntax-top-level-await": ^7.14.5 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 9f93fac975eaba296c436feeca1031ca0539143c4066eaf5d1ba23525a31850f03b651a1049caea7287df837a409588c8252c15627ad3903f17864c8e25ed64b + "@asyncapi/specs": ^6.8.0 + "@stoplight/better-ajv-errors": 1.0.3 + "@stoplight/json": ^3.17.0 + "@stoplight/spectral-core": ^1.19.4 + "@stoplight/spectral-formats": ^1.8.1 + "@stoplight/spectral-functions": ^1.9.1 + "@stoplight/spectral-runtime": ^1.1.2 + "@stoplight/types": ^13.6.0 + "@types/json-schema": ^7.0.7 + ajv: ^8.17.1 + ajv-formats: ~2.1.0 + json-schema-traverse: ^1.0.0 + leven: 3.1.0 + lodash: ~4.17.21 + tslib: ^2.8.1 + checksum: 41aa70864efb46074b24f63101eeb472644dea703b9ac55640ca9e398e2e4f8e9de3c46fe502b9912c2629441113e51d80d9a171689b5122ff40bb13072dc43b languageName: node linkType: hard -"babel-preset-jest@npm:^29.6.3": - version: 29.6.3 - resolution: "babel-preset-jest@npm:29.6.3" +"@stoplight/spectral-runtime@npm:^1.1.2": + version: 1.1.3 + resolution: "@stoplight/spectral-runtime@npm:1.1.3" dependencies: - babel-plugin-jest-hoist: ^29.6.3 - babel-preset-current-node-syntax: ^1.0.0 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: aa4ff2a8a728d9d698ed521e3461a109a1e66202b13d3494e41eea30729a5e7cc03b3a2d56c594423a135429c37bf63a9fa8b0b9ce275298be3095a88c69f6fb + "@stoplight/json": ^3.20.1 + "@stoplight/path": ^1.3.2 + "@stoplight/types": ^13.6.0 + abort-controller: ^3.0.0 + lodash: ^4.17.21 + node-fetch: ^2.6.7 + tslib: ^2.8.1 + checksum: 33af5713fd98de76e8007c9969d41440ef2abbff34e92db9a4b00b37a58dc7e7d4f0a0612c45183fb1aa9cd1a42dfe5ebfa59abf3b784e22d5f4b54c9f9d3d4c languageName: node linkType: hard -"balanced-match@npm:^1.0.0": - version: 1.0.2 - resolution: "balanced-match@npm:1.0.2" - checksum: 9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65 +"@stoplight/types@npm:^12.3.0 || ^13.0.0, @stoplight/types@npm:^13.12.0, @stoplight/types@npm:^13.15.0, @stoplight/types@npm:^13.6.0": + version: 13.20.0 + resolution: "@stoplight/types@npm:13.20.0" + dependencies: + "@types/json-schema": ^7.0.4 + utility-types: ^3.10.0 + checksum: b4c7ee22a8d4377aa9b2f901887c17b4a27d1009b2b9348962b2c6a72100ca954d11293a6dd2de01920e8fdc589e31b20ad84421eb0bf5edd9aeef5b5810f04b languageName: node linkType: hard -"bare-events@npm:^2.0.0, bare-events@npm:^2.2.0": - version: 2.5.0 - resolution: "bare-events@npm:2.5.0" - checksum: 5aa10716e7f33c5dfc471fd657eee2a33f2db0f78b3c83b5cdd1a45a7e7871114a69460ea96cd838807c55eb470b9e53dd0dfda8c83cced1352cc8253cebff48 +"@stoplight/types@npm:^14.0.0, @stoplight/types@npm:^14.1.1": + version: 14.1.1 + resolution: "@stoplight/types@npm:14.1.1" + dependencies: + "@types/json-schema": ^7.0.4 + utility-types: ^3.10.0 + checksum: 1da2e683e88afe2f72c3b3af341537bc9bac153d224f65744ca60d44eade93609ce91172064ae27093e1ebfa7bcbf05fb232a1910d83b2aee5b1eed4bb726200 languageName: node linkType: hard -"bare-fs@npm:^2.1.1": - version: 2.3.5 - resolution: "bare-fs@npm:2.3.5" +"@stoplight/types@npm:~13.6.0": + version: 13.6.0 + resolution: "@stoplight/types@npm:13.6.0" dependencies: - bare-events: ^2.0.0 - bare-path: ^2.0.0 - bare-stream: ^2.0.0 - checksum: 071b1dff94a213eaf0b41693953959bf10af2deade597a56ff206a5d833579d56bc8530aa4614bb88bf39fd6d52f2404f7c36af4695109ffa756a13837ac3d91 + "@types/json-schema": ^7.0.4 + utility-types: ^3.10.0 + checksum: 4cc81cf29decc0392f15c71b21fd11cd806bcf99168ae4509ed41c2b7dbcfbd5a83c7f9f320edb5a518cc483fd18dd8794c54b232fb6a6f2a7b6e9fb6ca20269 languageName: node linkType: hard -"bare-os@npm:^2.1.0": - version: 2.4.4 - resolution: "bare-os@npm:2.4.4" - checksum: e90088a7dc0307c020350a28df8ec5564cae5a4b7a213d8509d70831d7064308e2ed31de801b68f474cb004ad3a0a66bd28c38374d270484d9025ee71af20396 +"@stoplight/yaml-ast-parser@npm:0.0.50": + version: 0.0.50 + resolution: "@stoplight/yaml-ast-parser@npm:0.0.50" + checksum: dd46f2e39cef4e3a56276202872282bc435c5f92ea7cf344abd6722fbdab62547ec7d2b84983c6c05aaa2776ac29efd53affe6d9753cce10ef37b4e15ce6ccdc languageName: node linkType: hard -"bare-path@npm:^2.0.0, bare-path@npm:^2.1.0": - version: 2.1.3 - resolution: "bare-path@npm:2.1.3" +"@stoplight/yaml@npm:~4.3.0": + version: 4.3.0 + resolution: "@stoplight/yaml@npm:4.3.0" dependencies: - bare-os: ^2.1.0 - checksum: 20301aeb05b735852a396515464908e51e896922c3bb353ef2a09ff54e81ced94e6ad857bb0a36d2ce659c42bd43dd5c3d5643edd8faaf910ee9950c4e137b88 + "@stoplight/ordered-object-literal": ^1.0.5 + "@stoplight/types": ^14.1.1 + "@stoplight/yaml-ast-parser": 0.0.50 + tslib: ^2.2.0 + checksum: f113f600a62b75c76c96c27ce3713ba2c48be205fca73097699b66b6f861411c6917dcc5afa4dd08c17fe63f5181b49fa2be9c6500140ea5d05a107ffcb48a4f languageName: node linkType: hard -"bare-stream@npm:^2.0.0": - version: 2.3.2 - resolution: "bare-stream@npm:2.3.2" +"@sucrase/webpack-loader@npm:^2.0.0": + version: 2.0.0 + resolution: "@sucrase/webpack-loader@npm:2.0.0" dependencies: - streamx: ^2.20.0 - checksum: 051c817f0b74617d99002a91c61e6fa2b56bff3bb329c5ab4a817287bc1f46f3aef5f13bc11201b344a91873782a45f755d3910012381f16e47feee2194fd792 + loader-utils: ^1.1.0 + peerDependencies: + sucrase: ^3 + checksum: 16578991b1b888ac5bec5628bd24db9e21651bbbe30de076aece8787f115d8971ac87a20bc75446187c73c3185851ec2233d5b6f18c4a2dd53fbbb1ed4e488b4 languageName: node linkType: hard -"base64-js@npm:^1.0.2, base64-js@npm:^1.3.0, base64-js@npm:^1.3.1": - version: 1.5.1 - resolution: "base64-js@npm:1.5.1" - checksum: 669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005 +"@svgr/babel-plugin-add-jsx-attribute@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/babel-plugin-add-jsx-attribute@npm:6.5.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: cab83832830a57735329ed68f67c03b57ca21fa037b0134847b0c5c0ef4beca89956d7dacfbf7b2a10fd901e7009e877512086db2ee918b8c69aee7742ae32c0 languageName: node linkType: hard -"base64-stream@npm:^1.0.0": - version: 1.0.0 - resolution: "base64-stream@npm:1.0.0" - checksum: 45ee0ffaa30350e21f7bd58eedeeeb4567297e2537eac71000e00cc38be8578bdaa7fda59c30302dc9ed58c18b235e440207425abb81bd89de9a3ef79348921b +"@svgr/babel-plugin-remove-jsx-attribute@npm:*": + version: 8.0.0 + resolution: "@svgr/babel-plugin-remove-jsx-attribute@npm:8.0.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ff992893c6c4ac802713ba3a97c13be34e62e6d981c813af40daabcd676df68a72a61bd1e692bb1eda3587f1b1d700ea462222ae2153bb0f46886632d4f88d08 languageName: node linkType: hard -"basic-auth@npm:~2.0.1": - version: 2.0.1 - resolution: "basic-auth@npm:2.0.1" - dependencies: - safe-buffer: 5.1.2 - checksum: 3419b805d5dfc518f3a05dcf42aa53aa9ce820e50b6df5097f9e186322e1bc733c36722b624802cd37e791035aa73b828ed814d8362333d42d7f5cd04d7a5e48 +"@svgr/babel-plugin-remove-jsx-empty-expression@npm:*": + version: 8.0.0 + resolution: "@svgr/babel-plugin-remove-jsx-empty-expression@npm:8.0.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 0fb691b63a21bac00da3aa2dccec50d0d5a5b347ff408d60803b84410d8af168f2656e4ba1ee1f24dab0ae4e4af77901f2928752bb0434c1f6788133ec599ec8 languageName: node linkType: hard -"basic-ftp@npm:^5.0.2": - version: 5.0.5 - resolution: "basic-ftp@npm:5.0.5" - checksum: bc82d1c1c61cd838eaca96d68ece888bacf07546642fb6b9b8328ed410756f5935f8cf43a42cb44bb343e0565e28e908adc54c298bd2f1a6e0976871fb11fec6 +"@svgr/babel-plugin-replace-jsx-attribute-value@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/babel-plugin-replace-jsx-attribute-value@npm:6.5.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b7d2125758e766e1ebd14b92216b800bdc976959bc696dbfa1e28682919147c1df4bb8b1b5fd037d7a83026e27e681fea3b8d3741af8d3cf4c9dfa3d412125df languageName: node linkType: hard -"batch@npm:0.6.1": - version: 0.6.1 - resolution: "batch@npm:0.6.1" - checksum: 61f9934c7378a51dce61b915586191078ef7f1c3eca707fdd58b96ff2ff56d9e0af2bdab66b1462301a73c73374239e6542d9821c0af787f3209a23365d07e7f +"@svgr/babel-plugin-svg-dynamic-title@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/babel-plugin-svg-dynamic-title@npm:6.5.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 0fd42ebf127ae9163ef341e84972daa99bdcb9e6ed3f83aabd95ee173fddc43e40e02fa847fbc0a1058cf5549f72b7960a2c5e22c3e4ac18f7e3ac81277852ae languageName: node linkType: hard -"bcrypt-pbkdf@npm:^1.0.0, bcrypt-pbkdf@npm:^1.0.2": - version: 1.0.2 - resolution: "bcrypt-pbkdf@npm:1.0.2" - dependencies: - tweetnacl: ^0.14.3 - checksum: 4edfc9fe7d07019609ccf797a2af28351736e9d012c8402a07120c4453a3b789a15f2ee1530dc49eee8f7eb9379331a8dd4b3766042b9e502f74a68e7f662291 +"@svgr/babel-plugin-svg-em-dimensions@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/babel-plugin-svg-em-dimensions@npm:6.5.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c1550ee9f548526fa66fd171e3ffb5696bfc4e4cd108a631d39db492c7410dc10bba4eb5a190e9df824bf806130ccc586ae7d2e43c547e6a4f93bbb29a18f344 languageName: node linkType: hard -"before-after-hook@npm:^2.2.0": - version: 2.2.3 - resolution: "before-after-hook@npm:2.2.3" - checksum: a1a2430976d9bdab4cd89cb50d27fa86b19e2b41812bf1315923b0cba03371ebca99449809226425dd3bcef20e010db61abdaff549278e111d6480034bebae87 +"@svgr/babel-plugin-transform-react-native-svg@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/babel-plugin-transform-react-native-svg@npm:6.5.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 4c924af22b948b812629e80efb90ad1ec8faae26a232d8ca8a06b46b53e966a2c415a57806a3ff0ea806a622612e546422719b69ec6839717a7755dac19171d9 languageName: node linkType: hard -"better-path-resolve@npm:1.0.0": - version: 1.0.0 - resolution: "better-path-resolve@npm:1.0.0" - dependencies: - is-windows: ^1.0.0 - checksum: 5392dbe04e7fe68b944eb37961d9dfa147aaac3ee9ee3f6e13d42e2c9fbe949e68d16e896c14ee9016fa5f8e6e53ec7fd8b5f01b50a32067a7d94ac9cfb9a050 +"@svgr/babel-plugin-transform-svg-component@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/babel-plugin-transform-svg-component@npm:6.5.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: e496bb5ee871feb6bcab250b6e067322da7dd5c9c2b530b41e5586fe090f86611339b49d0a909c334d9b24cbca0fa755c949a2526c6ad03c6b5885666874cf5f languageName: node linkType: hard -"better-sqlite3@npm:^11.0.0": - version: 11.5.0 - resolution: "better-sqlite3@npm:11.5.0" +"@svgr/babel-preset@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/babel-preset@npm:6.5.1" dependencies: - bindings: ^1.5.0 - node-gyp: latest - prebuild-install: ^7.1.1 - checksum: 37acef8d4272ad57fe211aa5a2e177f95443eafb794c7db6c2d0dae0a4fe4c2ef508b8b970d82f1d9744d009677d82067279f45e27d4155a5e68a578f5c5c051 + "@svgr/babel-plugin-add-jsx-attribute": ^6.5.1 + "@svgr/babel-plugin-remove-jsx-attribute": "*" + "@svgr/babel-plugin-remove-jsx-empty-expression": "*" + "@svgr/babel-plugin-replace-jsx-attribute-value": ^6.5.1 + "@svgr/babel-plugin-svg-dynamic-title": ^6.5.1 + "@svgr/babel-plugin-svg-em-dimensions": ^6.5.1 + "@svgr/babel-plugin-transform-react-native-svg": ^6.5.1 + "@svgr/babel-plugin-transform-svg-component": ^6.5.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 9f124be39a8e64f909162f925b3a63ddaa5a342a5e24fc0b7f7d9d4d7f7e3b916596c754fb557dc259928399cad5366a27cb231627a0d2dcc4b13ac521cf05af languageName: node linkType: hard -"bfj@npm:^8.0.0": - version: 8.0.0 - resolution: "bfj@npm:8.0.0" +"@svgr/core@npm:6.5.x, @svgr/core@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/core@npm:6.5.1" dependencies: - bluebird: ^3.7.2 - check-types: ^11.2.3 - hoopy: ^0.1.4 - jsonpath: ^1.1.1 - tryer: ^1.0.1 - checksum: f22d49cd2661a92e7526015edac0e02858a881a36438fe4e67df320dddc08cba09e197a7e128f282abc2c26127f5abb3ca8e8b7eff0737df20e5b8c4ee6273e9 + "@babel/core": ^7.19.6 + "@svgr/babel-preset": ^6.5.1 + "@svgr/plugin-jsx": ^6.5.1 + camelcase: ^6.2.0 + cosmiconfig: ^7.0.1 + checksum: fd6d6d5da5aeb956703310480b626c1fb3e3973ad9fe8025efc1dcf3d895f857b70d100c63cf32cebb20eb83c9607bafa464c9436e18fe6fe4fafdc73ed6b1a5 languageName: node linkType: hard -"big.js@npm:^5.2.2": - version: 5.2.2 - resolution: "big.js@npm:5.2.2" - checksum: b89b6e8419b097a8fb4ed2399a1931a68c612bce3cfd5ca8c214b2d017531191070f990598de2fc6f3f993d91c0f08aa82697717f6b3b8732c9731866d233c9e - languageName: node - linkType: hard - -"bignumber.js@npm:^9.0.0": - version: 9.1.2 - resolution: "bignumber.js@npm:9.1.2" - checksum: 582c03af77ec9cb0ebd682a373ee6c66475db94a4325f92299621d544aa4bd45cb45fd60001610e94aef8ae98a0905fa538241d9638d4422d57abbeeac6fadaf - languageName: node - linkType: hard - -"binary-extensions@npm:^2.0.0": - version: 2.3.0 - resolution: "binary-extensions@npm:2.3.0" - checksum: bcad01494e8a9283abf18c1b967af65ee79b0c6a9e6fcfafebfe91dbe6e0fc7272bafb73389e198b310516ae04f7ad17d79aacf6cb4c0d5d5202a7e2e52c7d98 - languageName: node - linkType: hard - -"bindings@npm:^1.5.0": - version: 1.5.0 - resolution: "bindings@npm:1.5.0" +"@svgr/hast-util-to-babel-ast@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/hast-util-to-babel-ast@npm:6.5.1" dependencies: - file-uri-to-path: 1.0.0 - checksum: 65b6b48095717c2e6105a021a7da4ea435aa8d3d3cd085cb9e85bcb6e5773cf318c4745c3f7c504412855940b585bdf9b918236612a1c7a7942491de176f1ae7 + "@babel/types": ^7.20.0 + entities: ^4.4.0 + checksum: 37923cce1b3f4e2039077b0c570b6edbabe37d1cf1a6ee35e71e0fe00f9cffac450eec45e9720b1010418131a999cb0047331ba1b6d1d2c69af1b92ac785aacf languageName: node linkType: hard -"bl@npm:^4.0.3, bl@npm:^4.1.0": - version: 4.1.0 - resolution: "bl@npm:4.1.0" +"@svgr/plugin-jsx@npm:6.5.x, @svgr/plugin-jsx@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/plugin-jsx@npm:6.5.1" dependencies: - buffer: ^5.5.0 - inherits: ^2.0.4 - readable-stream: ^3.4.0 - checksum: 9e8521fa7e83aa9427c6f8ccdcba6e8167ef30cc9a22df26effcc5ab682ef91d2cbc23a239f945d099289e4bbcfae7a192e9c28c84c6202e710a0dfec3722662 + "@babel/core": ^7.19.6 + "@svgr/babel-preset": ^6.5.1 + "@svgr/hast-util-to-babel-ast": ^6.5.1 + svg-parser: ^2.0.4 + peerDependencies: + "@svgr/core": ^6.0.0 + checksum: 42f22847a6bdf930514d7bedd3c5e1fd8d53eb3594779f9db16cb94c762425907c375cd8ec789114e100a4d38068aca6c7ab5efea4c612fba63f0630c44cc859 languageName: node linkType: hard -"bluebird@npm:^3.7.2": - version: 3.7.2 - resolution: "bluebird@npm:3.7.2" - checksum: 869417503c722e7dc54ca46715f70e15f4d9c602a423a02c825570862d12935be59ed9c7ba34a9b31f186c017c23cac6b54e35446f8353059c101da73eac22ef +"@svgr/plugin-svgo@npm:6.5.x, @svgr/plugin-svgo@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/plugin-svgo@npm:6.5.1" + dependencies: + cosmiconfig: ^7.0.1 + deepmerge: ^4.2.2 + svgo: ^2.8.0 + peerDependencies: + "@svgr/core": "*" + checksum: cd2833530ac0485221adc2146fd992ab20d79f4b12eebcd45fa859721dd779483158e11dfd9a534858fe468416b9412416e25cbe07ac7932c44ed5fa2021c72e languageName: node linkType: hard -"bn.js@npm:^4.0.0, bn.js@npm:^4.1.0, bn.js@npm:^4.11.9": - version: 4.12.0 - resolution: "bn.js@npm:4.12.0" - checksum: 39afb4f15f4ea537b55eaf1446c896af28ac948fdcf47171961475724d1bb65118cca49fa6e3d67706e4790955ec0e74de584e45c8f1ef89f46c812bee5b5a12 +"@svgr/rollup@npm:6.5.x": + version: 6.5.1 + resolution: "@svgr/rollup@npm:6.5.1" + dependencies: + "@babel/core": ^7.19.6 + "@babel/plugin-transform-react-constant-elements": ^7.18.12 + "@babel/preset-env": ^7.19.4 + "@babel/preset-react": ^7.18.6 + "@babel/preset-typescript": ^7.18.6 + "@rollup/pluginutils": ^4.2.1 + "@svgr/core": ^6.5.1 + "@svgr/plugin-jsx": ^6.5.1 + "@svgr/plugin-svgo": ^6.5.1 + checksum: 809198a655c280b434d762829aeab0c48e545daaa7a520ac87d5e7cfe96402eb4d0c01f8b25959fcc37a2ce4aa1a53c9e1c4ccb1206cd5833883a34db5799dd4 languageName: node linkType: hard -"bn.js@npm:^5.2.1": - version: 5.2.1 - resolution: "bn.js@npm:5.2.1" - checksum: 3dd8c8d38055fedfa95c1d5fc3c99f8dd547b36287b37768db0abab3c239711f88ff58d18d155dd8ad902b0b0cee973747b7ae20ea12a09473272b0201c9edd3 +"@svgr/webpack@npm:6.5.x": + version: 6.5.1 + resolution: "@svgr/webpack@npm:6.5.1" + dependencies: + "@babel/core": ^7.19.6 + "@babel/plugin-transform-react-constant-elements": ^7.18.12 + "@babel/preset-env": ^7.19.4 + "@babel/preset-react": ^7.18.6 + "@babel/preset-typescript": ^7.18.6 + "@svgr/core": ^6.5.1 + "@svgr/plugin-jsx": ^6.5.1 + "@svgr/plugin-svgo": ^6.5.1 + checksum: d10582eb4fa82a5b6d314cb49f2c640af4fd3a60f5b76095d2b14e383ef6a43a6f4674b68774a21787dbde69dec0a251cfcfc3f9a96c82754ba5d5c6daf785f0 languageName: node linkType: hard -"body-parser@npm:1.20.3": - version: 1.20.3 - resolution: "body-parser@npm:1.20.3" +"@swagger-api/apidom-ast@npm:^1.0.0-beta.5": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-ast@npm:1.0.0-beta.5" dependencies: - bytes: 3.1.2 - content-type: ~1.0.5 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.13.0 - raw-body: 2.5.2 - type-is: ~1.6.18 - unpipe: 1.0.0 - checksum: 1a35c59a6be8d852b00946330141c4f142c6af0f970faa87f10ad74f1ee7118078056706a05ae3093c54dabca9cd3770fa62a170a85801da1a4324f04381167d + "@babel/runtime-corejs3": ^7.20.7 + "@swagger-api/apidom-error": ^1.0.0-beta.5 + "@types/ramda": ~0.30.0 + ramda: ~0.30.0 + ramda-adjunct: ^5.0.0 + unraw: ^3.0.0 + checksum: 7c46f284d99c3098bc332dc3ef35a5cd0b4c3785a3fd56722f4fc07b423d8d55d7eb446763da5cf4d380fbfea3390c70bd5e5c15de87b4268730ba845b9f54fd languageName: node linkType: hard -"bonjour-service@npm:^1.0.11, bonjour-service@npm:^1.2.1": - version: 1.2.1 - resolution: "bonjour-service@npm:1.2.1" +"@swagger-api/apidom-core@npm:>=1.0.0-beta.3 <1.0.0-rc.0, @swagger-api/apidom-core@npm:^1.0.0-beta.5": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-core@npm:1.0.0-beta.5" dependencies: - fast-deep-equal: ^3.1.3 - multicast-dns: ^7.2.5 - checksum: b65b3e6e3a07e97f2da5806afb76f3946d5a6426b72e849a0236dc3c9d3612fb8c5359ebade4be7eb63f74a37670c53a53be2ff17f4f709811fda77f600eb25b + "@babel/runtime-corejs3": ^7.20.7 + "@swagger-api/apidom-ast": ^1.0.0-beta.5 + "@swagger-api/apidom-error": ^1.0.0-beta.5 + "@types/ramda": ~0.30.0 + minim: ~0.23.8 + ramda: ~0.30.0 + ramda-adjunct: ^5.0.0 + short-unique-id: ^5.0.2 + ts-mixer: ^6.0.3 + checksum: db5e76049eb96eccf5c956a0fdfb7582019be097646286ee8e0ba1881fa2618abadcf8156da6a6183e2c3d15e0fedbea22901282922d1975fe69e4bf0d7fec94 languageName: node linkType: hard -"boolbase@npm:^1.0.0": - version: 1.0.0 - resolution: "boolbase@npm:1.0.0" - checksum: 3e25c80ef626c3a3487c73dbfc70ac322ec830666c9ad915d11b701142fab25ec1e63eff2c450c74347acfd2de854ccde865cd79ef4db1683f7c7b046ea43bb0 +"@swagger-api/apidom-error@npm:>=1.0.0-beta.3 <1.0.0-rc.0, @swagger-api/apidom-error@npm:^1.0.0-beta.3 <1.0.0-rc.0, @swagger-api/apidom-error@npm:^1.0.0-beta.5": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-error@npm:1.0.0-beta.5" + dependencies: + "@babel/runtime-corejs3": ^7.20.7 + checksum: 77f719ce147546aaa350df9ed49f12ab793fabc9a8c061877960a22a6dff7210cc004c02f0a10c807aa6b5513af7bdd37b672a7ceb73189fa5950571f806a4cb languageName: node linkType: hard -"boolean@npm:^3.0.1": - version: 3.2.0 - resolution: "boolean@npm:3.2.0" - checksum: fb29535b8bf710ef45279677a86d14f5185d604557204abd2ca5fa3fb2a5c80e04d695c8dbf13ab269991977a79bb6c04b048220a6b2a3849853faa94f4a7d77 +"@swagger-api/apidom-json-pointer@npm:>=1.0.0-beta.3 <1.0.0-rc.0, @swagger-api/apidom-json-pointer@npm:^1.0.0-beta.3 <1.0.0-rc.0, @swagger-api/apidom-json-pointer@npm:^1.0.0-beta.5": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-json-pointer@npm:1.0.0-beta.5" + dependencies: + "@babel/runtime-corejs3": ^7.20.7 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-error": ^1.0.0-beta.5 + "@types/ramda": ~0.30.0 + ramda: ~0.30.0 + ramda-adjunct: ^5.0.0 + checksum: b018073a75c3fad269140504fe5623bd5041dca1ad80c249ab031b63d1c4ed0756e268fea0846f21476fc7d72fa40fcf3fefc230bfa751caf9efe587bd01124a languageName: node linkType: hard -"bowser@npm:^2.11.0": - version: 2.11.0 - resolution: "bowser@npm:2.11.0" - checksum: 29c3f01f22e703fa6644fc3b684307442df4240b6e10f6cfe1b61c6ca5721073189ca97cdeedb376081148c8518e33b1d818a57f781d70b0b70e1f31fb48814f +"@swagger-api/apidom-ns-api-design-systems@npm:^1.0.0-beta.5": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-ns-api-design-systems@npm:1.0.0-beta.5" + dependencies: + "@babel/runtime-corejs3": ^7.20.7 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-error": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-openapi-3-1": ^1.0.0-beta.5 + "@types/ramda": ~0.30.0 + ramda: ~0.30.0 + ramda-adjunct: ^5.0.0 + ts-mixer: ^6.0.3 + checksum: b661b9140b3e5968ec1669c3529c9169a12b96500466a5c87e4b479507d0f09443abb3a03370d5d6751f1b6951d743b357519244bd4c989084388e2b43d60603 languageName: node linkType: hard -"brace-expansion@npm:^1.1.7": - version: 1.1.11 - resolution: "brace-expansion@npm:1.1.11" +"@swagger-api/apidom-ns-asyncapi-2@npm:^1.0.0-beta.3 <1.0.0-rc.0, @swagger-api/apidom-ns-asyncapi-2@npm:^1.0.0-beta.5": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-ns-asyncapi-2@npm:1.0.0-beta.5" dependencies: - balanced-match: ^1.0.0 - concat-map: 0.0.1 - checksum: faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07 + "@babel/runtime-corejs3": ^7.20.7 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-json-schema-draft-7": ^1.0.0-beta.5 + "@types/ramda": ~0.30.0 + ramda: ~0.30.0 + ramda-adjunct: ^5.0.0 + ts-mixer: ^6.0.3 + checksum: e7b8c5af72442fa267f2981bd02d1450997f1022068071966bcebb13e7afbaf0c1416de3dc73e57f9cf2a0b08d1a72a3e0dd40fdf8e2b32c63c69f078518617f languageName: node linkType: hard -"brace-expansion@npm:^2.0.1": - version: 2.0.1 - resolution: "brace-expansion@npm:2.0.1" +"@swagger-api/apidom-ns-json-schema-draft-4@npm:^1.0.0-beta.5": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-ns-json-schema-draft-4@npm:1.0.0-beta.5" dependencies: - balanced-match: ^1.0.0 - checksum: a61e7cd2e8a8505e9f0036b3b6108ba5e926b4b55089eeb5550cd04a471fe216c96d4fe7e4c7f995c728c554ae20ddfc4244cad10aef255e72b62930afd233d1 + "@babel/runtime-corejs3": ^7.20.7 + "@swagger-api/apidom-ast": ^1.0.0-beta.5 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@types/ramda": ~0.30.0 + ramda: ~0.30.0 + ramda-adjunct: ^5.0.0 + ts-mixer: ^6.0.4 + checksum: c58fd53a087bcb9c0c238eee23f5fc2e452d4a88bde99dbcb020c2295ed385926ca51052e046f4d1e8a2d20898cb28a6d3cfb57c23b9bff5446bfd10f95ba6aa languageName: node linkType: hard -"braces@npm:^3.0.3, braces@npm:~3.0.2": - version: 3.0.3 - resolution: "braces@npm:3.0.3" +"@swagger-api/apidom-ns-json-schema-draft-6@npm:^1.0.0-beta.5": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-ns-json-schema-draft-6@npm:1.0.0-beta.5" dependencies: - fill-range: ^7.1.1 - checksum: b95aa0b3bd909f6cd1720ffcf031aeaf46154dd88b4da01f9a1d3f7ea866a79eba76a6d01cbc3c422b2ee5cdc39a4f02491058d5df0d7bf6e6a162a832df1f69 + "@babel/runtime-corejs3": ^7.20.7 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-error": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-json-schema-draft-4": ^1.0.0-beta.5 + "@types/ramda": ~0.30.0 + ramda: ~0.30.0 + ramda-adjunct: ^5.0.0 + ts-mixer: ^6.0.4 + checksum: 1a069aee8e9ff445bfd523298f50905177226070f587e3e371c2a68aa8031c39e7e9d7e0c47ff6ae8876baaa80b6f8b79c3a357e0c7ebcd592ebb20015f4ccc1 languageName: node linkType: hard -"brorand@npm:^1.0.1, brorand@npm:^1.1.0": - version: 1.1.0 - resolution: "brorand@npm:1.1.0" - checksum: 8a05c9f3c4b46572dec6ef71012b1946db6cae8c7bb60ccd4b7dd5a84655db49fe043ecc6272e7ef1f69dc53d6730b9e2a3a03a8310509a3d797a618cbee52be +"@swagger-api/apidom-ns-json-schema-draft-7@npm:^1.0.0-beta.5": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-ns-json-schema-draft-7@npm:1.0.0-beta.5" + dependencies: + "@babel/runtime-corejs3": ^7.20.7 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-error": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-json-schema-draft-6": ^1.0.0-beta.5 + "@types/ramda": ~0.30.0 + ramda: ~0.30.0 + ramda-adjunct: ^5.0.0 + ts-mixer: ^6.0.4 + checksum: 62c62eba1cc554760897e26b0a5e88b74b42c898c12002afcb4d9df37146218bddff751ac8b1392c83947d55dac7a7b81b3ad6d2c222e3acf20bbc49438d2e6f languageName: node linkType: hard -"browserify-aes@npm:^1.0.4, browserify-aes@npm:^1.2.0": - version: 1.2.0 - resolution: "browserify-aes@npm:1.2.0" +"@swagger-api/apidom-ns-openapi-2@npm:^1.0.0-beta.3 <1.0.0-rc.0, @swagger-api/apidom-ns-openapi-2@npm:^1.0.0-beta.5": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-ns-openapi-2@npm:1.0.0-beta.5" dependencies: - buffer-xor: ^1.0.3 - cipher-base: ^1.0.0 - create-hash: ^1.1.0 - evp_bytestokey: ^1.0.3 - inherits: ^2.0.1 - safe-buffer: ^5.0.1 - checksum: 4a17c3eb55a2aa61c934c286f34921933086bf6d67f02d4adb09fcc6f2fc93977b47d9d884c25619144fccd47b3b3a399e1ad8b3ff5a346be47270114bcf7104 + "@babel/runtime-corejs3": ^7.20.7 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-error": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-json-schema-draft-4": ^1.0.0-beta.5 + "@types/ramda": ~0.30.0 + ramda: ~0.30.0 + ramda-adjunct: ^5.0.0 + ts-mixer: ^6.0.3 + checksum: 551e65fce5fb8ce29466ce7f09b5e3fd522a6d23de417856a41f228761eb4d9f5e92438a00d708c55d386a9b72e8a8f704b19aa33324871534567ef9b69adaae languageName: node linkType: hard -"browserify-cipher@npm:^1.0.1": - version: 1.0.1 - resolution: "browserify-cipher@npm:1.0.1" +"@swagger-api/apidom-ns-openapi-3-0@npm:^1.0.0-beta.3 <1.0.0-rc.0, @swagger-api/apidom-ns-openapi-3-0@npm:^1.0.0-beta.5": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-ns-openapi-3-0@npm:1.0.0-beta.5" dependencies: - browserify-aes: ^1.0.4 - browserify-des: ^1.0.0 - evp_bytestokey: ^1.0.0 - checksum: 2d8500acf1ee535e6bebe808f7a20e4c3a9e2ed1a6885fff1facbfd201ac013ef030422bec65ca9ece8ffe82b03ca580421463f9c45af6c8415fd629f4118c13 + "@babel/runtime-corejs3": ^7.20.7 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-error": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-json-schema-draft-4": ^1.0.0-beta.5 + "@types/ramda": ~0.30.0 + ramda: ~0.30.0 + ramda-adjunct: ^5.0.0 + ts-mixer: ^6.0.3 + checksum: 7a64e57b0d1688622333bd94d6541c95beb513ba152599820d8a1ca04f694a0b9a49ddce3e0396dc8dbc61f630d7bc6bce89dbfb4f300db174bf72f6f4c6c2a8 languageName: node linkType: hard -"browserify-des@npm:^1.0.0": - version: 1.0.2 - resolution: "browserify-des@npm:1.0.2" +"@swagger-api/apidom-ns-openapi-3-1@npm:>=1.0.0-beta.3 <1.0.0-rc.0, @swagger-api/apidom-ns-openapi-3-1@npm:^1.0.0-beta.3 <1.0.0-rc.0, @swagger-api/apidom-ns-openapi-3-1@npm:^1.0.0-beta.5": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-ns-openapi-3-1@npm:1.0.0-beta.5" dependencies: - cipher-base: ^1.0.1 - des.js: ^1.0.0 - inherits: ^2.0.1 - safe-buffer: ^5.1.2 - checksum: b15a3e358a1d78a3b62ddc06c845d02afde6fc826dab23f1b9c016e643e7b1fda41de628d2110b712f6a44fb10cbc1800bc6872a03ddd363fb50768e010395b7 + "@babel/runtime-corejs3": ^7.20.7 + "@swagger-api/apidom-ast": ^1.0.0-beta.5 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-json-pointer": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-openapi-3-0": ^1.0.0-beta.5 + "@types/ramda": ~0.30.0 + ramda: ~0.30.0 + ramda-adjunct: ^5.0.0 + ts-mixer: ^6.0.3 + checksum: 59352feab47be62c22a38d5cd2b0383f26caa13253c68fe677f0a8eb17a6cc57c20b66a1b5a4fdb1fc63e01e4c3b7f8b910291ca67c14c27d077e4e8db29f23c languageName: node linkType: hard -"browserify-rsa@npm:^4.0.0, browserify-rsa@npm:^4.1.0": - version: 4.1.1 - resolution: "browserify-rsa@npm:4.1.1" +"@swagger-api/apidom-ns-workflows-1@npm:^1.0.0-beta.3 <1.0.0-rc.0, @swagger-api/apidom-ns-workflows-1@npm:^1.0.0-beta.5": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-ns-workflows-1@npm:1.0.0-beta.5" dependencies: - bn.js: ^5.2.1 - randombytes: ^2.1.0 - safe-buffer: ^5.2.1 - checksum: 2628508646331791c29312bbf274c076a237437a17178ea9bdc75c577fb4164a0da0b137deaadf6ade623701332377c5c2ceb0ff6f991c744a576e790ec95852 + "@babel/runtime-corejs3": ^7.20.7 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-openapi-3-1": ^1.0.0-beta.5 + "@types/ramda": ~0.30.0 + ramda: ~0.30.0 + ramda-adjunct: ^5.0.0 + ts-mixer: ^6.0.3 + checksum: c85afb9154964ba1861285fe7200fecf9d023fcf071a6a393dd51387699c2fbd2a1ecbe357b3adc8525f0cd771a101b25d0df23b55d2c104c7d238859dc084a5 languageName: node linkType: hard -"browserify-sign@npm:^4.2.3": - version: 4.2.3 - resolution: "browserify-sign@npm:4.2.3" +"@swagger-api/apidom-parser-adapter-api-design-systems-json@npm:^1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-parser-adapter-api-design-systems-json@npm:1.0.0-beta.5" dependencies: - bn.js: ^5.2.1 - browserify-rsa: ^4.1.0 - create-hash: ^1.2.0 - create-hmac: ^1.1.7 - elliptic: ^6.5.5 - hash-base: ~3.0 - inherits: ^2.0.4 - parse-asn1: ^5.1.7 - readable-stream: ^2.3.8 - safe-buffer: ^5.2.1 - checksum: 403a8061d229ae31266670345b4a7c00051266761d2c9bbeb68b1a9bcb05f68143b16110cf23a171a5d6716396a1f41296282b3e73eeec0a1871c77f0ff4ee6b + "@babel/runtime-corejs3": ^7.20.7 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-api-design-systems": ^1.0.0-beta.5 + "@swagger-api/apidom-parser-adapter-json": ^1.0.0-beta.5 + "@types/ramda": ~0.30.0 + ramda: ~0.30.0 + ramda-adjunct: ^5.0.0 + checksum: 9f3f95b58e17738fe615ff03441c33a54b095e6dfb6e52c4d5a6e72927574b1e0c9acec75d52cf7d0159bb4a3766094b21b4950b233174625bd02512b61a6099 languageName: node linkType: hard -"browserify-zlib@npm:^0.2.0": - version: 0.2.0 - resolution: "browserify-zlib@npm:0.2.0" +"@swagger-api/apidom-parser-adapter-api-design-systems-yaml@npm:^1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-parser-adapter-api-design-systems-yaml@npm:1.0.0-beta.5" dependencies: - pako: ~1.0.5 - checksum: 5cd9d6a665190fedb4a97dfbad8dabc8698d8a507298a03f42c734e96d58ca35d3c7d4085e283440bbca1cd1938cff85031728079bedb3345310c58ab1ec92d6 + "@babel/runtime-corejs3": ^7.20.7 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-api-design-systems": ^1.0.0-beta.5 + "@swagger-api/apidom-parser-adapter-yaml-1-2": ^1.0.0-beta.5 + "@types/ramda": ~0.30.0 + ramda: ~0.30.0 + ramda-adjunct: ^5.0.0 + checksum: ccc80cdf2fbaceece20fcc3640d6c93018b44282f8df3d125e03b3210c2c6f55776bc5a39b88a03b5bf04f0ef37d983903f79b1a7d2ad44661f69578b90a9d6c languageName: node linkType: hard -"browserslist@npm:^4.0.0, browserslist@npm:^4.18.1, browserslist@npm:^4.21.10, browserslist@npm:^4.21.4, browserslist@npm:^4.23.3, browserslist@npm:^4.24.0": - version: 4.24.2 - resolution: "browserslist@npm:4.24.2" +"@swagger-api/apidom-parser-adapter-asyncapi-json-2@npm:^1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-parser-adapter-asyncapi-json-2@npm:1.0.0-beta.5" dependencies: - caniuse-lite: ^1.0.30001669 - electron-to-chromium: ^1.5.41 - node-releases: ^2.0.18 - update-browserslist-db: ^1.1.1 - bin: - browserslist: cli.js - checksum: cf64085f12132d38638f38937a255edb82c7551b164a98577b055dd79719187a816112f7b97b9739e400c4954cd66479c0d7a843cb816e346f4795dc24fd5d97 + "@babel/runtime-corejs3": ^7.20.7 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-asyncapi-2": ^1.0.0-beta.5 + "@swagger-api/apidom-parser-adapter-json": ^1.0.0-beta.5 + "@types/ramda": ~0.30.0 + ramda: ~0.30.0 + ramda-adjunct: ^5.0.0 + checksum: 8d5e7e1b1a902a608574e9f7ecdf931809f77f75d5b9a6429893894e4eb27de59e838b8de5c6e5cfbc7b9d55937ef86c5d15e6dee2175e312467814afd830e4f languageName: node linkType: hard -"bser@npm:2.1.1": - version: 2.1.1 - resolution: "bser@npm:2.1.1" +"@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@npm:^1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@npm:1.0.0-beta.5" dependencies: - node-int64: ^0.4.0 - checksum: 9ba4dc58ce86300c862bffc3ae91f00b2a03b01ee07f3564beeeaf82aa243b8b03ba53f123b0b842c190d4399b94697970c8e7cf7b1ea44b61aa28c3526a4449 + "@babel/runtime-corejs3": ^7.20.7 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-asyncapi-2": ^1.0.0-beta.5 + "@swagger-api/apidom-parser-adapter-yaml-1-2": ^1.0.0-beta.5 + "@types/ramda": ~0.30.0 + ramda: ~0.30.0 + ramda-adjunct: ^5.0.0 + checksum: 8c5c60a0ff8cbf728e7b557fc1b1a9ac2f7e509ba46fc67fd32c60b4da5daf1003fa468f88d88b441333bc299c322a24c7bfbc61df0f101334be6debd7cf181a languageName: node linkType: hard -"btoa-lite@npm:^1.0.0": - version: 1.0.0 - resolution: "btoa-lite@npm:1.0.0" - checksum: c2d61993b801f8e35a96f20692a45459c753d9baa29d86d1343e714f8d6bbe7069f1a20a5ae868488f3fb137d5bd0c560f6fbbc90b5a71050919d2d2c97c0475 +"@swagger-api/apidom-parser-adapter-json@npm:^1.0.0-beta.3 <1.0.0-rc.0, @swagger-api/apidom-parser-adapter-json@npm:^1.0.0-beta.5": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-parser-adapter-json@npm:1.0.0-beta.5" + dependencies: + "@babel/runtime-corejs3": ^7.20.7 + "@swagger-api/apidom-ast": ^1.0.0-beta.5 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-error": ^1.0.0-beta.5 + "@types/ramda": ~0.30.0 + node-gyp: latest + ramda: ~0.30.0 + ramda-adjunct: ^5.0.0 + tree-sitter: =0.22.1 + tree-sitter-json: =0.24.8 + web-tree-sitter: =0.24.5 + checksum: 9bf5305b54167f9bd76cc0ab617cf1bc2abd140c51ae80febf18f1afd98be53ba1936d5ee0d3e7d7ff6145ba3f4c874eedfece9f8d287a6a7cbb382cc75c528a languageName: node linkType: hard -"btoa@npm:^1.2.1": - version: 1.2.1 - resolution: "btoa@npm:1.2.1" - bin: - btoa: bin/btoa.js - checksum: afbf004fb1b1d530e053ffa66ef5bd3878b101c59d808ac947fcff96810b4452abba2b54be687adadea2ba9efc7af48b04228742789bf824ef93f103767e690c +"@swagger-api/apidom-parser-adapter-openapi-json-2@npm:^1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-parser-adapter-openapi-json-2@npm:1.0.0-beta.5" + dependencies: + "@babel/runtime-corejs3": ^7.20.7 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-openapi-2": ^1.0.0-beta.5 + "@swagger-api/apidom-parser-adapter-json": ^1.0.0-beta.5 + "@types/ramda": ~0.30.0 + ramda: ~0.30.0 + ramda-adjunct: ^5.0.0 + checksum: 7345bf9ff60d0b67c5d84b21a81c55a0e940e4670f5faa31ad9b9a6d5d95aee00fb2fe4fef8d8095b603c65f3d7c020946fb06a8c5a206ae6b8fd70b9b5c2419 languageName: node linkType: hard -"buffer-crc32@npm:^1.0.0": - version: 1.0.0 - resolution: "buffer-crc32@npm:1.0.0" - checksum: bc114c0e02fe621249e0b5093c70e6f12d4c2b1d8ddaf3b1b7bbe3333466700100e6b1ebdc12c050d0db845bc582c4fce8c293da487cc483f97eea027c480b23 +"@swagger-api/apidom-parser-adapter-openapi-json-3-0@npm:^1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-parser-adapter-openapi-json-3-0@npm:1.0.0-beta.5" + dependencies: + "@babel/runtime-corejs3": ^7.20.7 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-openapi-3-0": ^1.0.0-beta.5 + "@swagger-api/apidom-parser-adapter-json": ^1.0.0-beta.5 + "@types/ramda": ~0.30.0 + ramda: ~0.30.0 + ramda-adjunct: ^5.0.0 + checksum: ddc43ce6bb64555ffe2987654184f8e7854ab012b15ca7e8d21865e5159ba3e83c9d85baafadb48fd8c818062a1e0ad6df0165f45380f4c96debdb41e7d22649 languageName: node linkType: hard -"buffer-crc32@npm:~0.2.3": - version: 0.2.13 - resolution: "buffer-crc32@npm:0.2.13" - checksum: 06252347ae6daca3453b94e4b2f1d3754a3b146a111d81c68924c22d91889a40623264e95e67955b1cb4a68cbedf317abeabb5140a9766ed248973096db5ce1c +"@swagger-api/apidom-parser-adapter-openapi-json-3-1@npm:^1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-parser-adapter-openapi-json-3-1@npm:1.0.0-beta.5" + dependencies: + "@babel/runtime-corejs3": ^7.20.7 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-openapi-3-1": ^1.0.0-beta.5 + "@swagger-api/apidom-parser-adapter-json": ^1.0.0-beta.5 + "@types/ramda": ~0.30.0 + ramda: ~0.30.0 + ramda-adjunct: ^5.0.0 + checksum: 82992ead718a43c69f35d90f3842fdee42a4a3ac9ee80739ab4354330f3549c9bae0a60faf8793268e942c46b61b84f32a4d2dc0a225f234b1e6c578d65b8082 languageName: node linkType: hard -"buffer-equal-constant-time@npm:1.0.1": - version: 1.0.1 - resolution: "buffer-equal-constant-time@npm:1.0.1" - checksum: 80bb945f5d782a56f374b292770901065bad21420e34936ecbe949e57724b4a13874f735850dd1cc61f078773c4fb5493a41391e7bda40d1fa388d6bd80daaab +"@swagger-api/apidom-parser-adapter-openapi-yaml-2@npm:^1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-parser-adapter-openapi-yaml-2@npm:1.0.0-beta.5" + dependencies: + "@babel/runtime-corejs3": ^7.20.7 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-openapi-2": ^1.0.0-beta.5 + "@swagger-api/apidom-parser-adapter-yaml-1-2": ^1.0.0-beta.5 + "@types/ramda": ~0.30.0 + ramda: ~0.30.0 + ramda-adjunct: ^5.0.0 + checksum: 6dea1bd388662eb72c66e2dbcf66af12f5d67fad42170d339a5973dad5543ca0c766f1ca9473eb525d53ff23ce3f2c9ef88e5fd3e9330e9d0b416bc6641862dc languageName: node linkType: hard -"buffer-from@npm:^1.0.0": - version: 1.1.2 - resolution: "buffer-from@npm:1.1.2" - checksum: 0448524a562b37d4d7ed9efd91685a5b77a50672c556ea254ac9a6d30e3403a517d8981f10e565db24e8339413b43c97ca2951f10e399c6125a0d8911f5679bb +"@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@npm:^1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@npm:1.0.0-beta.5" + dependencies: + "@babel/runtime-corejs3": ^7.20.7 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-openapi-3-0": ^1.0.0-beta.5 + "@swagger-api/apidom-parser-adapter-yaml-1-2": ^1.0.0-beta.5 + "@types/ramda": ~0.30.0 + ramda: ~0.30.0 + ramda-adjunct: ^5.0.0 + checksum: 732eacbeb5baf8bdddc22c6f14b00740742ef16318e06eefdac49175dbb7887a28cf9e0e6521962d042ea0de45f8fceb8d2858833f46d7773338a8d94cf09d78 languageName: node linkType: hard -"buffer-xor@npm:^1.0.3": - version: 1.0.3 - resolution: "buffer-xor@npm:1.0.3" - checksum: 10c520df29d62fa6e785e2800e586a20fc4f6dfad84bcdbd12e1e8a83856de1cb75c7ebd7abe6d036bbfab738a6cf18a3ae9c8e5a2e2eb3167ca7399ce65373a +"@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@npm:^1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@npm:1.0.0-beta.5" + dependencies: + "@babel/runtime-corejs3": ^7.20.7 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-openapi-3-1": ^1.0.0-beta.5 + "@swagger-api/apidom-parser-adapter-yaml-1-2": ^1.0.0-beta.5 + "@types/ramda": ~0.30.0 + ramda: ~0.30.0 + ramda-adjunct: ^5.0.0 + checksum: 91bbd995e57664e6661f4abd79ab4666d65597c7deadd559d1716d766927c248e88701917c85176c85b980d25448cdae52233d7e2e9e2a71a2a154a920f49100 languageName: node linkType: hard -"buffer@npm:^4.3.0": - version: 4.9.2 - resolution: "buffer@npm:4.9.2" +"@swagger-api/apidom-parser-adapter-workflows-json-1@npm:^1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-parser-adapter-workflows-json-1@npm:1.0.0-beta.5" dependencies: - base64-js: ^1.0.2 - ieee754: ^1.1.4 - isarray: ^1.0.0 - checksum: 8801bc1ba08539f3be70eee307a8b9db3d40f6afbfd3cf623ab7ef41dffff1d0a31de0addbe1e66e0ca5f7193eeb667bfb1ecad3647f8f1b0750de07c13295c3 + "@babel/runtime-corejs3": ^7.20.7 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-workflows-1": ^1.0.0-beta.5 + "@swagger-api/apidom-parser-adapter-json": ^1.0.0-beta.5 + "@types/ramda": ~0.30.0 + ramda: ~0.30.0 + ramda-adjunct: ^5.0.0 + checksum: 8d8fc6f59daa023d4f1cdb10264f211d950d10193cbe655f14090a6951475f3f0445f969c042865c995238dfaea070c443f239fbbc6fca321926741455150fc4 languageName: node linkType: hard -"buffer@npm:^5.5.0": - version: 5.7.1 - resolution: "buffer@npm:5.7.1" +"@swagger-api/apidom-parser-adapter-workflows-yaml-1@npm:^1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-parser-adapter-workflows-yaml-1@npm:1.0.0-beta.5" dependencies: - base64-js: ^1.3.1 - ieee754: ^1.1.13 - checksum: e2cf8429e1c4c7b8cbd30834ac09bd61da46ce35f5c22a78e6c2f04497d6d25541b16881e30a019c6fd3154150650ccee27a308eff3e26229d788bbdeb08ab84 + "@babel/runtime-corejs3": ^7.20.7 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-workflows-1": ^1.0.0-beta.5 + "@swagger-api/apidom-parser-adapter-yaml-1-2": ^1.0.0-beta.5 + "@types/ramda": ~0.30.0 + ramda: ~0.30.0 + ramda-adjunct: ^5.0.0 + checksum: 5992747478d8e6b7f09894a58edad2063a8f6eca3c7ee5b2af399dcc5b0a5d7d01d0555eb02f47556e3299a3e59c9ac029c7c7f2217474dcac2eb9090f9ebd40 languageName: node linkType: hard -"buffer@npm:^6.0.3": - version: 6.0.3 - resolution: "buffer@npm:6.0.3" +"@swagger-api/apidom-parser-adapter-yaml-1-2@npm:^1.0.0-beta.3 <1.0.0-rc.0, @swagger-api/apidom-parser-adapter-yaml-1-2@npm:^1.0.0-beta.5": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-parser-adapter-yaml-1-2@npm:1.0.0-beta.5" dependencies: - base64-js: ^1.3.1 - ieee754: ^1.2.1 - checksum: 5ad23293d9a731e4318e420025800b42bf0d264004c0286c8cc010af7a270c7a0f6522e84f54b9ad65cbd6db20b8badbfd8d2ebf4f80fa03dab093b89e68c3f9 + "@babel/runtime-corejs3": ^7.20.7 + "@swagger-api/apidom-ast": ^1.0.0-beta.5 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-error": ^1.0.0-beta.5 + "@tree-sitter-grammars/tree-sitter-yaml": =0.7.0 + "@types/ramda": ~0.30.0 + node-gyp: latest + ramda: ~0.30.0 + ramda-adjunct: ^5.0.0 + tree-sitter: =0.22.1 + web-tree-sitter: =0.24.5 + checksum: 3bcfd8d08239d2cabb46f6c639f11d7175729caa059b1c439be7b95edaa5b7b54593e3e2e630de3267db6c0da1a5955204c127fa9aac82892650a444c19ed54f + languageName: node + linkType: hard + +"@swagger-api/apidom-reference@npm:>=1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-reference@npm:1.0.0-beta.5" + dependencies: + "@babel/runtime-corejs3": ^7.20.7 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-error": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-json-pointer": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-ns-asyncapi-2": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-ns-openapi-2": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-ns-openapi-3-0": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-ns-openapi-3-1": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-ns-workflows-1": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-parser-adapter-api-design-systems-json": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-parser-adapter-api-design-systems-yaml": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-parser-adapter-asyncapi-json-2": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-parser-adapter-asyncapi-yaml-2": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-parser-adapter-json": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-parser-adapter-openapi-json-2": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-parser-adapter-openapi-json-3-0": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-parser-adapter-openapi-json-3-1": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-parser-adapter-openapi-yaml-2": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-parser-adapter-openapi-yaml-3-0": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-parser-adapter-openapi-yaml-3-1": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-parser-adapter-workflows-json-1": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-parser-adapter-workflows-yaml-1": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-parser-adapter-yaml-1-2": ^1.0.0-beta.3 <1.0.0-rc.0 + "@types/ramda": ~0.30.0 + axios: ^1.7.4 + minimatch: ^7.4.3 + process: ^0.11.10 + ramda: ~0.30.0 + ramda-adjunct: ^5.0.0 + dependenciesMeta: + "@swagger-api/apidom-error": + optional: true + "@swagger-api/apidom-json-pointer": + optional: true + "@swagger-api/apidom-ns-asyncapi-2": + optional: true + "@swagger-api/apidom-ns-openapi-2": + optional: true + "@swagger-api/apidom-ns-openapi-3-0": + optional: true + "@swagger-api/apidom-ns-openapi-3-1": + optional: true + "@swagger-api/apidom-ns-workflows-1": + optional: true + "@swagger-api/apidom-parser-adapter-api-design-systems-json": + optional: true + "@swagger-api/apidom-parser-adapter-api-design-systems-yaml": + optional: true + "@swagger-api/apidom-parser-adapter-asyncapi-json-2": + optional: true + "@swagger-api/apidom-parser-adapter-asyncapi-yaml-2": + optional: true + "@swagger-api/apidom-parser-adapter-json": + optional: true + "@swagger-api/apidom-parser-adapter-openapi-json-2": + optional: true + "@swagger-api/apidom-parser-adapter-openapi-json-3-0": + optional: true + "@swagger-api/apidom-parser-adapter-openapi-json-3-1": + optional: true + "@swagger-api/apidom-parser-adapter-openapi-yaml-2": + optional: true + "@swagger-api/apidom-parser-adapter-openapi-yaml-3-0": + optional: true + "@swagger-api/apidom-parser-adapter-openapi-yaml-3-1": + optional: true + "@swagger-api/apidom-parser-adapter-workflows-json-1": + optional: true + "@swagger-api/apidom-parser-adapter-workflows-yaml-1": + optional: true + "@swagger-api/apidom-parser-adapter-yaml-1-2": + optional: true + checksum: 990d7bf29a5e18f21534149a38c7ae2fc8a0a040cca20c7aea4d241e3b0551e48af1d32d560ef8b80edd80b5369d0a1b7cb7a7a49aa089d984f535058381314a languageName: node linkType: hard -"buildcheck@npm:~0.0.6": - version: 0.0.6 - resolution: "buildcheck@npm:0.0.6" - checksum: ad61759dc98d62e931df2c9f54ccac7b522e600c6e13bdcfdc2c9a872a818648c87765ee209c850f022174da4dd7c6a450c00357c5391705d26b9c5807c2a076 +"@swc/core-darwin-arm64@npm:1.10.1": + version: 1.10.1 + resolution: "@swc/core-darwin-arm64@npm:1.10.1" + conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"builtin-status-codes@npm:^3.0.0": - version: 3.0.0 - resolution: "builtin-status-codes@npm:3.0.0" - checksum: 1119429cf4b0d57bf76b248ad6f529167d343156ebbcc4d4e4ad600484f6bc63002595cbb61b67ad03ce55cd1d3c4711c03bbf198bf24653b8392420482f3773 +"@swc/core-darwin-x64@npm:1.10.1": + version: 1.10.1 + resolution: "@swc/core-darwin-x64@npm:1.10.1" + conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"bundle-name@npm:^4.1.0": - version: 4.1.0 - resolution: "bundle-name@npm:4.1.0" - dependencies: - run-applescript: ^7.0.0 - checksum: 1d966c8d2dbf4d9d394e53b724ac756c2414c45c01340b37743621f59cc565a435024b394ddcb62b9b335d1c9a31f4640eb648c3fec7f97ee74dc0694c9beb6c +"@swc/core-linux-arm-gnueabihf@npm:1.10.1": + version: 1.10.1 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.10.1" + conditions: os=linux & cpu=arm languageName: node linkType: hard -"byline@npm:^5.0.0": - version: 5.0.0 - resolution: "byline@npm:5.0.0" - checksum: 737ca83e8eda2976728dae62e68bc733aea095fab08db4c6f12d3cee3cf45b6f97dce45d1f6b6ff9c2c947736d10074985b4425b31ce04afa1985a4ef3d334a7 +"@swc/core-linux-arm64-gnu@npm:1.10.1": + version: 1.10.1 + resolution: "@swc/core-linux-arm64-gnu@npm:1.10.1" + conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"bytes@npm:3.0.0": - version: 3.0.0 - resolution: "bytes@npm:3.0.0" - checksum: a2b386dd8188849a5325f58eef69c3b73c51801c08ffc6963eddc9be244089ba32d19347caf6d145c86f315ae1b1fc7061a32b0c1aa6379e6a719090287ed101 +"@swc/core-linux-arm64-musl@npm:1.10.1": + version: 1.10.1 + resolution: "@swc/core-linux-arm64-musl@npm:1.10.1" + conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"bytes@npm:3.1.2": - version: 3.1.2 - resolution: "bytes@npm:3.1.2" - checksum: e4bcd3948d289c5127591fbedf10c0b639ccbf00243504e4e127374a15c3bc8eed0d28d4aaab08ff6f1cf2abc0cce6ba3085ed32f4f90e82a5683ce0014e1b6e +"@swc/core-linux-x64-gnu@npm:1.10.1": + version: 1.10.1 + resolution: "@swc/core-linux-x64-gnu@npm:1.10.1" + conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"cacache@npm:^16.1.0": - version: 16.1.3 - resolution: "cacache@npm:16.1.3" - dependencies: - "@npmcli/fs": ^2.1.0 - "@npmcli/move-file": ^2.0.0 - chownr: ^2.0.0 - fs-minipass: ^2.1.0 - glob: ^8.0.1 - infer-owner: ^1.0.4 - lru-cache: ^7.7.1 - minipass: ^3.1.6 - minipass-collect: ^1.0.2 - minipass-flush: ^1.0.5 - minipass-pipeline: ^1.2.4 - mkdirp: ^1.0.4 - p-map: ^4.0.0 - promise-inflight: ^1.0.1 - rimraf: ^3.0.2 - ssri: ^9.0.0 - tar: ^6.1.11 - unique-filename: ^2.0.0 - checksum: d91409e6e57d7d9a3a25e5dcc589c84e75b178ae8ea7de05cbf6b783f77a5fae938f6e8fda6f5257ed70000be27a681e1e44829251bfffe4c10216002f8f14e6 +"@swc/core-linux-x64-musl@npm:1.10.1": + version: 1.10.1 + resolution: "@swc/core-linux-x64-musl@npm:1.10.1" + conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"cacache@npm:^18.0.0": - version: 18.0.4 - resolution: "cacache@npm:18.0.4" - dependencies: - "@npmcli/fs": ^3.1.0 - fs-minipass: ^3.0.0 - glob: ^10.2.2 - lru-cache: ^10.0.1 - minipass: ^7.0.3 - minipass-collect: ^2.0.1 - minipass-flush: ^1.0.5 - minipass-pipeline: ^1.2.4 - p-map: ^4.0.0 - ssri: ^10.0.0 - tar: ^6.1.11 - unique-filename: ^3.0.0 - checksum: b7422c113b4ec750f33beeca0f426a0024c28e3172f332218f48f963e5b970647fa1ac05679fe5bb448832c51efea9fda4456b9a95c3a1af1105fe6c1833cde2 +"@swc/core-win32-arm64-msvc@npm:1.10.1": + version: 1.10.1 + resolution: "@swc/core-win32-arm64-msvc@npm:1.10.1" + conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"cache-content-type@npm:^1.0.0": - version: 1.0.1 - resolution: "cache-content-type@npm:1.0.1" - dependencies: - mime-types: ^2.1.18 - ylru: ^1.2.0 - checksum: 18db4d59452669ccbfd7146a1510a37eb28e9eccf18ca7a4eb603dff2edc5cccdca7498fc3042a2978f76f11151fba486eb9eb69d9afa3fb124957870aef4fd3 +"@swc/core-win32-ia32-msvc@npm:1.10.1": + version: 1.10.1 + resolution: "@swc/core-win32-ia32-msvc@npm:1.10.1" + conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.6, call-bind@npm:^1.0.7": - version: 1.0.7 - resolution: "call-bind@npm:1.0.7" - dependencies: - es-define-property: ^1.0.0 - es-errors: ^1.3.0 - function-bind: ^1.1.2 - get-intrinsic: ^1.2.4 - set-function-length: ^1.2.1 - checksum: 295c0c62b90dd6522e6db3b0ab1ce26bdf9e7404215bda13cfee25b626b5ff1a7761324d58d38b1ef1607fc65aca2d06e44d2e18d0dfc6c14b465b00d8660029 +"@swc/core-win32-x64-msvc@npm:1.10.1": + version: 1.10.1 + resolution: "@swc/core-win32-x64-msvc@npm:1.10.1" + conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"call-me-maybe@npm:^1.0.1": - version: 1.0.2 - resolution: "call-me-maybe@npm:1.0.2" - checksum: 42ff2d0bed5b207e3f0122589162eaaa47ba618f79ad2382fe0ba14d9e49fbf901099a6227440acc5946f86a4953e8aa2d242b330b0a5de4d090bb18f8935cae +"@swc/core@npm:^1.3.46": + version: 1.10.1 + resolution: "@swc/core@npm:1.10.1" + dependencies: + "@swc/core-darwin-arm64": 1.10.1 + "@swc/core-darwin-x64": 1.10.1 + "@swc/core-linux-arm-gnueabihf": 1.10.1 + "@swc/core-linux-arm64-gnu": 1.10.1 + "@swc/core-linux-arm64-musl": 1.10.1 + "@swc/core-linux-x64-gnu": 1.10.1 + "@swc/core-linux-x64-musl": 1.10.1 + "@swc/core-win32-arm64-msvc": 1.10.1 + "@swc/core-win32-ia32-msvc": 1.10.1 + "@swc/core-win32-x64-msvc": 1.10.1 + "@swc/counter": ^0.1.3 + "@swc/types": ^0.1.17 + peerDependencies: + "@swc/helpers": "*" + dependenciesMeta: + "@swc/core-darwin-arm64": + optional: true + "@swc/core-darwin-x64": + optional: true + "@swc/core-linux-arm-gnueabihf": + optional: true + "@swc/core-linux-arm64-gnu": + optional: true + "@swc/core-linux-arm64-musl": + optional: true + "@swc/core-linux-x64-gnu": + optional: true + "@swc/core-linux-x64-musl": + optional: true + "@swc/core-win32-arm64-msvc": + optional: true + "@swc/core-win32-ia32-msvc": + optional: true + "@swc/core-win32-x64-msvc": + optional: true + peerDependenciesMeta: + "@swc/helpers": + optional: true + checksum: d0e0b0d21695df8434aff96c427727ae630c5883cdb49dc7e2aa84d36d1f5068200e728e1c2d3e17b32c20055eb00ad1bf8248a2ffa12c729bf03d3f1c67c1cf languageName: node linkType: hard -"callsites@npm:^3.0.0": - version: 3.1.0 - resolution: "callsites@npm:3.1.0" - checksum: 072d17b6abb459c2ba96598918b55868af677154bec7e73d222ef95a8fdb9bbf7dae96a8421085cdad8cd190d86653b5b6dc55a4484f2e5b2e27d5e0c3fc15b3 +"@swc/counter@npm:^0.1.3": + version: 0.1.3 + resolution: "@swc/counter@npm:0.1.3" + checksum: df8f9cfba9904d3d60f511664c70d23bb323b3a0803ec9890f60133954173047ba9bdeabce28cd70ba89ccd3fd6c71c7b0bd58be85f611e1ffbe5d5c18616598 languageName: node linkType: hard -"camel-case@npm:^4.1.2": - version: 4.1.2 - resolution: "camel-case@npm:4.1.2" +"@swc/helpers@npm:^0.5.0, @swc/helpers@npm:^0.5.8": + version: 0.5.15 + resolution: "@swc/helpers@npm:0.5.15" dependencies: - pascal-case: ^3.1.2 - tslib: ^2.0.3 - checksum: bcbd25cd253b3cbc69be3f535750137dbf2beb70f093bdc575f73f800acc8443d34fd52ab8f0a2413c34f1e8203139ffc88428d8863e4dfe530cfb257a379ad6 + tslib: ^2.8.0 + checksum: 1a9e0dbb792b2d1e0c914d69c201dbc96af3a0e6e6e8cf5a7f7d6a5d7b0e8b762915cd4447acb6b040e2ecc1ed49822875a7239f99a2d63c96c3c3407fb6fccf languageName: node linkType: hard -"camelcase@npm:^5.3.1": - version: 5.3.1 - resolution: "camelcase@npm:5.3.1" - checksum: e6effce26b9404e3c0f301498184f243811c30dfe6d0b9051863bd8e4034d09c8c2923794f280d6827e5aa055f6c434115ff97864a16a963366fb35fd673024b +"@swc/jest@npm:^0.2.22": + version: 0.2.37 + resolution: "@swc/jest@npm:0.2.37" + dependencies: + "@jest/create-cache-key-function": ^29.7.0 + "@swc/counter": ^0.1.3 + jsonc-parser: ^3.2.0 + peerDependencies: + "@swc/core": "*" + checksum: 8d9a16404068c7f7d0548bc62f9d1465592178affbc7fe105dd59d463975d82cdcab2e0582c2a542250e6d240c76828bdbc404c77c85dd4d81061eb720351c4a languageName: node linkType: hard -"camelcase@npm:^6.2.0": - version: 6.3.0 - resolution: "camelcase@npm:6.3.0" - checksum: 8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d +"@swc/types@npm:^0.1.17": + version: 0.1.17 + resolution: "@swc/types@npm:0.1.17" + dependencies: + "@swc/counter": ^0.1.3 + checksum: 6cc87b8ddfb540096abdf40bc29742df0b7d068f97c1ce6c32cd1b7073cde263ed7bc3bae1fba7bf0e1a0f5d63336e9fa092e05a54f6d9b3570df956d2acaff6 languageName: node linkType: hard -"caniuse-api@npm:^3.0.0": - version: 3.0.0 - resolution: "caniuse-api@npm:3.0.0" +"@tanstack/react-virtual@npm:^3.0.0-beta.60": + version: 3.11.2 + resolution: "@tanstack/react-virtual@npm:3.11.2" dependencies: - browserslist: ^4.0.0 - caniuse-lite: ^1.0.0 - lodash.memoize: ^4.1.2 - lodash.uniq: ^4.5.0 - checksum: db2a229383b20d0529b6b589dde99d7b6cb56ba371366f58cbbfa2929c9f42c01f873e2b6ef641d4eda9f0b4118de77dbb2805814670bdad4234bf08e720b0b4 + "@tanstack/virtual-core": 3.11.2 + peerDependencies: + 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: a1136da0ec4c2ecbd4f996d8b84f228f0b8d851b15806e01049a160ad1d9b2eef0e0a491035fe017c6f84a0e125334f69ea23b32c180df23614ea4a8eeb7490c languageName: node linkType: hard -"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001669": - version: 1.0.30001674 - resolution: "caniuse-lite@npm:1.0.30001674" - checksum: 05bbb4f9823b38ac157678be69c4ec4aa39fbbf6af3ffaffe89c8f5b118a1883d2e7c0065e9a71149061ab653bf332f2fa6256c195b16db85e49651b52f109df +"@tanstack/virtual-core@npm:3.11.2": + version: 3.11.2 + resolution: "@tanstack/virtual-core@npm:3.11.2" + checksum: b5c91662461e3edd1cba0efbaa89e1d061c8bb605bb78d1e87e2a687335c740a731c96a81798b05491df4882ff2fbd27b312f5e7440e4f9d553a81fb2283156a languageName: node linkType: hard -"caseless@npm:~0.12.0": - version: 0.12.0 - resolution: "caseless@npm:0.12.0" - checksum: b43bd4c440aa1e8ee6baefee8063b4850fd0d7b378f6aabc796c9ec8cb26d27fb30b46885350777d9bd079c5256c0e1329ad0dc7c2817e0bb466810ebb353751 +"@testing-library/dom@npm:^10.0.0": + version: 10.4.0 + resolution: "@testing-library/dom@npm:10.4.0" + dependencies: + "@babel/code-frame": ^7.10.4 + "@babel/runtime": ^7.12.5 + "@types/aria-query": ^5.0.1 + aria-query: 5.3.0 + chalk: ^4.1.0 + dom-accessibility-api: ^0.5.9 + lz-string: ^1.5.0 + pretty-format: ^27.0.2 + checksum: bb128b90be0c8cd78c5f5e67aa45f53de614cc048a2b50b230e736ec710805ac6c73375af354b83c74d710b3928d52b83a273a4cb89de4eb3efe49e91e706837 languageName: node linkType: hard -"chalk@npm:2.4.2, chalk@npm:^2.4.2": - version: 2.4.2 - resolution: "chalk@npm:2.4.2" +"@testing-library/dom@npm:^9.0.0": + version: 9.3.4 + resolution: "@testing-library/dom@npm:9.3.4" dependencies: - ansi-styles: ^3.2.1 - escape-string-regexp: ^1.0.5 - supports-color: ^5.3.0 - checksum: ec3661d38fe77f681200f878edbd9448821924e0f93a9cefc0e26a33b145f1027a2084bf19967160d11e1f03bfe4eaffcabf5493b89098b2782c3fe0b03d80c2 + "@babel/code-frame": ^7.10.4 + "@babel/runtime": ^7.12.5 + "@types/aria-query": ^5.0.1 + aria-query: 5.1.3 + chalk: ^4.1.0 + dom-accessibility-api: ^0.5.9 + lz-string: ^1.5.0 + pretty-format: ^27.0.2 + checksum: dfd6fb0d6c7b4dd716ba3c47309bc9541b4a55772cb61758b4f396b3785efe2dbc75dc63423545c039078c7ffcc5e4b8c67c2db1b6af4799580466036f70026f languageName: node linkType: hard -"chalk@npm:3.0.0": - version: 3.0.0 - resolution: "chalk@npm:3.0.0" +"@testing-library/jest-dom@npm:^6.0.0": + version: 6.6.3 + resolution: "@testing-library/jest-dom@npm:6.6.3" dependencies: - ansi-styles: ^4.1.0 - supports-color: ^7.1.0 - checksum: 8e3ddf3981c4da405ddbd7d9c8d91944ddf6e33d6837756979f7840a29272a69a5189ecae0ff84006750d6d1e92368d413335eab4db5476db6e6703a1d1e0505 + "@adobe/css-tools": ^4.4.0 + aria-query: ^5.0.0 + chalk: ^3.0.0 + css.escape: ^1.5.1 + dom-accessibility-api: ^0.6.3 + lodash: ^4.17.21 + redent: ^3.0.0 + checksum: c1dc4260b05309a0084416639006cd105849acc5b102bef682a3b19bd6fce07ff6762085fc7f2599546c995a2fc66fdb1d70e50e22a634a0098524056cc9e511 languageName: node linkType: hard -"chalk@npm:4.1.2, chalk@npm:^4.0.0, chalk@npm:^4.1.0, chalk@npm:^4.1.1, chalk@npm:^4.1.2": - version: 4.1.2 - resolution: "chalk@npm:4.1.2" +"@testing-library/react@npm:^14.0.0": + version: 14.3.1 + resolution: "@testing-library/react@npm:14.3.1" dependencies: - ansi-styles: ^4.1.0 - supports-color: ^7.1.0 - checksum: fe75c9d5c76a7a98d45495b91b2172fa3b7a09e0cc9370e5c8feb1c567b85c4288e2b3fded7cfdd7359ac28d6b3844feb8b82b8686842e93d23c827c417e83fc + "@babel/runtime": ^7.12.5 + "@testing-library/dom": ^9.0.0 + "@types/react-dom": ^18.0.0 + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + checksum: b057d4c9db5a523acfc24d7bc4665a924ab8d6f252c7f51eecf7dd30f1239413e1134925fd5cc9cbdef80496af64c04e6719b2081f89fe05ba87e8c6305bcc16 languageName: node linkType: hard -"char-regex@npm:^1.0.2": - version: 1.0.2 - resolution: "char-regex@npm:1.0.2" - checksum: b563e4b6039b15213114626621e7a3d12f31008bdce20f9c741d69987f62aeaace7ec30f6018890ad77b2e9b4d95324c9f5acfca58a9441e3b1dcdd1e2525d17 +"@testing-library/react@npm:^15.0.0": + version: 15.0.7 + resolution: "@testing-library/react@npm:15.0.7" + dependencies: + "@babel/runtime": ^7.12.5 + "@testing-library/dom": ^10.0.0 + "@types/react-dom": ^18.0.0 + peerDependencies: + "@types/react": ^18.0.0 + react: ^18.0.0 + react-dom: ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: eb33fd82eb811bb8612aa154e430a2c1c251d5ed45a477ef57fe20095db494ea7dcfa6b1e1e2bffb0c7ee10c86e408745d95a879be8ca8fbe301bb91e5f2e5db languageName: node linkType: hard -"chardet@npm:^0.7.0": - version: 0.7.0 - resolution: "chardet@npm:0.7.0" - checksum: 6fd5da1f5d18ff5712c1e0aed41da200d7c51c28f11b36ee3c7b483f3696dabc08927fc6b227735eb8f0e1215c9a8abd8154637f3eff8cada5959df7f58b024d +"@testing-library/react@npm:^16.0.0": + version: 16.1.0 + resolution: "@testing-library/react@npm:16.1.0" + dependencies: + "@babel/runtime": ^7.12.5 + peerDependencies: + "@testing-library/dom": ^10.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: 5dc8e7abda23d108c29f43cdacd43fad750e981ee87ee8902fb349a2683f2f774ef1136f2d3ef3d9efb87e8b04426c43d7b46e95511cd7c9d37b10c3bdd3e9e2 languageName: node linkType: hard -"check-types@npm:^11.2.3": - version: 11.2.3 - resolution: "check-types@npm:11.2.3" - checksum: f99ff09ae65e63cfcfa40a1275c0a70d8c43ffbf9ac35095f3bf030cc70361c92e075a9975a1144329e50b4fe4620be6bedb4568c18abc96071a3e23aed3ed8e +"@testing-library/user-event@npm:^14.0.0": + version: 14.5.2 + resolution: "@testing-library/user-event@npm:14.5.2" + peerDependencies: + "@testing-library/dom": ">=7.21.4" + checksum: d76937dffcf0082fbf3bb89eb2b81a31bf5448048dd61c33928c5f10e33a58e035321d39145cefd469bb5a499c68a5b4086b22f1a44e3e7c7e817dc5f6782867 languageName: node linkType: hard -"chokidar@npm:^3.3.1, chokidar@npm:^3.4.2, chokidar@npm:^3.5.2, chokidar@npm:^3.5.3, chokidar@npm:^3.6.0": - version: 3.6.0 - resolution: "chokidar@npm:3.6.0" - dependencies: - anymatch: ~3.1.2 - braces: ~3.0.2 - fsevents: ~2.3.2 - glob-parent: ~5.1.2 - is-binary-path: ~2.1.0 - is-glob: ~4.0.1 - normalize-path: ~3.0.0 - readdirp: ~3.6.0 - dependenciesMeta: - fsevents: - optional: true - checksum: d2f29f499705dcd4f6f3bbed79a9ce2388cf530460122eed3b9c48efeab7a4e28739c6551fd15bec9245c6b9eeca7a32baa64694d64d9b6faeb74ddb8c4a413d +"@tokenizer/token@npm:^0.3.0": + version: 0.3.0 + resolution: "@tokenizer/token@npm:0.3.0" + checksum: 1d575d02d2a9f0c5a4ca5180635ebd2ad59e0f18b42a65f3d04844148b49b3db35cf00b6012a1af2d59c2ab3caca59451c5689f747ba8667ee586ad717ee58e1 languageName: node linkType: hard -"chownr@npm:^1.1.1": - version: 1.1.4 - resolution: "chownr@npm:1.1.4" - checksum: 115648f8eb38bac5e41c3857f3e663f9c39ed6480d1349977c4d96c95a47266fcacc5a5aabf3cb6c481e22d72f41992827db47301851766c4fd77ac21a4f081d +"@tootallnate/once@npm:1": + version: 1.1.2 + resolution: "@tootallnate/once@npm:1.1.2" + checksum: e1fb1bbbc12089a0cb9433dc290f97bddd062deadb6178ce9bcb93bb7c1aecde5e60184bc7065aec42fe1663622a213493c48bbd4972d931aae48315f18e1be9 languageName: node linkType: hard -"chownr@npm:^2.0.0": +"@tootallnate/once@npm:2": version: 2.0.0 - resolution: "chownr@npm:2.0.0" - checksum: c57cf9dd0791e2f18a5ee9c1a299ae6e801ff58fee96dc8bfd0dcb4738a6ce58dd252a3605b1c93c6418fe4f9d5093b28ffbf4d66648cb2a9c67eaef9679be2f + resolution: "@tootallnate/once@npm:2.0.0" + checksum: ad87447820dd3f24825d2d947ebc03072b20a42bfc96cbafec16bff8bbda6c1a81fcb0be56d5b21968560c5359a0af4038a68ba150c3e1694fe4c109a063bed8 languageName: node linkType: hard -"chrome-trace-event@npm:^1.0.2": - version: 1.0.4 - resolution: "chrome-trace-event@npm:1.0.4" - checksum: fcbbd9dd0cd5b48444319007cc0c15870fd8612cc0df320908aa9d5e8a244084d48571eb28bf3c58c19327d2c5838f354c2d89fac3956d8e992273437401ac19 +"@tootallnate/quickjs-emscripten@npm:^0.23.0": + version: 0.23.0 + resolution: "@tootallnate/quickjs-emscripten@npm:0.23.0" + checksum: c350a2947ffb80b22e14ff35099fd582d1340d65723384a0fd0515e905e2534459ad2f301a43279a37308a27c99273c932e64649abd57d0bb3ca8c557150eccc languageName: node linkType: hard -"ci-info@npm:^3.2.0, ci-info@npm:^3.7.0": - version: 3.9.0 - resolution: "ci-info@npm:3.9.0" - checksum: 6b19dc9b2966d1f8c2041a838217299718f15d6c4b63ae36e4674edd2bee48f780e94761286a56aa59eb305a85fbea4ddffb7630ec063e7ec7e7e5ad42549a87 +"@tree-sitter-grammars/tree-sitter-yaml@npm:=0.7.0": + version: 0.7.0 + resolution: "@tree-sitter-grammars/tree-sitter-yaml@npm:0.7.0" + dependencies: + node-addon-api: ^8.3.0 + node-gyp: latest + node-gyp-build: ^4.8.4 + peerDependencies: + tree-sitter: ^0.22.1 + peerDependenciesMeta: + tree-sitter: + optional: true + checksum: e1483d30b3f7604b111a86f854522a5dc880f2d7fb552150628f5186063fb537631d696fc1713da040a6d4bbac8fbf8b4a7eb5cb1d72d1cfb72af1f849899961 languageName: node linkType: hard -"cipher-base@npm:^1.0.0, cipher-base@npm:^1.0.1, cipher-base@npm:^1.0.3": - version: 1.0.4 - resolution: "cipher-base@npm:1.0.4" +"@trendyol-js/openstack-swift-sdk@npm:^0.0.7": + version: 0.0.7 + resolution: "@trendyol-js/openstack-swift-sdk@npm:0.0.7" dependencies: - inherits: ^2.0.1 - safe-buffer: ^5.0.1 - checksum: 47d3568dbc17431a339bad1fe7dff83ac0891be8206911ace3d3b818fc695f376df809bea406e759cdea07fff4b454fa25f1013e648851bec790c1d75763032e + agentkeepalive: ^4.1.4 + axios: ^1.0.0 + axios-cached-dns-resolve: 0.5.2 + file-type: ^16.5.4 + checksum: 06d39c350d9c70a4fee0ff7bc12f29784a92e162b5a72dd28aacccfa523826f113d599cbb706b631f534c2dcb48cc252078e853e3dfa953c6223606d052f64b8 languageName: node linkType: hard -"cjs-module-lexer@npm:^1.0.0": - version: 1.4.1 - resolution: "cjs-module-lexer@npm:1.4.1" - checksum: 2556807a99aec1f9daac60741af96cd613a707f343174ae7967da46402c91dced411bf830d209f2e93be4cecea46fc75cecf1f17c799d7d8a9e1dd6204bfcd22 +"@trysound/sax@npm:0.2.0": + version: 0.2.0 + resolution: "@trysound/sax@npm:0.2.0" + checksum: 11226c39b52b391719a2a92e10183e4260d9651f86edced166da1d95f39a0a1eaa470e44d14ac685ccd6d3df7e2002433782872c0feeb260d61e80f21250e65c languageName: node linkType: hard -"clean-css@npm:^5.2.2": - version: 5.3.3 - resolution: "clean-css@npm:5.3.3" +"@ts-morph/common@npm:~0.24.0": + version: 0.24.0 + resolution: "@ts-morph/common@npm:0.24.0" dependencies: - source-map: ~0.6.0 - checksum: 941987c14860dd7d346d5cf121a82fd2caf8344160b1565c5387f7ccca4bbcaf885bace961be37c4f4713ce2d8c488dd89483c1add47bb779790edbfdcc79cbc + fast-glob: ^3.3.2 + minimatch: ^9.0.4 + mkdirp: ^3.0.1 + path-browserify: ^1.0.1 + checksum: 793bc8a47c93ab55c6c036f94480d3b0e948661aef4bb7dbc29279b1dda2fc4fce809a88e221537867a313541842e12d1ecbd32b4769688abe1303807ec09db6 languageName: node linkType: hard -"clean-git-ref@npm:^2.0.1": - version: 2.0.1 - resolution: "clean-git-ref@npm:2.0.1" - checksum: b25f585ed47040ea5d699d40a2bb84d1f35afd651f3fcc05fb077224358ffd3d7509fc9edbfc4570f1fc732c987e03ac7d8ec31524ac503ac35c53cb1f5e3bf9 +"@tsconfig/node10@npm:^1.0.7": + version: 1.0.11 + resolution: "@tsconfig/node10@npm:1.0.11" + checksum: 51fe47d55fe1b80ec35e6e5ed30a13665fd3a531945350aa74a14a1e82875fb60b350c2f2a5e72a64831b1b6bc02acb6760c30b3738b54954ec2dea82db7a267 languageName: node linkType: hard -"clean-stack@npm:^2.0.0": - version: 2.2.0 - resolution: "clean-stack@npm:2.2.0" - checksum: 2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68 +"@tsconfig/node12@npm:^1.0.7": + version: 1.0.11 + resolution: "@tsconfig/node12@npm:1.0.11" + checksum: 5ce29a41b13e7897a58b8e2df11269c5395999e588b9a467386f99d1d26f6c77d1af2719e407621412520ea30517d718d5192a32403b8dfcc163bf33e40a338a languageName: node linkType: hard -"cli-cursor@npm:^3.1.0": - version: 3.1.0 - resolution: "cli-cursor@npm:3.1.0" - dependencies: - restore-cursor: ^3.1.0 - checksum: 2692784c6cd2fd85cfdbd11f53aea73a463a6d64a77c3e098b2b4697a20443f430c220629e1ca3b195ea5ac4a97a74c2ee411f3807abf6df2b66211fec0c0a29 +"@tsconfig/node14@npm:^1.0.0": + version: 1.0.3 + resolution: "@tsconfig/node14@npm:1.0.3" + checksum: 19275fe80c4c8d0ad0abed6a96dbf00642e88b220b090418609c4376e1cef81bf16237bf170ad1b341452feddb8115d8dd2e5acdfdea1b27422071163dc9ba9d languageName: node linkType: hard -"cli-spinners@npm:^2.5.0": - version: 2.9.2 - resolution: "cli-spinners@npm:2.9.2" - checksum: 1bd588289b28432e4676cb5d40505cfe3e53f2e4e10fbe05c8a710a154d6fe0ce7836844b00d6858f740f2ffe67cdc36e0fce9c7b6a8430e80e6388d5aa4956c +"@tsconfig/node16@npm:^1.0.2": + version: 1.0.4 + resolution: "@tsconfig/node16@npm:1.0.4" + checksum: 202319785901f942a6e1e476b872d421baec20cf09f4b266a1854060efbf78cde16a4d256e8bc949d31e6cd9a90f1e8ef8fb06af96a65e98338a2b6b0de0a0ff languageName: node linkType: hard -"cli-width@npm:^3.0.0": - version: 3.0.0 - resolution: "cli-width@npm:3.0.0" - checksum: 4c94af3769367a70e11ed69aa6095f1c600c0ff510f3921ab4045af961820d57c0233acfa8b6396037391f31b4c397e1f614d234294f979ff61430a6c166c3f6 +"@types/argparse@npm:1.0.38": + version: 1.0.38 + resolution: "@types/argparse@npm:1.0.38" + checksum: 26ed7e3f1e3595efdb883a852f5205f971b798e4c28b7e30a32c5298eee596e8b45834ce831f014d250b9730819ab05acff5b31229666d3af4ba465b4697d0eb languageName: node linkType: hard -"cliui@npm:7.0.4, cliui@npm:^7.0.2": - version: 7.0.4 - resolution: "cliui@npm:7.0.4" - dependencies: - string-width: ^4.2.0 - strip-ansi: ^6.0.0 - wrap-ansi: ^7.0.0 - checksum: ce2e8f578a4813806788ac399b9e866297740eecd4ad1823c27fd344d78b22c5f8597d548adbcc46f0573e43e21e751f39446c5a5e804a12aace402b7a315d7f +"@types/aria-query@npm:^5.0.1": + version: 5.0.4 + resolution: "@types/aria-query@npm:5.0.4" + checksum: ad8b87e4ad64255db5f0a73bc2b4da9b146c38a3a8ab4d9306154334e0fc67ae64e76bfa298eebd1e71830591fb15987e5de7111bdb36a2221bdc379e3415fb0 languageName: node linkType: hard -"cliui@npm:^8.0.1": - version: 8.0.1 - resolution: "cliui@npm:8.0.1" - dependencies: - string-width: ^4.2.0 - strip-ansi: ^6.0.1 - wrap-ansi: ^7.0.0 - checksum: 79648b3b0045f2e285b76fb2e24e207c6db44323581e421c3acbd0e86454cba1b37aea976ab50195a49e7384b871e6dfb2247ad7dec53c02454ac6497394cb56 +"@types/aws-lambda@npm:^8.10.83": + version: 8.10.146 + resolution: "@types/aws-lambda@npm:8.10.146" + checksum: bc200f22c2914b9a81e7e52343ed6c0e829bed1af63a530d190ba6b65370656381763db10aebf8c4fba66d6e1b69fe1bd2b008fa58652b2ddf8c3edfbe1fa194 languageName: node linkType: hard -"clone@npm:^1.0.2": - version: 1.0.4 - resolution: "clone@npm:1.0.4" - checksum: d06418b7335897209e77bdd430d04f882189582e67bd1f75a04565f3f07f5b3f119a9d670c943b6697d0afb100f03b866b3b8a1f91d4d02d72c4ecf2bb64b5dd +"@types/babel__core@npm:^7.1.14": + version: 7.20.5 + resolution: "@types/babel__core@npm:7.20.5" + dependencies: + "@babel/parser": ^7.20.7 + "@babel/types": ^7.20.7 + "@types/babel__generator": "*" + "@types/babel__template": "*" + "@types/babel__traverse": "*" + checksum: a3226f7930b635ee7a5e72c8d51a357e799d19cbf9d445710fa39ab13804f79ab1a54b72ea7d8e504659c7dfc50675db974b526142c754398d7413aa4bc30845 languageName: node linkType: hard -"cluster-key-slot@npm:^1.1.0": - version: 1.1.2 - resolution: "cluster-key-slot@npm:1.1.2" - checksum: be0ad2d262502adc998597e83f9ded1b80f827f0452127c5a37b22dfca36bab8edf393f7b25bb626006fb9fb2436106939ede6d2d6ecf4229b96a47f27edd681 +"@types/babel__generator@npm:*": + version: 7.6.8 + resolution: "@types/babel__generator@npm:7.6.8" + dependencies: + "@babel/types": ^7.0.0 + checksum: 5b332ea336a2efffbdeedb92b6781949b73498606ddd4205462f7d96dafd45ff3618770b41de04c4881e333dd84388bfb8afbdf6f2764cbd98be550d85c6bb48 languageName: node linkType: hard -"co@npm:^4.6.0": - version: 4.6.0 - resolution: "co@npm:4.6.0" - checksum: 5210d9223010eb95b29df06a91116f2cf7c8e0748a9013ed853b53f362ea0e822f1e5bb054fb3cefc645239a4cf966af1f6133a3b43f40d591f3b68ed6cf0510 +"@types/babel__template@npm:*": + version: 7.4.4 + resolution: "@types/babel__template@npm:7.4.4" + dependencies: + "@babel/parser": ^7.1.0 + "@babel/types": ^7.0.0 + checksum: d7a02d2a9b67e822694d8e6a7ddb8f2b71a1d6962dfd266554d2513eefbb205b33ca71a0d163b1caea3981ccf849211f9964d8bd0727124d18ace45aa6c9ae29 languageName: node linkType: hard -"code-block-writer@npm:^13.0.1": - version: 13.0.3 - resolution: "code-block-writer@npm:13.0.3" - checksum: 8e234f0ec2db9625d5efb9f05bdae79da6559bb4d9df94a6aa79a89a7b5ae25093b70d309fc5122840c9c07995cb14b4dd3f98a30f8878e3a3372e177df79454 +"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.6": + version: 7.20.6 + resolution: "@types/babel__traverse@npm:7.20.6" + dependencies: + "@babel/types": ^7.20.7 + checksum: 2bdc65eb62232c2d5c1086adeb0c31e7980e6fd7e50a3483b4a724a1a1029c84d9cb59749cf8de612f9afa2bc14c85b8f50e64e21f8a4398fa77eb9059a4283c languageName: node linkType: hard -"codeowners-utils@npm:^1.0.2": - version: 1.0.2 - resolution: "codeowners-utils@npm:1.0.2" +"@types/body-parser@npm:*": + version: 1.19.5 + resolution: "@types/body-parser@npm:1.19.5" dependencies: - cross-spawn: ^7.0.2 - find-up: ^4.1.0 - ignore: ^5.1.4 - locate-path: ^5.0.0 - checksum: 1e1c1f271ad4d4b4b25f6d19fc61f177f010bfb95de9af26662bb09c2f4f5572c1f3c8e9552aff15924f1c97058812bd5b5064d1eea721cc70e17490dae3fb02 + "@types/connect": "*" + "@types/node": "*" + checksum: 1e251118c4b2f61029cc43b0dc028495f2d1957fe8ee49a707fb940f86a9bd2f9754230805598278fe99958b49e9b7e66eec8ef6a50ab5c1f6b93e1ba2aaba82 languageName: node linkType: hard -"codeowners@npm:^5.1.1": - version: 5.1.1 - resolution: "codeowners@npm:5.1.1" - dependencies: - "@nodelib/fs.walk": ^1.2.6 - commander: ^6.2.1 - find-up: ^2.1.0 - ignore: ^3.3.10 - is-directory: ^0.3.1 - lodash.intersection: ^4.4.0 - lodash.maxby: ^4.6.0 - lodash.padend: ^4.6.1 - true-case-path: ^1.0.3 - bin: - codeowners: index.js - checksum: 9ffd67403e9d0defc5b9906dd986734c2c2a02cad758ab95b722558a1817f47925dd2bac58327b860edd66806bf5cd72a24b1f377fe6215cf0576fee3bfbac48 +"@types/bonjour@npm:^3.5.13": + version: 3.5.13 + resolution: "@types/bonjour@npm:3.5.13" + dependencies: + "@types/node": "*" + checksum: e827570e097bd7d625a673c9c208af2d1a22fa3885c0a1646533cf24394c839c3e5f60ac1bc60c0ddcc69c0615078c9fb2c01b42596c7c582d895d974f2409ee languageName: node linkType: hard -"collect-v8-coverage@npm:^1.0.0": +"@types/btoa-lite@npm:^1.0.0": version: 1.0.2 - resolution: "collect-v8-coverage@npm:1.0.2" - checksum: c10f41c39ab84629d16f9f6137bc8a63d332244383fc368caf2d2052b5e04c20cd1fd70f66fcf4e2422b84c8226598b776d39d5f2d2a51867cc1ed5d1982b4da + resolution: "@types/btoa-lite@npm:1.0.2" + checksum: 4c46b163c881a75522c7556dd7a7df8a0d4c680a45e8bac34e50864e1c2d9df8dc90b99f75199154c60ef2faff90896b7e5f11df6936c94167a3e5e1c6f4d935 languageName: node linkType: hard -"color-convert@npm:^1.9.0, color-convert@npm:^1.9.3": - version: 1.9.3 - resolution: "color-convert@npm:1.9.3" - dependencies: - color-name: 1.1.3 - checksum: fd7a64a17cde98fb923b1dd05c5f2e6f7aefda1b60d67e8d449f9328b4e53b228a428fd38bfeaeb2db2ff6b6503a776a996150b80cdf224062af08a5c8a3a203 +"@types/caseless@npm:*": + version: 0.12.5 + resolution: "@types/caseless@npm:0.12.5" + checksum: f6a3628add76d27005495914c9c3873a93536957edaa5b69c63b46fe10b4649a6fecf16b676c1695f46aab851da47ec6047dcf3570fa8d9b6883492ff6d074e0 languageName: node linkType: hard -"color-convert@npm:^2.0.1": - version: 2.0.1 - resolution: "color-convert@npm:2.0.1" +"@types/codemirror@npm:^0.0.90": + version: 0.0.90 + resolution: "@types/codemirror@npm:0.0.90" dependencies: - color-name: ~1.1.4 - checksum: 79e6bdb9fd479a205c71d89574fccfb22bd9053bd98c6c4d870d65c132e5e904e6034978e55b43d69fcaa7433af2016ee203ce76eeba9cfa554b373e7f7db336 + "@types/tern": "*" + checksum: f4594b9bc95306bbbe24d967e0749e28fe7b1e461c41621429b8c8bc295bda1704d99c1d7d5496efd987ee80d24f055155ddd742fa0c975cd69f279ccdaa0af9 languageName: node linkType: hard -"color-name@npm:1.1.3": - version: 1.1.3 - resolution: "color-name@npm:1.1.3" - checksum: 09c5d3e33d2105850153b14466501f2bfb30324a2f76568a408763a3b7433b0e50e5b4ab1947868e65cb101bb7cb75029553f2c333b6d4b8138a73fcc133d69d +"@types/codemirror@npm:^5.60.8": + version: 5.60.15 + resolution: "@types/codemirror@npm:5.60.15" + dependencies: + "@types/tern": "*" + checksum: cfad3f569de48fba3efa44fdfeba77933e231486a52cc80cff7ce6eeeed5b447a5bc2b11e2226bc00ccee332c661e53e35a15cf14eb835f434a6a402d9462f5f languageName: node linkType: hard -"color-name@npm:^1.0.0, color-name@npm:~1.1.4": - version: 1.1.4 - resolution: "color-name@npm:1.1.4" - checksum: b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610 +"@types/connect-history-api-fallback@npm:^1.5.4": + version: 1.5.4 + resolution: "@types/connect-history-api-fallback@npm:1.5.4" + dependencies: + "@types/express-serve-static-core": "*" + "@types/node": "*" + checksum: e1dee43b8570ffac02d2d47a2b4ba80d3ca0dd1840632dafb221da199e59dbe3778d3d7303c9e23c6b401f37c076935a5bc2aeae1c4e5feaefe1c371fe2073fd languageName: node linkType: hard -"color-string@npm:^1.6.0": - version: 1.9.1 - resolution: "color-string@npm:1.9.1" +"@types/connect@npm:*": + version: 3.4.38 + resolution: "@types/connect@npm:3.4.38" dependencies: - color-name: ^1.0.0 - simple-swizzle: ^0.2.2 - checksum: c13fe7cff7885f603f49105827d621ce87f4571d78ba28ef4a3f1a104304748f620615e6bf065ecd2145d0d9dad83a3553f52bb25ede7239d18e9f81622f1cc5 + "@types/node": "*" + checksum: 7eb1bc5342a9604facd57598a6c62621e244822442976c443efb84ff745246b10d06e8b309b6e80130026a396f19bf6793b7cecd7380169f369dac3bfc46fb99 languageName: node linkType: hard -"color-support@npm:^1.1.3": - version: 1.1.3 - resolution: "color-support@npm:1.1.3" - bin: - color-support: bin.js - checksum: 9b7356817670b9a13a26ca5af1c21615463b500783b739b7634a0c2047c16cef4b2865d7576875c31c3cddf9dd621fa19285e628f20198b233a5cfdda6d0793b +"@types/cookie@npm:^0.4.1": + version: 0.4.1 + resolution: "@types/cookie@npm:0.4.1" + checksum: 3275534ed69a76c68eb1a77d547d75f99fedc80befb75a3d1d03662fb08d697e6f8b1274e12af1a74c6896071b11510631ba891f64d30c78528d0ec45a9c1a18 languageName: node linkType: hard -"color@npm:^3.1.3": - version: 3.2.1 - resolution: "color@npm:3.2.1" +"@types/cookiejar@npm:^2.1.5": + version: 2.1.5 + resolution: "@types/cookiejar@npm:2.1.5" + checksum: 04d5990e87b6387532d15a87d9ec9b2eb783039291193863751dcfd7fc723a3b3aa30ce4c06b03975cba58632e933772f1ff031af23eaa3ac7f94e71afa6e073 + languageName: node + linkType: hard + +"@types/cors@npm:^2.8.6": + version: 2.8.17 + resolution: "@types/cors@npm:2.8.17" dependencies: - color-convert: ^1.9.3 - color-string: ^1.6.0 - checksum: f81220e8b774d35865c2561be921f5652117638dcda7ca4029262046e37fc2444ac7bbfdd110cf1fd9c074a4ee5eda8f85944ffbdda26186b602dd9bb05f6400 + "@types/node": "*" + checksum: 469bd85e29a35977099a3745c78e489916011169a664e97c4c3d6538143b0a16e4cc72b05b407dc008df3892ed7bf595f9b7c0f1f4680e169565ee9d64966bde languageName: node linkType: hard -"colord@npm:^2.9.1": - version: 2.9.3 - resolution: "colord@npm:2.9.3" - checksum: 95d909bfbcfd8d5605cbb5af56f2d1ce2b323990258fd7c0d2eb0e6d3bb177254d7fb8213758db56bb4ede708964f78c6b992b326615f81a18a6aaf11d64c650 +"@types/d3-array@npm:*, @types/d3-array@npm:^3.0.3": + version: 3.2.1 + resolution: "@types/d3-array@npm:3.2.1" + checksum: 8a41cee0969e53bab3f56cc15c4e6c9d76868d6daecb2b7d8c9ce71e0ececccc5a8239697cc52dadf5c665f287426de5c8ef31a49e7ad0f36e8846889a383df4 languageName: node linkType: hard -"colorette@npm:2.0.19": - version: 2.0.19 - resolution: "colorette@npm:2.0.19" - checksum: 888cf5493f781e5fcf54ce4d49e9d7d698f96ea2b2ef67906834bb319a392c667f9ec69f4a10e268d2946d13a9503d2d19b3abaaaf174e3451bfe91fb9d82427 +"@types/d3-axis@npm:*": + version: 3.0.6 + resolution: "@types/d3-axis@npm:3.0.6" + dependencies: + "@types/d3-selection": "*" + checksum: ea1065d9e6d134c04427763603cbe9d549b8b5785b8ae0d002b5b14a362619d5b8f5ee3c2fda8b36b7e5a413cbcd387e1a2d89898b919a9f0cc91ad4e67b5ab5 languageName: node linkType: hard -"colorette@npm:^2.0.10": - version: 2.0.20 - resolution: "colorette@npm:2.0.20" - checksum: 0c016fea2b91b733eb9f4bcdb580018f52c0bc0979443dad930e5037a968237ac53d9beb98e218d2e9235834f8eebce7f8e080422d6194e957454255bde71d3d +"@types/d3-brush@npm:*": + version: 3.0.6 + resolution: "@types/d3-brush@npm:3.0.6" + dependencies: + "@types/d3-selection": "*" + checksum: e5166bc53e5c914b1fed0a6ce55ca14d76ae11c5afd16b724b8ae47989e977c4af02bb07496d1ccd0a77f4ccd9a2ca7345e1d289bcfce16490fe4b39a9e0d170 languageName: node linkType: hard -"colorspace@npm:1.1.x": - version: 1.1.4 - resolution: "colorspace@npm:1.1.4" - dependencies: - color: ^3.1.3 - text-hex: 1.0.x - checksum: bb3934ef3c417e961e6d03d7ca60ea6e175947029bfadfcdb65109b01881a1c0ecf9c2b0b59abcd0ee4a0d7c1eae93beed01b0e65848936472270a0b341ebce8 +"@types/d3-chord@npm:*": + version: 3.0.6 + resolution: "@types/d3-chord@npm:3.0.6" + checksum: b511cf372ed8a0086d37a715c0d4aca811b614454e1f7c1561fbcd46863beaccdb115d274a7a992a30a8218393fbc3e1fdd7ca6e9d572e729a4570002c327083 languageName: node linkType: hard -"combined-stream@npm:^1.0.6, combined-stream@npm:^1.0.8, combined-stream@npm:~1.0.6": - version: 1.0.8 - resolution: "combined-stream@npm:1.0.8" - dependencies: - delayed-stream: ~1.0.0 - checksum: 49fa4aeb4916567e33ea81d088f6584749fc90c7abec76fd516bf1c5aa5c79f3584b5ba3de6b86d26ddd64bae5329c4c7479343250cfe71c75bb366eae53bb7c +"@types/d3-color@npm:*": + version: 3.1.3 + resolution: "@types/d3-color@npm:3.1.3" + checksum: 8a0e79a709929502ec4effcee2c786465b9aec51b653ba0b5d05dbfec3e84f418270dd603002d94021885061ff592f614979193bd7a02ad76317f5608560e357 languageName: node linkType: hard -"command-exists@npm:^1.2.9": - version: 1.2.9 - resolution: "command-exists@npm:1.2.9" - checksum: 729ae3d88a2058c93c58840f30341b7f82688a573019535d198b57a4d8cb0135ced0ad7f52b591e5b28a90feb2c675080ce916e56254a0f7c15cb2395277cac3 +"@types/d3-contour@npm:*": + version: 3.0.6 + resolution: "@types/d3-contour@npm:3.0.6" + dependencies: + "@types/d3-array": "*" + "@types/geojson": "*" + checksum: 83c13eb0567e95d6675d6d81cbeab38d0899c5af70a7c69354e23e0860ddb2f3e911d2cacd33a8baa60ce7846b38785a337b2d7c8d2763a1340bfb999b4bd2ab languageName: node linkType: hard -"commander@npm:8.3.0, commander@npm:^8.3.0": - version: 8.3.0 - resolution: "commander@npm:8.3.0" - checksum: 0f82321821fc27b83bd409510bb9deeebcfa799ff0bf5d102128b500b7af22872c0c92cb6a0ebc5a4cf19c6b550fba9cedfa7329d18c6442a625f851377bacf0 +"@types/d3-delaunay@npm:*": + version: 6.0.4 + resolution: "@types/d3-delaunay@npm:6.0.4" + checksum: 502fe0eb91f7d05b0f57904d68028c24348a54b1e5458009caf662de995d0e59bd82cd701b4af0087d614ee9e456d415fe32d63c25272ca753bf12b3f27b2d77 languageName: node linkType: hard -"commander@npm:^10.0.0": - version: 10.0.1 - resolution: "commander@npm:10.0.1" - checksum: 436901d64a818295803c1996cd856621a74f30b9f9e28a588e726b2b1670665bccd7c1a77007ebf328729f0139838a88a19265858a0fa7a8728c4656796db948 +"@types/d3-dispatch@npm:*": + version: 3.0.6 + resolution: "@types/d3-dispatch@npm:3.0.6" + checksum: f82076c7d205885480d363c92c19b8e0d6b9e529a3a78ce772f96a7cc4cce01f7941141f148828337035fac9676b13e7440565530491d560fdf12e562cb56573 languageName: node linkType: hard -"commander@npm:^12.0.0": - version: 12.1.0 - resolution: "commander@npm:12.1.0" - checksum: 68e9818b00fc1ed9cdab9eb16905551c2b768a317ae69a5e3c43924c2b20ac9bb65b27e1cab36aeda7b6496376d4da908996ba2c0b5d79463e0fb1e77935d514 +"@types/d3-drag@npm:*": + version: 3.0.7 + resolution: "@types/d3-drag@npm:3.0.7" + dependencies: + "@types/d3-selection": "*" + checksum: 1107cb1667ead79073741c06ea4a9e8e4551698f6c9c60821e327a6aa30ca2ba0b31a6fe767af85a2e38a22d2305f6c45b714df15c2bba68adf58978223a5fc5 languageName: node linkType: hard -"commander@npm:^2.20.0": - version: 2.20.3 - resolution: "commander@npm:2.20.3" - checksum: ab8c07884e42c3a8dbc5dd9592c606176c7eb5c1ca5ff274bcf907039b2c41de3626f684ea75ccf4d361ba004bbaff1f577d5384c155f3871e456bdf27becf9e +"@types/d3-dsv@npm:*": + version: 3.0.7 + resolution: "@types/d3-dsv@npm:3.0.7" + checksum: 5025e01459827d09d14e0d00281995a04042ce9e3e76444c5a65466c1d29649d82cbfaa9251e33837bf576f5c587525d8d8ff5aacc6bd3b831824d54449261b9 languageName: node linkType: hard -"commander@npm:^4.0.0, commander@npm:^4.1.1": - version: 4.1.1 - resolution: "commander@npm:4.1.1" - checksum: d7b9913ff92cae20cb577a4ac6fcc121bd6223319e54a40f51a14740a681ad5c574fd29a57da478a5f234a6fa6c52cbf0b7c641353e03c648b1ae85ba670b977 +"@types/d3-ease@npm:*, @types/d3-ease@npm:^3.0.0": + version: 3.0.2 + resolution: "@types/d3-ease@npm:3.0.2" + checksum: 0885219966294bfc99548f37297e1c75e75da812a5f3ec941977ebb57dcab0a25acec5b2bbd82d09a49d387daafca08521ca269b7e4c27ddca7768189e987b54 languageName: node linkType: hard -"commander@npm:^6.2.1": - version: 6.2.1 - resolution: "commander@npm:6.2.1" - checksum: d7090410c0de6bc5c67d3ca41c41760d6d268f3c799e530aafb73b7437d1826bbf0d2a3edac33f8b57cc9887b4a986dce307fa5557e109be40eadb7c43b21742 +"@types/d3-fetch@npm:*": + version: 3.0.7 + resolution: "@types/d3-fetch@npm:3.0.7" + dependencies: + "@types/d3-dsv": "*" + checksum: e60cf60b25cbc49b2066ac2a3638f610c7379000562b0f499dd90fd57a8cb9740c24667a70496c2a66456d42867afeffb1722a75b26d95e7d7ee8667d96b0b36 languageName: node linkType: hard -"commander@npm:^7.2.0": - version: 7.2.0 - resolution: "commander@npm:7.2.0" - checksum: 53501cbeee61d5157546c0bef0fedb6cdfc763a882136284bed9a07225f09a14b82d2a84e7637edfd1a679fb35ed9502fd58ef1d091e6287f60d790147f68ddc +"@types/d3-force@npm:*": + version: 3.0.10 + resolution: "@types/d3-force@npm:3.0.10" + checksum: 0faf1321ddd85f7bf25769ee97513b380a897791ad1cd6c4282f09e0108e566132fad80f4c73cdb592a352139b22388d3c77458298a00f92ef72e27019fb33c7 languageName: node linkType: hard -"commander@npm:^9.1.0": - version: 9.5.0 - resolution: "commander@npm:9.5.0" - checksum: c7a3e27aa59e913b54a1bafd366b88650bc41d6651f0cbe258d4ff09d43d6a7394232a4dadd0bf518b3e696fdf595db1028a0d82c785b88bd61f8a440cecfade +"@types/d3-force@npm:^1.2.1": + version: 1.2.7 + resolution: "@types/d3-force@npm:1.2.7" + checksum: 9290f55beebcb4826b9b92dab2bb5204ca76a546ef5d84ded789f915605196da52d548f0a7b23c6e4327a1361096a20b096a9918148d1e0f3a10945a332b1844 languageName: node linkType: hard -"commondir@npm:^1.0.1": - version: 1.0.1 - resolution: "commondir@npm:1.0.1" - checksum: 59715f2fc456a73f68826285718503340b9f0dd89bfffc42749906c5cf3d4277ef11ef1cca0350d0e79204f00f1f6d83851ececc9095dc88512a697ac0b9bdcb +"@types/d3-format@npm:*": + version: 3.0.4 + resolution: "@types/d3-format@npm:3.0.4" + checksum: e69421cd93861a0c080084b0b23d4a5d6a427497559e46898189002fb756dae2c7c858b465308f6bcede7272b90e39ce8adab810bded2309035a5d9556c59134 languageName: node linkType: hard -"compare-versions@npm:4.1.4": - version: 4.1.4 - resolution: "compare-versions@npm:4.1.4" - checksum: c1617544b79c2f36a1d543c50efd0da1a994040294c8923218080bc0df46da83ca414e3378282e93cab073744995124946417d130d8987e8efb5d1a73c0c4ba6 +"@types/d3-geo@npm:*": + version: 3.1.0 + resolution: "@types/d3-geo@npm:3.1.0" + dependencies: + "@types/geojson": "*" + checksum: a4b2daa8a64012912ce7186891e8554af123925dca344c111b771e168a37477e02d504c6c94ee698440380e8c4f3f373d6755be97935da30eae0904f6745ce40 languageName: node linkType: hard -"component-emitter@npm:^1.3.0": - version: 1.3.1 - resolution: "component-emitter@npm:1.3.1" - checksum: 94550aa462c7bd5a61c1bc480e28554aa306066930152d1b1844a0dd3845d4e5db7e261ddec62ae184913b3e59b55a2ad84093b9d3596a8f17c341514d6c483d +"@types/d3-hierarchy@npm:*": + version: 3.1.7 + resolution: "@types/d3-hierarchy@npm:3.1.7" + checksum: 69746b3a65e0fe0ceb3ffcb1a8840a61e271eadb32eccb5034f0fce036d24801aef924ee45b99246580c9f7c81839ab0555f776a11773d82e860d522a2ff1c0e languageName: node linkType: hard -"compress-commons@npm:^6.0.2": - version: 6.0.2 - resolution: "compress-commons@npm:6.0.2" +"@types/d3-interpolate@npm:*, @types/d3-interpolate@npm:^3.0.1": + version: 3.0.4 + resolution: "@types/d3-interpolate@npm:3.0.4" dependencies: - crc-32: ^1.2.0 - crc32-stream: ^6.0.0 - is-stream: ^2.0.1 - normalize-path: ^3.0.0 - readable-stream: ^4.0.0 - checksum: 37d79a54f91344ecde352588e0a128f28ce619b085acd4f887defd76978a0640e3454a42c7dcadb0191bb3f971724ae4b1f9d6ef9620034aa0427382099ac946 + "@types/d3-color": "*" + checksum: efd2770e174e84fc7316fdafe03cf3688451f767dde1fa6211610137f495be7f3923db7e1723a6961a0e0e9ae0ed969f4f47c038189fa0beb1d556b447922622 languageName: node linkType: hard -"compressible@npm:~2.0.16": - version: 2.0.18 - resolution: "compressible@npm:2.0.18" - dependencies: - mime-db: ">= 1.43.0 < 2" - checksum: 58321a85b375d39230405654721353f709d0c1442129e9a17081771b816302a012471a9b8f4864c7dbe02eef7f2aaac3c614795197092262e94b409c9be108f0 +"@types/d3-path@npm:*": + version: 3.1.0 + resolution: "@types/d3-path@npm:3.1.0" + checksum: 1e81b56ed33ba1ac954a8c42c78c3fcf2716927fe5d01b2003591193ad3b639572a3dfcedd9bf78b6b73215a5cfb01cede8f25c936e95ac18fbe3858f9b62f5c languageName: node linkType: hard -"compression@npm:^1.7.4": - version: 1.7.4 - resolution: "compression@npm:1.7.4" - dependencies: - accepts: ~1.3.5 - bytes: 3.0.0 - compressible: ~2.0.16 - debug: 2.6.9 - on-headers: ~1.0.2 - safe-buffer: 5.1.2 - vary: ~1.1.2 - checksum: 35c0f2eb1f28418978615dc1bc02075b34b1568f7f56c62d60f4214d4b7cc00d0f6d282b5f8a954f59872396bd770b6b15ffd8aa94c67d4bce9b8887b906999b +"@types/d3-polygon@npm:*": + version: 3.0.2 + resolution: "@types/d3-polygon@npm:3.0.2" + checksum: 7cf1eadb54f02dd3617512b558f4c0f3811f8a6a8c887d9886981c3cc251db28b68329b2b0707d9f517231a72060adbb08855227f89bef6ef30caedc0a67cab2 languageName: node linkType: hard -"compute-gcd@npm:^1.2.1": - version: 1.2.1 - resolution: "compute-gcd@npm:1.2.1" - dependencies: - validate.io-array: ^1.0.3 - validate.io-function: ^1.0.2 - validate.io-integer-array: ^1.0.0 - checksum: 51cf33b75f7c8db5142fcb99a9d84a40260993fed8e02a7ab443834186c3ab99b3fd20b30ad9075a6a9d959d69df6da74dd3be8a59c78d9f2fe780ebda8242e1 +"@types/d3-quadtree@npm:*": + version: 3.0.6 + resolution: "@types/d3-quadtree@npm:3.0.6" + checksum: 631fb1a50dbe4fb0c97574891b180ec3d6a0f524bbd8aee8dfd44eda405e7ed1ca2b03d5568a35f697d09e5e4b598117e149236874b0c8764979a3d6242bb0bc languageName: node linkType: hard -"compute-lcm@npm:^1.1.2": - version: 1.1.2 - resolution: "compute-lcm@npm:1.1.2" - dependencies: - compute-gcd: ^1.2.1 - validate.io-array: ^1.0.3 - validate.io-function: ^1.0.2 - validate.io-integer-array: ^1.0.0 - checksum: d499ab57dcb48e8d0fd233b99844a06d1cc56115602c920c586e998ebba60293731f5b6976e8a1e83ae6cbfe86716f62d9432e8d94913fed8bd8352f447dc917 +"@types/d3-random@npm:*": + version: 3.0.3 + resolution: "@types/d3-random@npm:3.0.3" + checksum: 33285b57768a724d2466ac1deec002432805c9df3e475ffb7f7fec66681cfe3e18d2f68b7f8ba45f400b274907bbebfe8adff14c9a97ef1987e476135e784925 languageName: node linkType: hard -"concat-map@npm:0.0.1": - version: 0.0.1 - resolution: "concat-map@npm:0.0.1" - checksum: 902a9f5d8967a3e2faf138d5cb784b9979bad2e6db5357c5b21c568df4ebe62bcb15108af1b2253744844eb964fc023fbd9afbbbb6ddd0bcc204c6fb5b7bf3af +"@types/d3-scale-chromatic@npm:*": + version: 3.1.0 + resolution: "@types/d3-scale-chromatic@npm:3.1.0" + checksum: cb7b86deac077c7c217a52a3f658cdfb812cff8708404fbfe54918c03ead545e1df87df377e9c4eab21c9d6c1aeee6471320e02a5b6b27e2e3f786a12a82ab02 languageName: node linkType: hard -"concat-stream@npm:^2.0.0": - version: 2.0.0 - resolution: "concat-stream@npm:2.0.0" +"@types/d3-scale@npm:*, @types/d3-scale@npm:^4.0.2": + version: 4.0.8 + resolution: "@types/d3-scale@npm:4.0.8" dependencies: - buffer-from: ^1.0.0 - inherits: ^2.0.3 - readable-stream: ^3.0.2 - typedarray: ^0.0.6 - checksum: d7f75d48f0ecd356c1545d87e22f57b488172811b1181d96021c7c4b14ab8855f5313280263dca44bb06e5222f274d047da3e290a38841ef87b59719bde967c7 + "@types/d3-time": "*" + checksum: 3b1906da895564f73bb3d0415033d9a8aefe7c4f516f970176d5b2ff7a417bd27ae98486e9a9aa0472001dc9885a9204279a1973a985553bdb3ee9bbc1b94018 languageName: node linkType: hard -"concat-with-sourcemaps@npm:^1.1.0": - version: 1.1.0 - resolution: "concat-with-sourcemaps@npm:1.1.0" - dependencies: - source-map: ^0.6.1 - checksum: 57faa6f4a6f38a1846a58f96b2745ec8435755e0021f069e89085c651d091b78d9bc20807ea76c38c85021acca80dc2fa4cedda666aade169b602604215d25b9 +"@types/d3-selection@npm:*": + version: 3.0.11 + resolution: "@types/d3-selection@npm:3.0.11" + checksum: 4b76630f76dffdafc73cdc786d73e7b4c96f40546483074b3da0e7fe83fd7f5ed9bc6c50f79bcef83595f943dcc9ed6986953350f39371047af644cc39c41b43 languageName: node linkType: hard -"concurrently@npm:6.5.1": - version: 6.5.1 - resolution: "concurrently@npm:6.5.1" +"@types/d3-shape@npm:*, @types/d3-shape@npm:^3.1.0": + version: 3.1.6 + resolution: "@types/d3-shape@npm:3.1.6" dependencies: - chalk: ^4.1.0 - date-fns: ^2.16.1 - lodash: ^4.17.21 - rxjs: ^6.6.3 - spawn-command: ^0.0.2-1 - supports-color: ^8.1.0 - tree-kill: ^1.2.2 - yargs: ^16.2.0 - bin: - concurrently: bin/concurrently.js - checksum: 3f4d89b464fa5c9fb6f9489b46594c30ba54eff6ff10ab3cb5f30f64b74c83be664623a0f0cc731a3cb3f057a1f4a3292f7d3470c012a292c44aca31f214a3fa + "@types/d3-path": "*" + checksum: bd765be021019c43c8dca066a798a1de28a051d1213db6ca25f76c9e577da7ec40a592e3bda7628383ab48cb87164fe60b95eb5ec23761b2012bd0adb30c549a languageName: node linkType: hard -"connect-history-api-fallback@npm:^2.0.0": - version: 2.0.0 - resolution: "connect-history-api-fallback@npm:2.0.0" - checksum: dc5368690f4a5c413889792f8df70d5941ca9da44523cde3f87af0745faee5ee16afb8195434550f0504726642734f2683d6c07f8b460f828a12c45fbd4c9a68 +"@types/d3-time-format@npm:*": + version: 4.0.3 + resolution: "@types/d3-time-format@npm:4.0.3" + checksum: e981fc9780697a9d8c5d1ddf1167d9c6bc28e4e610afddff1384fe55e6eb52cb65309b2a0a1d4cf817413b0a80b9f1a652fe0b2cb8054ace4eafff80a6093aa5 languageName: node linkType: hard -"consola@npm:^2.15.0": - version: 2.15.3 - resolution: "consola@npm:2.15.3" - checksum: 8ef7a09b703ec67ac5c389a372a33b6dc97eda6c9876443a60d76a3076eea0259e7f67a4e54fd5a52f97df73690822d090cf8b7e102b5761348afef7c6d03e28 +"@types/d3-time@npm:*, @types/d3-time@npm:^3.0.0": + version: 3.0.4 + resolution: "@types/d3-time@npm:3.0.4" + checksum: 0c296884571ce70c4bbd4ea9cd1c93c0c8aee602c6c806b056187dd4ee49daf70c2f41da94b25ba0d796edf8ca83cbb87fe6d1cdda7ca669ab800170ece1c12b languageName: node linkType: hard -"console-browserify@npm:^1.1.0": - version: 1.2.0 - resolution: "console-browserify@npm:1.2.0" - checksum: 226591eeff8ed68e451dffb924c1fb750c654d54b9059b3b261d360f369d1f8f70650adecf2c7136656236a4bfeb55c39281b5d8a55d792ebbb99efd3d848d52 +"@types/d3-timer@npm:*, @types/d3-timer@npm:^3.0.0": + version: 3.0.2 + resolution: "@types/d3-timer@npm:3.0.2" + checksum: 1643eebfa5f4ae3eb00b556bbc509444d88078208ec2589ddd8e4a24f230dd4cf2301e9365947e70b1bee33f63aaefab84cd907822aae812b9bc4871b98ab0e1 languageName: node linkType: hard -"console-control-strings@npm:^1.1.0": - version: 1.1.0 - resolution: "console-control-strings@npm:1.1.0" - checksum: 8755d76787f94e6cf79ce4666f0c5519906d7f5b02d4b884cf41e11dcd759ed69c57da0670afd9236d229a46e0f9cf519db0cd829c6dca820bb5a5c3def584ed +"@types/d3-transition@npm:*": + version: 3.0.9 + resolution: "@types/d3-transition@npm:3.0.9" + dependencies: + "@types/d3-selection": "*" + checksum: c8608b1ac7cf09acfe387f3d41074631adcdfd7f2c8ca2efb378309adf0e9fc8469dbcf0d7a8c40fd1f03f2d2bf05fcda0cde7aa356ae8533a141dcab4dff221 languageName: node linkType: hard -"console.table@npm:0.10.0": - version: 0.10.0 - resolution: "console.table@npm:0.10.0" +"@types/d3-zoom@npm:*": + version: 3.0.8 + resolution: "@types/d3-zoom@npm:3.0.8" + dependencies: + "@types/d3-interpolate": "*" + "@types/d3-selection": "*" + checksum: a1685728949ed39faf8ce162cc13338639c57bc2fd4d55fc7902b2632cad2bc2a808941263e57ce6685647e8a6a0a556e173386a52d6bb74c9ed6195b68be3de + languageName: node + linkType: hard + +"@types/d3@npm:^7.4.0": + version: 7.4.3 + resolution: "@types/d3@npm:7.4.3" + dependencies: + "@types/d3-array": "*" + "@types/d3-axis": "*" + "@types/d3-brush": "*" + "@types/d3-chord": "*" + "@types/d3-color": "*" + "@types/d3-contour": "*" + "@types/d3-delaunay": "*" + "@types/d3-dispatch": "*" + "@types/d3-drag": "*" + "@types/d3-dsv": "*" + "@types/d3-ease": "*" + "@types/d3-fetch": "*" + "@types/d3-force": "*" + "@types/d3-format": "*" + "@types/d3-geo": "*" + "@types/d3-hierarchy": "*" + "@types/d3-interpolate": "*" + "@types/d3-path": "*" + "@types/d3-polygon": "*" + "@types/d3-quadtree": "*" + "@types/d3-random": "*" + "@types/d3-scale": "*" + "@types/d3-scale-chromatic": "*" + "@types/d3-selection": "*" + "@types/d3-shape": "*" + "@types/d3-time": "*" + "@types/d3-time-format": "*" + "@types/d3-timer": "*" + "@types/d3-transition": "*" + "@types/d3-zoom": "*" + checksum: 12234aa093c8661546168becdd8956e892b276f525d96f65a7b32fed886fc6a569fe5a1171bff26fef2a5663960635f460c9504a6f2d242ba281a2b6c8c6465c + languageName: node + linkType: hard + +"@types/dagre@npm:0.7.42": + version: 0.7.42 + resolution: "@types/dagre@npm:0.7.42" + checksum: c63a0e9155df7d00b4e3bd5a781a69a958cf7281d2fec90cbea0e553841cd41bef3b35c749b1b481811ac7d81d25eb8a8366ea17ac647a907828e399ccdce82d + languageName: node + linkType: hard + +"@types/debug@npm:^4.0.0, @types/debug@npm:^4.1.12, @types/debug@npm:^4.1.7": + version: 4.1.12 + resolution: "@types/debug@npm:4.1.12" dependencies: - easy-table: 1.1.0 - checksum: 4c1460e3105a5f7df5bfa372844104a20e487fc0fccc5821c169a39def3249759554fc132621074ad6695664a1a8d558dd385c0e7f290acb2eaca51466474bb9 + "@types/ms": "*" + checksum: 47876a852de8240bfdaf7481357af2b88cb660d30c72e73789abf00c499d6bc7cd5e52f41c915d1b9cd8ec9fef5b05688d7b7aef17f7f272c2d04679508d1053 languageName: node linkType: hard -"constants-browserify@npm:^1.0.0": - version: 1.0.0 - resolution: "constants-browserify@npm:1.0.0" - checksum: f7ac8c6d0b6e4e0c77340a1d47a3574e25abd580bfd99ad707b26ff7618596cf1a5e5ce9caf44715e9e01d4a5d12cb3b4edaf1176f34c19adb2874815a56e64f +"@types/deep-freeze@npm:^0.1.5": + version: 0.1.5 + resolution: "@types/deep-freeze@npm:0.1.5" + checksum: 7d46b4b24e50356f080eee19cf4fe08028114171b8142c49d3baffbac4db4dbc60a486432ccc5671d6f3f8f4e3678a386935c860931a29104765151e18e01c31 languageName: node linkType: hard -"content-disposition@npm:0.5.4, content-disposition@npm:~0.5.2": - version: 0.5.4 - resolution: "content-disposition@npm:0.5.4" +"@types/docker-modem@npm:*": + version: 3.0.6 + resolution: "@types/docker-modem@npm:3.0.6" dependencies: - safe-buffer: 5.2.1 - checksum: afb9d545e296a5171d7574fcad634b2fdf698875f4006a9dd04a3e1333880c5c0c98d47b560d01216fb6505a54a2ba6a843ee3a02ec86d7e911e8315255f56c3 + "@types/node": "*" + "@types/ssh2": "*" + checksum: cc58e8189f6ec5a2b8ca890207402178a97ddac8c80d125dc65d8ab29034b5db736de15e99b91b2d74e66d14e26e73b6b8b33216613dd15fd3aa6b82c11a83ed languageName: node linkType: hard -"content-type@npm:^1.0.4, content-type@npm:~1.0.4, content-type@npm:~1.0.5": - version: 1.0.5 - resolution: "content-type@npm:1.0.5" - checksum: 566271e0a251642254cde0f845f9dd4f9856e52d988f4eb0d0dcffbb7a1f8ec98de7a5215fc628f3bce30fe2fb6fd2bc064b562d721658c59b544e2d34ea2766 +"@types/dockerode@npm:^3.3.0, @types/dockerode@npm:^3.3.29": + version: 3.3.32 + resolution: "@types/dockerode@npm:3.3.32" + dependencies: + "@types/docker-modem": "*" + "@types/node": "*" + "@types/ssh2": "*" + checksum: 17bfa92511cdc6ab51a67cb4678931b43670feffd737ba593c3ff90a6f71673aa04f8a81524690dddc08b483628d657a338a176171ff131de9e0efba4c3ecc11 languageName: node linkType: hard -"convert-source-map@npm:^2.0.0": - version: 2.0.0 - resolution: "convert-source-map@npm:2.0.0" - checksum: 63ae9933be5a2b8d4509daca5124e20c14d023c820258e484e32dc324d34c2754e71297c94a05784064ad27615037ef677e3f0c00469fb55f409d2bb21261035 +"@types/dompurify@npm:^2.1.0": + version: 2.4.0 + resolution: "@types/dompurify@npm:2.4.0" + dependencies: + "@types/trusted-types": "*" + checksum: b48cd81e997794ebc390c7c5bef1a67ec14a6f2f0521973e07e06af186c7583abe114d94d24868c0632b9573f5bd77131a4b76f3fffdf089ba99a4e53dd46c39 languageName: node linkType: hard -"cookie-signature@npm:1.0.6": +"@types/es-aggregate-error@npm:^1.0.2": version: 1.0.6 - resolution: "cookie-signature@npm:1.0.6" - checksum: f4e1b0a98a27a0e6e66fd7ea4e4e9d8e038f624058371bf4499cfcd8f3980be9a121486995202ba3fca74fbed93a407d6d54d43a43f96fd28d0bd7a06761591a + resolution: "@types/es-aggregate-error@npm:1.0.6" + dependencies: + "@types/node": "*" + checksum: a5b2155f664a3460d3cbc1e84e76fc0f3e751c6cebb04bf79d38e2809f44a4ba6765b83761a1e5cc0bba1b7852f7ba4fae2231110dee6218405835024dd372ac languageName: node linkType: hard -"cookie@npm:0.7.1": - version: 0.7.1 - resolution: "cookie@npm:0.7.1" - checksum: cec5e425549b3650eb5c3498a9ba3cde0b9cd419e3b36e4b92739d30b4d89e0b678b98c1ddc209ce7cf958cd3215671fd6ac47aec21f10c2a0cc68abd399d8a7 +"@types/eslint-scope@npm:^3.7.7": + version: 3.7.7 + resolution: "@types/eslint-scope@npm:3.7.7" + dependencies: + "@types/eslint": "*" + "@types/estree": "*" + checksum: e2889a124aaab0b89af1bab5959847c5bec09809209255de0e63b9f54c629a94781daa04adb66bffcdd742f5e25a17614fb933965093c0eea64aacda4309380e languageName: node linkType: hard -"cookie@npm:^0.4.2": - version: 0.4.2 - resolution: "cookie@npm:0.4.2" - checksum: a00833c998bedf8e787b4c342defe5fa419abd96b32f4464f718b91022586b8f1bafbddd499288e75c037642493c83083da426c6a9080d309e3bd90fd11baa9b +"@types/eslint@npm:*": + version: 9.6.1 + resolution: "@types/eslint@npm:9.6.1" + dependencies: + "@types/estree": "*" + "@types/json-schema": "*" + checksum: c286e79707ab604b577cf8ce51d9bbb9780e3d6a68b38a83febe13fa05b8012c92de17c28532fac2b03d3c460123f5055d603a579685325246ca1c86828223e0 languageName: node linkType: hard -"cookie@npm:^0.6.0": - version: 0.6.0 - resolution: "cookie@npm:0.6.0" - checksum: f56a7d32a07db5458e79c726b77e3c2eff655c36792f2b6c58d351fb5f61531e5b1ab7f46987150136e366c65213cbe31729e02a3eaed630c3bf7334635fb410 +"@types/eslint@npm:^8.56.10": + version: 8.56.12 + resolution: "@types/eslint@npm:8.56.12" + dependencies: + "@types/estree": "*" + "@types/json-schema": "*" + checksum: 0f7710ee02a256c499514251f527f84de964bb29487db840408e4cde79283124a38935597636d2265756c34dd1d902e1b00ae78930d4a0b55111909cb7b80d84 languageName: node linkType: hard -"cookie@npm:^0.7.0": - version: 0.7.2 - resolution: "cookie@npm:0.7.2" - checksum: 9bf8555e33530affd571ea37b615ccad9b9a34febbf2c950c86787088eb00a8973690833b0f8ebd6b69b753c62669ea60cec89178c1fb007bf0749abed74f93e +"@types/estree@npm:*, @types/estree@npm:1.0.6, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.6": + version: 1.0.6 + resolution: "@types/estree@npm:1.0.6" + checksum: 8825d6e729e16445d9a1dd2fb1db2edc5ed400799064cd4d028150701031af012ba30d6d03fe9df40f4d7a437d0de6d2b256020152b7b09bde9f2e420afdffd9 languageName: node linkType: hard -"cookiejar@npm:^2.1.4": - version: 2.1.4 - resolution: "cookiejar@npm:2.1.4" - checksum: c4442111963077dc0e5672359956d6556a195d31cbb35b528356ce5f184922b99ac48245ac05ed86cf993f7df157c56da10ab3efdadfed79778a0d9b1b092d5b - languageName: node +"@types/express-serve-static-core@npm:*, @types/express-serve-static-core@npm:^5.0.0": + version: 5.0.2 + resolution: "@types/express-serve-static-core@npm:5.0.2" + dependencies: + "@types/node": "*" + "@types/qs": "*" + "@types/range-parser": "*" + "@types/send": "*" + checksum: 841229b63801b334729e56ec04b5023e084e2962d61dddc95b3508e2fc821e8550bd69c074b6cb0a1c57147eb324c4dc543103d0827e34077f7eb6d230d08a8f + languageName: node linkType: hard -"cookies@npm:~0.9.0": - version: 0.9.1 - resolution: "cookies@npm:0.9.1" +"@types/express-serve-static-core@npm:^4.17.33, @types/express-serve-static-core@npm:^4.17.5": + version: 4.19.6 + resolution: "@types/express-serve-static-core@npm:4.19.6" dependencies: - depd: ~2.0.0 - keygrip: ~1.1.0 - checksum: 213e4d14847b582fbd8a003203d3621a4b9fa792a315c37954e89332d38fac5bcc34ba92ef316ad6d5fe28f0187aaa115927fbbe2080744ad1707a93b4313247 + "@types/node": "*" + "@types/qs": "*" + "@types/range-parser": "*" + "@types/send": "*" + checksum: b0576eddc2d25ccdf10e68ba09598b87a4d7b2ad04a81dc847cb39fe56beb0b6a5cc017b1e00aa0060cb3b38e700384ce96d291a116a0f1e54895564a104aae9 languageName: node linkType: hard -"core-js-compat@npm:^3.38.0, core-js-compat@npm:^3.38.1": - version: 3.38.1 - resolution: "core-js-compat@npm:3.38.1" +"@types/express@npm:*": + version: 5.0.0 + resolution: "@types/express@npm:5.0.0" dependencies: - browserslist: ^4.23.3 - checksum: a0a5673bcd59f588f0cd0b59cdacd4712b82909738a87406d334dd412eb3d273ae72b275bdd8e8fef63fca9ef12b42ed651be139c7c44c8a1acb423c8906992e + "@types/body-parser": "*" + "@types/express-serve-static-core": ^5.0.0 + "@types/qs": "*" + "@types/serve-static": "*" + checksum: ef68d8e2b7593c930093b1e79bf4df15413773508c9acd6a1a933ed7017f2a4892a8d128b2222d7eab9a3fa43181067a378c2600d9258bd7ae917f170e962df4 languageName: node linkType: hard -"core-js-pure@npm:^3.23.3": - version: 3.38.1 - resolution: "core-js-pure@npm:3.38.1" - checksum: 95ca2e75df371571b0d41cba81e1f6335a2ba1f080e80f8edfa124ad3041880fe72e10f2144527a700a3d993dbf9f7cada3e04a927a66604bc49d0c4951567fb +"@types/express@npm:4.17.21, @types/express@npm:^4.17.21, @types/express@npm:^4.17.6": + version: 4.17.21 + resolution: "@types/express@npm:4.17.21" + dependencies: + "@types/body-parser": "*" + "@types/express-serve-static-core": ^4.17.33 + "@types/qs": "*" + "@types/serve-static": "*" + checksum: fb238298630370a7392c7abdc80f495ae6c716723e114705d7e3fb67e3850b3859bbfd29391463a3fb8c0b32051847935933d99e719c0478710f8098ee7091c5 languageName: node linkType: hard -"core-util-is@npm:1.0.2": - version: 1.0.2 - resolution: "core-util-is@npm:1.0.2" - checksum: 7a4c925b497a2c91421e25bf76d6d8190f0b2359a9200dbeed136e63b2931d6294d3b1893eda378883ed363cd950f44a12a401384c609839ea616befb7927dab +"@types/geojson@npm:*": + version: 7946.0.15 + resolution: "@types/geojson@npm:7946.0.15" + checksum: 226d7ab59540632b19f7889c76c4c586a5104c18c43a81f32974aa035eafe557f86bd5a79ca5568bb63cbe5bfa9014c8e9a29cb0bb3d2f0bd71b0cc13ad8ccb3 languageName: node linkType: hard -"core-util-is@npm:~1.0.0": - version: 1.0.3 - resolution: "core-util-is@npm:1.0.3" - checksum: 9de8597363a8e9b9952491ebe18167e3b36e7707569eed0ebf14f8bba773611376466ae34575bca8cfe3c767890c859c74056084738f09d4e4a6f902b2ad7d99 +"@types/graceful-fs@npm:^4.1.3": + version: 4.1.9 + resolution: "@types/graceful-fs@npm:4.1.9" + dependencies: + "@types/node": "*" + checksum: 79d746a8f053954bba36bd3d94a90c78de995d126289d656fb3271dd9f1229d33f678da04d10bce6be440494a5a73438e2e363e92802d16b8315b051036c5256 languageName: node linkType: hard -"cors@npm:^2.8.5": - version: 2.8.5 - resolution: "cors@npm:2.8.5" +"@types/hast@npm:^2.0.0": + version: 2.3.10 + resolution: "@types/hast@npm:2.3.10" dependencies: - object-assign: ^4 - vary: ^1 - checksum: ced838404ccd184f61ab4fdc5847035b681c90db7ac17e428f3d81d69e2989d2b680cc254da0e2554f5ed4f8a341820a1ce3d1c16b499f6e2f47a1b9b07b5006 + "@types/unist": ^2 + checksum: 41531b7fbf590b02452996fc63272479c20a07269e370bd6514982cbcd1819b4b84d3ea620f2410d1b9541a23d08ce2eeb0a592145d05e00e249c3d56700d460 languageName: node linkType: hard -"cosmiconfig@npm:^6.0.0": - version: 6.0.0 - resolution: "cosmiconfig@npm:6.0.0" +"@types/hoist-non-react-statics@npm:^3.3.0": + version: 3.3.6 + resolution: "@types/hoist-non-react-statics@npm:3.3.6" dependencies: - "@types/parse-json": ^4.0.0 - import-fresh: ^3.1.0 - parse-json: ^5.0.0 - path-type: ^4.0.0 - yaml: ^1.7.2 - checksum: 8eed7c854b91643ecb820767d0deb038b50780ecc3d53b0b19e03ed8aabed4ae77271198d1ae3d49c3b110867edf679f5faad924820a8d1774144a87cb6f98fc + "@types/react": "*" + hoist-non-react-statics: ^3.3.0 + checksum: f03e43bd081876c49584ffa0eb690d69991f258203efca44dcc30efdda49a50653ff06402917d1edc9cb7e2adebbe9e2d1d0e739bc99c1b5372103b1cc534e47 languageName: node linkType: hard -"cosmiconfig@npm:^7.0.1": - version: 7.1.0 - resolution: "cosmiconfig@npm:7.1.0" - dependencies: - "@types/parse-json": ^4.0.0 - import-fresh: ^3.2.1 - parse-json: ^5.0.0 - path-type: ^4.0.0 - yaml: ^1.10.0 - checksum: c53bf7befc1591b2651a22414a5e786cd5f2eeaa87f3678a3d49d6069835a9d8d1aef223728e98aa8fec9a95bf831120d245096db12abe019fecb51f5696c96f +"@types/html-minifier-terser@npm:^6.0.0": + version: 6.1.0 + resolution: "@types/html-minifier-terser@npm:6.1.0" + checksum: eb843f6a8d662d44fb18ec61041117734c6aae77aa38df1be3b4712e8e50ffaa35f1e1c92fdd0fde14a5675fecf457abcd0d15a01fae7506c91926176967f452 languageName: node linkType: hard -"cosmiconfig@npm:^8.1.3, cosmiconfig@npm:^8.2.0": - version: 8.3.6 - resolution: "cosmiconfig@npm:8.3.6" - dependencies: - import-fresh: ^3.3.0 - js-yaml: ^4.1.0 - parse-json: ^5.2.0 - path-type: ^4.0.0 - peerDependencies: - typescript: ">=4.9.5" - peerDependenciesMeta: - typescript: - optional: true - checksum: dc339ebea427898c9e03bf01b56ba7afbac07fc7d2a2d5a15d6e9c14de98275a9565da949375aee1809591c152c0a3877bb86dbeaf74d5bd5aaa79955ad9e7a0 +"@types/http-errors@npm:*": + version: 2.0.4 + resolution: "@types/http-errors@npm:2.0.4" + checksum: 1f3d7c3b32c7524811a45690881736b3ef741bf9849ae03d32ad1ab7062608454b150a4e7f1351f83d26a418b2d65af9bdc06198f1c079d75578282884c4e8e3 languageName: node linkType: hard -"cpu-features@npm:~0.0.10": - version: 0.0.10 - resolution: "cpu-features@npm:0.0.10" +"@types/http-proxy-middleware@npm:^1.0.0": + version: 1.0.0 + resolution: "@types/http-proxy-middleware@npm:1.0.0" dependencies: - buildcheck: ~0.0.6 - nan: ^2.19.0 - node-gyp: latest - checksum: ab17e25cea0b642bdcfd163d3d872be4cc7d821e854d41048557799e990d672ee1cc7bd1d4e7c4de0309b1683d4c001d36ba8569b5035d1e7e2ff2d681f681d7 + http-proxy-middleware: "*" + checksum: 643ce3ec3b9f302328eadd8d6487c01dd8702dd17beaa1bcf35c3cdb4c9eaf512ffd3c8aa8c66790900ec60315ecdbbc8895244203c5296fdd24843d451496ae languageName: node linkType: hard -"crc-32@npm:^1.2.0": - version: 1.2.2 - resolution: "crc-32@npm:1.2.2" - bin: - crc32: bin/crc32.njs - checksum: ad2d0ad0cbd465b75dcaeeff0600f8195b686816ab5f3ba4c6e052a07f728c3e70df2e3ca9fd3d4484dc4ba70586e161ca5a2334ec8bf5a41bf022a6103ff243 +"@types/http-proxy@npm:^1.17.15, @types/http-proxy@npm:^1.17.8": + version: 1.17.15 + resolution: "@types/http-proxy@npm:1.17.15" + dependencies: + "@types/node": "*" + checksum: d96eaf4e22232b587b46256b89c20525c453216684481015cf50fb385b0b319b883749ccb77dee9af57d107e8440cdacd56f4234f65176d317e9777077ff5bf3 languageName: node linkType: hard -"crc32-stream@npm:^6.0.0": - version: 6.0.0 - resolution: "crc32-stream@npm:6.0.0" - dependencies: - crc-32: ^1.2.0 - readable-stream: ^4.0.0 - checksum: e6edc2f81bc387daef6d18b2ac18c2ffcb01b554d3b5c7d8d29b177505aafffba574658fdd23922767e8dab1183d1962026c98c17e17fb272794c33293ef607c +"@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" + checksum: 3feac423fd3e5449485afac999dcfcb3d44a37c830af898b689fadc65d26526460bedb889db278e0d4d815a670331796494d073a10ee6e3a6526301fe7415778 languageName: node linkType: hard -"create-ecdh@npm:^4.0.4": - version: 4.0.4 - resolution: "create-ecdh@npm:4.0.4" +"@types/istanbul-lib-report@npm:*": + version: 3.0.3 + resolution: "@types/istanbul-lib-report@npm:3.0.3" dependencies: - bn.js: ^4.1.0 - elliptic: ^6.5.3 - checksum: 0dd7fca9711d09e152375b79acf1e3f306d1a25ba87b8ff14c2fd8e68b83aafe0a7dd6c4e540c9ffbdd227a5fa1ad9b81eca1f233c38bb47770597ba247e614b + "@types/istanbul-lib-coverage": "*" + checksum: b91e9b60f865ff08cb35667a427b70f6c2c63e88105eadd29a112582942af47ed99c60610180aa8dcc22382fa405033f141c119c69b95db78c4c709fbadfeeb4 languageName: node linkType: hard -"create-hash@npm:^1.1.0, create-hash@npm:^1.1.2, create-hash@npm:^1.2.0": - version: 1.2.0 - resolution: "create-hash@npm:1.2.0" +"@types/istanbul-reports@npm:^3.0.0": + version: 3.0.4 + resolution: "@types/istanbul-reports@npm:3.0.4" dependencies: - cipher-base: ^1.0.1 - inherits: ^2.0.1 - md5.js: ^1.3.4 - ripemd160: ^2.0.1 - sha.js: ^2.4.0 - checksum: 02a6ae3bb9cd4afee3fabd846c1d8426a0e6b495560a977ba46120c473cb283be6aa1cace76b5f927cf4e499c6146fb798253e48e83d522feba807d6b722eaa9 + "@types/istanbul-lib-report": "*" + checksum: 93eb18835770b3431f68ae9ac1ca91741ab85f7606f310a34b3586b5a34450ec038c3eed7ab19266635499594de52ff73723a54a72a75b9f7d6a956f01edee95 languageName: node linkType: hard -"create-hmac@npm:^1.1.4, create-hmac@npm:^1.1.7": - version: 1.1.7 - resolution: "create-hmac@npm:1.1.7" +"@types/jest@npm:^29.5.11": + version: 29.5.14 + resolution: "@types/jest@npm:29.5.14" dependencies: - cipher-base: ^1.0.3 - create-hash: ^1.1.0 - inherits: ^2.0.1 - ripemd160: ^2.0.0 - safe-buffer: ^5.0.1 - sha.js: ^2.4.8 - checksum: ba12bb2257b585a0396108c72830e85f882ab659c3320c83584b1037f8ab72415095167ced80dc4ce8e446a8ecc4b2acf36d87befe0707d73b26cf9dc77440ed + expect: ^29.0.0 + pretty-format: ^29.0.0 + checksum: 18dba4623f26661641d757c63da2db45e9524c9be96a29ef713c703a9a53792df9ecee9f7365a0858ddbd6440d98fe6b65ca67895ca5884b73cbc7ffc11f3838 languageName: node linkType: hard -"create-jest@npm:^29.7.0": - version: 29.7.0 - resolution: "create-jest@npm:29.7.0" - dependencies: - "@jest/types": ^29.6.3 - chalk: ^4.0.0 - exit: ^0.1.2 - graceful-fs: ^4.2.9 - jest-config: ^29.7.0 - jest-util: ^29.7.0 - prompts: ^2.0.1 - bin: - create-jest: bin/create-jest.js - checksum: 1427d49458adcd88547ef6fa39041e1fe9033a661293aa8d2c3aa1b4967cb5bf4f0c00436c7a61816558f28ba2ba81a94d5c962e8022ea9a883978fc8e1f2945 +"@types/js-cookie@npm:^2.2.6": + version: 2.2.7 + resolution: "@types/js-cookie@npm:2.2.7" + checksum: 851f47e94ca1fc43661d8f51614d67a613e7810c91b876d0a3b311ce72f7df800107fd02a08cb6948184e12c120b4f058edca2f50424d8798bdcffd6627281e3 languageName: node linkType: hard -"create-require@npm:^1.1.0": - version: 1.1.1 - resolution: "create-require@npm:1.1.1" - checksum: a9a1503d4390d8b59ad86f4607de7870b39cad43d929813599a23714831e81c520bddf61bcdd1f8e30f05fd3a2b71ae8538e946eb2786dc65c2bbc520f692eff +"@types/js-levenshtein@npm:^1.1.1": + version: 1.1.3 + resolution: "@types/js-levenshtein@npm:1.1.3" + checksum: eb338696da976925ea8448a42d775d7615a14323dceeb08909f187d0b3d3b4c1f67a1c36ef586b1c2318b70ab141bba8fc58311ba1c816711704605aec09db8b languageName: node linkType: hard -"cron-parser@npm:^4.2.0": - version: 4.9.0 - resolution: "cron-parser@npm:4.9.0" - dependencies: - luxon: ^3.2.1 - checksum: 3cf248fc5cae6c19ec7124962b1cd84b76f02b9bc4f58976b3bd07624db3ef10aaf1548efcc2d2dcdab0dad4f12029d640a55ecce05ea5e1596af9db585502cf +"@types/js-yaml@npm:^4.0.1": + version: 4.0.9 + resolution: "@types/js-yaml@npm:4.0.9" + checksum: e5e5e49b5789a29fdb1f7d204f82de11cb9e8f6cb24ab064c616da5d6e1b3ccfbf95aa5d1498a9fbd3b9e745564e69b4a20b6c530b5a8bbb2d4eb830cda9bc69 languageName: node linkType: hard -"cron@npm:^3.0.0": - version: 3.1.8 - resolution: "cron@npm:3.1.8" +"@types/jsdom@npm:^20.0.0": + version: 20.0.1 + resolution: "@types/jsdom@npm:20.0.1" dependencies: - "@types/luxon": ~3.4.0 - luxon: ~3.5.0 - checksum: 470ada23ae25b64fe9d529d3421df1d9a18716693c710e617ba79263a7883d7d5292f9ef0e067fd47b82019b9fa313a461dacd381c8feadb136849b460ddee4c + "@types/node": "*" + "@types/tough-cookie": "*" + parse5: ^7.0.0 + checksum: d55402c5256ef451f93a6e3d3881f98339fe73a5ac2030588df056d6835df8367b5a857b48d27528289057e26dcdd3f502edc00cb877c79174cb3a4c7f2198c1 languageName: node linkType: hard -"cross-fetch@npm:^4.0.0": - version: 4.0.0 - resolution: "cross-fetch@npm:4.0.0" - dependencies: - node-fetch: ^2.6.12 - checksum: ecca4f37ffa0e8283e7a8a590926b66713a7ef7892757aa36c2d20ffa27b0ac5c60dcf453119c809abe5923fc0bae3702a4d896bfb406ef1077b0d0018213e24 +"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.11, @types/json-schema@npm:^7.0.12, @types/json-schema@npm:^7.0.15, @types/json-schema@npm:^7.0.4, @types/json-schema@npm:^7.0.5, @types/json-schema@npm:^7.0.6, @types/json-schema@npm:^7.0.7, @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: 97ed0cb44d4070aecea772b7b2e2ed971e10c81ec87dd4ecc160322ffa55ff330dace1793489540e3e318d90942064bb697cc0f8989391797792d919737b3b98 languageName: node linkType: hard -"cross-spawn@npm:^5.1.0": - version: 5.1.0 - resolution: "cross-spawn@npm:5.1.0" - dependencies: - lru-cache: ^4.0.1 - shebang-command: ^1.2.0 - which: ^1.2.9 - checksum: 726939c9954fc70c20e538923feaaa33bebc253247d13021737c3c7f68cdc3e0a57f720c0fe75057c0387995349f3f12e20e9bfdbf12274db28019c7ea4ec166 +"@types/json5@npm:^0.0.29": + version: 0.0.29 + resolution: "@types/json5@npm:0.0.29" + checksum: e60b153664572116dfea673c5bda7778dbff150498f44f998e34b5886d8afc47f16799280e4b6e241c0472aef1bc36add771c569c68fc5125fc2ae519a3eb9ac languageName: node linkType: hard -"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": - version: 7.0.3 - resolution: "cross-spawn@npm:7.0.3" +"@types/jsonwebtoken@npm:^9.0.0": + version: 9.0.7 + resolution: "@types/jsonwebtoken@npm:9.0.7" dependencies: - path-key: ^3.1.0 - shebang-command: ^2.0.0 - which: ^2.0.1 - checksum: 671cc7c7288c3a8406f3c69a3ae2fc85555c04169e9d611def9a675635472614f1c0ed0ef80955d5b6d4e724f6ced67f0ad1bb006c2ea643488fcfef994d7f52 + "@types/node": "*" + checksum: 872b62e2a50ec399d695402ccddfeb5cd66a6c3d28511f27453b932b6b67eb82c2d0ecaa864939848b88b3a8276c2492647bf5707bc82a6ac7e420d3412b9047 languageName: node linkType: hard -"crypto-browserify@npm:^3.11.0": - version: 3.12.1 - resolution: "crypto-browserify@npm:3.12.1" +"@types/keyv@npm:^4.2.0": + version: 4.2.0 + resolution: "@types/keyv@npm:4.2.0" dependencies: - browserify-cipher: ^1.0.1 - browserify-sign: ^4.2.3 - create-ecdh: ^4.0.4 - create-hash: ^1.2.0 - create-hmac: ^1.1.7 - diffie-hellman: ^5.0.3 - hash-base: ~3.0.4 - inherits: ^2.0.4 - pbkdf2: ^3.1.2 - public-encrypt: ^4.0.3 - randombytes: ^2.1.0 - randomfill: ^1.0.4 - checksum: 4e643dd5acfff80fbe2cc567feb75a22d726cc4df34772c988f326976c3c1ee1f8a611a33498dab11568cff3e134f0bd44a0e1f4c216585e5877ab5327cdb6fc + keyv: "*" + checksum: 8713da9382b9346d664866a6cab2f91b0fd479f61379af891303a618e9a2abad6f347adc38a0850540e3f2dad278427de24e7555339264fddb04d1d17d3b50e0 languageName: node linkType: hard -"css-declaration-sorter@npm:^6.3.1": - version: 6.4.1 - resolution: "css-declaration-sorter@npm:6.4.1" - peerDependencies: - postcss: ^8.0.9 - checksum: cbdc9e0d481011b1a28fd5b60d4eb55fe204391d31a0b1b490b2cecf4baa85810f9b8c48adab4df644f4718104ed3ed72c64a9745e3216173767bf4aeca7f9b8 +"@types/lodash@npm:^4.14.151": + version: 4.17.13 + resolution: "@types/lodash@npm:4.17.13" + checksum: d0bf8fbd950be71946e0076b30fd40d492293baea75f05931b6b5b906fd62583708c6229abdb95b30205ad24ce1ed2f48bc9d419364f682320edd03405cc0c7e languageName: node linkType: hard -"css-loader@npm:^6.5.1": - version: 6.11.0 - resolution: "css-loader@npm:6.11.0" - dependencies: - icss-utils: ^5.1.0 - postcss: ^8.4.33 - postcss-modules-extract-imports: ^3.1.0 - postcss-modules-local-by-default: ^4.0.5 - postcss-modules-scope: ^3.2.0 - postcss-modules-values: ^4.0.0 - postcss-value-parser: ^4.2.0 - semver: ^7.5.4 - peerDependencies: - "@rspack/core": 0.x || 1.x - webpack: ^5.0.0 - peerDependenciesMeta: - "@rspack/core": - optional: true - webpack: - optional: true - checksum: 5c8d35975a7121334905394e88e28f05df72f037dbed2fb8fec4be5f0b313ae73a13894ba791867d4a4190c35896da84a7fd0c54fb426db55d85ba5e714edbe3 +"@types/long@npm:^4.0.0": + version: 4.0.2 + resolution: "@types/long@npm:4.0.2" + checksum: d16cde7240d834cf44ba1eaec49e78ae3180e724cd667052b194a372f350d024cba8dd3f37b0864931683dab09ca935d52f0c4c1687178af5ada9fc85b0635f4 languageName: node linkType: hard -"css-select@npm:^4.1.3": - version: 4.3.0 - resolution: "css-select@npm:4.3.0" - dependencies: - boolbase: ^1.0.0 - css-what: ^6.0.1 - domhandler: ^4.3.1 - domutils: ^2.8.0 - nth-check: ^2.0.1 - checksum: d6202736839194dd7f910320032e7cfc40372f025e4bf21ca5bf6eb0a33264f322f50ba9c0adc35dadd342d3d6fae5ca244779a4873afbfa76561e343f2058e0 +"@types/lunr@npm:^2.3.3": + version: 2.3.7 + resolution: "@types/lunr@npm:2.3.7" + checksum: 188a18f035e042f4c23e807ae752bfdb0076a0446ff8285b3c10572008fb00282dfeebdbbd566bfcf65dbb073daf552477a0ccbf426ebaa5ce88c0088a860924 languageName: node linkType: hard -"css-select@npm:^5.1.0": - version: 5.1.0 - resolution: "css-select@npm:5.1.0" - dependencies: - boolbase: ^1.0.0 - css-what: ^6.1.0 - domhandler: ^5.0.2 - domutils: ^3.0.1 - nth-check: ^2.0.1 - checksum: 2772c049b188d3b8a8159907192e926e11824aea525b8282981f72ba3f349cf9ecd523fdf7734875ee2cb772246c22117fc062da105b6d59afe8dcd5c99c9bda +"@types/luxon@npm:^3.0.0, @types/luxon@npm:~3.4.0": + version: 3.4.2 + resolution: "@types/luxon@npm:3.4.2" + checksum: 6f92d5bd02e89f310395753506bcd9cef3a56f5940f7a50db2a2b9822bce753553ac767d143cb5b4f9ed5ddd4a84e64f89ff538082ceb4d18739af7781b56925 languageName: node linkType: hard -"css-tree@npm:^1.1.2, css-tree@npm:^1.1.3": +"@types/markdown-escape@npm:^1.1.3": version: 1.1.3 - resolution: "css-tree@npm:1.1.3" - dependencies: - mdn-data: 2.0.14 - source-map: ^0.6.1 - checksum: 79f9b81803991b6977b7fcb1588799270438274d89066ce08f117f5cdb5e20019b446d766c61506dd772c839df84caa16042d6076f20c97187f5abe3b50e7d1f + resolution: "@types/markdown-escape@npm:1.1.3" + checksum: cb2e410993271f0ccc526190391a08344f4f602be69e06fee989d36d5886866ba9ba2184054895d0ad2a12d57b02f3ccf86d7a1fe8904be48bcc1ee61b98e32f languageName: node linkType: hard -"css-tree@npm:^2.3.1": - version: 2.3.1 - resolution: "css-tree@npm:2.3.1" +"@types/mdast@npm:^3.0.0": + version: 3.0.15 + resolution: "@types/mdast@npm:3.0.15" dependencies: - mdn-data: 2.0.30 - source-map-js: ^1.0.1 - checksum: 493cc24b5c22b05ee5314b8a0d72d8a5869491c1458017ae5ed75aeb6c3596637dbe1b11dac2548974624adec9f7a1f3a6cf40593dc1f9185eb0e8279543fbc0 + "@types/unist": ^2 + checksum: af85042a4e3af3f879bde4059fa9e76c71cb552dffc896cdcc6cf9dc1fd38e37035c2dbd6245cfa6535b433f1f0478f5549696234ccace47a64055a10c656530 languageName: node linkType: hard -"css-tree@npm:~2.2.0": - version: 2.2.1 - resolution: "css-tree@npm:2.2.1" - dependencies: - mdn-data: 2.0.28 - source-map-js: ^1.0.1 - checksum: b94aa8cc2f09e6f66c91548411fcf74badcbad3e150345074715012d16333ce573596ff5dfca03c2a87edf1924716db765120f94247e919d72753628ba3aba27 +"@types/methods@npm:^1.1.4": + version: 1.1.4 + resolution: "@types/methods@npm:1.1.4" + checksum: ad2a7178486f2fd167750f3eb920ab032a947ff2e26f55c86670a6038632d790b46f52e5b6ead5823f1e53fc68028f1e9ddd15cfead7903e04517c88debd72b1 languageName: node linkType: hard -"css-what@npm:^6.0.1, css-what@npm:^6.1.0": - version: 6.1.0 - resolution: "css-what@npm:6.1.0" - checksum: b975e547e1e90b79625918f84e67db5d33d896e6de846c9b584094e529f0c63e2ab85ee33b9daffd05bff3a146a1916bec664e18bb76dd5f66cbff9fc13b2bbe +"@types/mime@npm:^1": + version: 1.3.5 + resolution: "@types/mime@npm:1.3.5" + checksum: e29a5f9c4776f5229d84e525b7cd7dd960b51c30a0fb9a028c0821790b82fca9f672dab56561e2acd9e8eed51d431bde52eafdfef30f643586c4162f1aecfc78 languageName: node linkType: hard -"cssesc@npm:^3.0.0": - version: 3.0.0 - resolution: "cssesc@npm:3.0.0" - bin: - cssesc: bin/cssesc - checksum: f8c4ababffbc5e2ddf2fa9957dda1ee4af6048e22aeda1869d0d00843223c1b13ad3f5d88b51caa46c994225eacb636b764eb807a8883e2fb6f99b4f4e8c48b2 +"@types/ms@npm:*": + version: 0.7.34 + resolution: "@types/ms@npm:0.7.34" + checksum: f38d36e7b6edecd9badc9cf50474159e9da5fa6965a75186cceaf883278611b9df6669dc3a3cc122b7938d317b68a9e3d573d316fcb35d1be47ec9e468c6bd8a languageName: node linkType: hard -"cssnano-preset-default@npm:^5.2.14": - version: 5.2.14 - resolution: "cssnano-preset-default@npm:5.2.14" +"@types/multer@npm:^1.4.12": + version: 1.4.12 + resolution: "@types/multer@npm:1.4.12" dependencies: - css-declaration-sorter: ^6.3.1 - cssnano-utils: ^3.1.0 - postcss-calc: ^8.2.3 - postcss-colormin: ^5.3.1 - postcss-convert-values: ^5.1.3 - postcss-discard-comments: ^5.1.2 - postcss-discard-duplicates: ^5.1.0 - postcss-discard-empty: ^5.1.1 - postcss-discard-overridden: ^5.1.0 - postcss-merge-longhand: ^5.1.7 - postcss-merge-rules: ^5.1.4 - postcss-minify-font-values: ^5.1.0 - postcss-minify-gradients: ^5.1.1 - postcss-minify-params: ^5.1.4 - postcss-minify-selectors: ^5.2.1 - postcss-normalize-charset: ^5.1.0 - postcss-normalize-display-values: ^5.1.0 - postcss-normalize-positions: ^5.1.1 - postcss-normalize-repeat-style: ^5.1.1 - postcss-normalize-string: ^5.1.0 - postcss-normalize-timing-functions: ^5.1.0 - postcss-normalize-unicode: ^5.1.1 - postcss-normalize-url: ^5.1.0 - postcss-normalize-whitespace: ^5.1.1 - postcss-ordered-values: ^5.1.3 - postcss-reduce-initial: ^5.1.2 - postcss-reduce-transforms: ^5.1.0 - postcss-svgo: ^5.1.0 - postcss-unique-selectors: ^5.1.1 - peerDependencies: - postcss: ^8.2.15 - checksum: d3bbbe3d50c6174afb28d0bdb65b511fdab33952ec84810aef58b87189f3891c34aaa8b6a6101acd5314f8acded839b43513e39a75f91a698ddc985a1b1d9e95 - languageName: node - linkType: hard - -"cssnano-utils@npm:^3.1.0": - version: 3.1.0 - resolution: "cssnano-utils@npm:3.1.0" - peerDependencies: - postcss: ^8.2.15 - checksum: 975c84ce9174cf23bb1da1e9faed8421954607e9ea76440cd3bb0c1bea7e17e490d800fca5ae2812d1d9e9d5524eef23ede0a3f52497d7ccc628e5d7321536f2 + "@types/express": "*" + checksum: 719cacf88ec83ed77e250e45bee830fd7a505323825efa2a2c1144f5f3d7d36e67408ec988e571bcbaa571e0c214b5ede42d57ebb0f9b453a5eb8faba8ff12d0 languageName: node linkType: hard -"cssnano@npm:^5.0.1": - version: 5.1.15 - resolution: "cssnano@npm:5.1.15" +"@types/node-forge@npm:^1.3.0": + version: 1.3.11 + resolution: "@types/node-forge@npm:1.3.11" dependencies: - cssnano-preset-default: ^5.2.14 - lilconfig: ^2.0.3 - yaml: ^1.10.2 - peerDependencies: - postcss: ^8.2.15 - checksum: ca9e1922178617c66c2f1548824b2c7af2ecf69cc3a187fc96bf8d29251c2e84d9e4966c69cf64a2a6a057a37dff7d6d057bc8a2a0957e6ea382e452ae9d0bbb + "@types/node": "*" + checksum: 1e86bd55b92a492eaafd75f6d01f31e7d86a5cdadd0c6bcdc0b1df4103b7f99bb75b832efd5217c7ddda5c781095dc086a868e20b9de00f5a427ddad4c296cd5 languageName: node linkType: hard -"csso@npm:^4.2.0": - version: 4.2.0 - resolution: "csso@npm:4.2.0" +"@types/node@npm:*, @types/node@npm:>=13.7.0": + version: 22.10.2 + resolution: "@types/node@npm:22.10.2" dependencies: - css-tree: ^1.1.2 - checksum: 380ba9663da3bcea58dee358a0d8c4468bb6539be3c439dc266ac41c047217f52fd698fb7e4b6b6ccdfb8cf53ef4ceed8cc8ceccb8dfca2aa628319826b5b998 + undici-types: ~6.20.0 + checksum: b22401e6e7d1484e437d802c72f5560e18100b1257b9ad0574d6fe05bebe4dbcb620ea68627d1f1406775070d29ace8b6b51f57e7b1c7b8bafafe6da7f29c843 languageName: node linkType: hard -"csso@npm:^5.0.5": - version: 5.0.5 - resolution: "csso@npm:5.0.5" +"@types/node@npm:20.14.2": + version: 20.14.2 + resolution: "@types/node@npm:20.14.2" dependencies: - css-tree: ~2.2.0 - checksum: 0ad858d36bf5012ed243e9ec69962a867509061986d2ee07cc040a4b26e4d062c00d4c07e5ba8d430706ceb02dd87edd30a52b5937fd45b1b6f2119c4993d59a + undici-types: ~5.26.4 + checksum: 265362479b8f3b50fcd1e3f9e9af6121feb01a478dff0335ae67cccc3babfe45d0f12209d3d350595eebd7e67471762697b877c380513f8e5d27a238fa50c805 languageName: node linkType: hard -"cssom@npm:^0.5.0": - version: 0.5.0 - resolution: "cssom@npm:0.5.0" - checksum: 823471aa30091c59e0a305927c30e7768939b6af70405808f8d2ce1ca778cddcb24722717392438329d1691f9a87cb0183b64b8d779b56a961546d54854fde01 +"@types/node@npm:^12.7.1": + version: 12.20.55 + resolution: "@types/node@npm:12.20.55" + checksum: e4f86785f4092706e0d3b0edff8dca5a13b45627e4b36700acd8dfe6ad53db71928c8dee914d4276c7fd3b6ccd829aa919811c9eb708a2c8e4c6eb3701178c37 languageName: node linkType: hard -"cssom@npm:~0.3.6": - version: 0.3.8 - resolution: "cssom@npm:0.3.8" - checksum: 24beb3087c76c0d52dd458be9ee1fbc80ac771478a9baef35dd258cdeb527c68eb43204dd439692bb2b1ae5272fa5f2946d10946edab0d04f1078f85e06bc7f6 +"@types/node@npm:^18.11.18, @types/node@npm:^18.11.9": + version: 18.19.68 + resolution: "@types/node@npm:18.19.68" + dependencies: + undici-types: ~5.26.4 + checksum: 84e1cd61b719405aa3b9cc42fbdd8821696684150be04cbd35ebed3b92363a83e904cd89dec5b50dd6a8ff0ea9f26c60436109900b485dbd5b93a81fd6374ccb languageName: node linkType: hard -"cssstyle@npm:^2.3.0": - version: 2.3.0 - resolution: "cssstyle@npm:2.3.0" +"@types/node@npm:^20.1.1": + version: 20.17.10 + resolution: "@types/node@npm:20.17.10" dependencies: - cssom: ~0.3.6 - checksum: 5f05e6fd2e3df0b44695c2f08b9ef38b011862b274e320665176467c0725e44a53e341bc4959a41176e83b66064ab786262e7380fd1cabeae6efee0d255bb4e3 + undici-types: ~6.19.2 + checksum: 44cfa7cd9a4ebb8f74efa4b89cf963ca0e522121a7d24d8121d40872bbcfd607eaccdc203c4fe92c8b587125be9ca7b071fe4f9b356f263434b8a8512dbebef0 languageName: node linkType: hard -"ctrlc-windows@npm:^2.1.0": - version: 2.1.0 - resolution: "ctrlc-windows@npm:2.1.0" - checksum: 0f0582ba9516290d3e90ea7b91710f8b9b110e1ed29b7c84ebd44c16368b2553722b86a17226120ca3ea0ef679ac3596f48104cc113cfb7c3d07260f6c92e38b +"@types/oauth@npm:*": + version: 0.9.6 + resolution: "@types/oauth@npm:0.9.6" + dependencies: + "@types/node": "*" + checksum: a35f3ce103a60b7f24d1233411f8b5e2db4c55476527c04da532989870ffd3af81247b3187741a87c2ee8da6dd2bea3438190bf3611be30d4557e323529abe63 languageName: node linkType: hard -"damerau-levenshtein@npm:^1.0.8": - version: 1.0.8 - resolution: "damerau-levenshtein@npm:1.0.8" - checksum: d240b7757544460ae0586a341a53110ab0a61126570ef2d8c731e3eab3f0cb6e488e2609e6a69b46727635de49be20b071688698744417ff1b6c1d7ccd03e0de +"@types/parse-json@npm:^4.0.0": + version: 4.0.2 + resolution: "@types/parse-json@npm:4.0.2" + checksum: 5bf62eec37c332ad10059252fc0dab7e7da730764869c980b0714777ad3d065e490627be9f40fc52f238ffa3ac4199b19de4127196910576c2fe34dd47c7a470 languageName: node linkType: hard -"dashdash@npm:^1.12.0": - version: 1.14.1 - resolution: "dashdash@npm:1.14.1" +"@types/passport-oauth2@npm:^1.4.11": + version: 1.4.17 + resolution: "@types/passport-oauth2@npm:1.4.17" dependencies: - assert-plus: ^1.0.0 - checksum: 3634c249570f7f34e3d34f866c93f866c5b417f0dd616275decae08147dcdf8fccfaa5947380ccfb0473998ea3a8057c0b4cd90c875740ee685d0624b2983598 + "@types/express": "*" + "@types/oauth": "*" + "@types/passport": "*" + checksum: 4c5d2d6f717bb0b3d049669e47ca27cb166cbbef2073dccd302b10e62936c9e392074acabe6cb593f7eeb37a6a3cf81b9d3a4f35a46018a6645ac37d0f1706cb languageName: node linkType: hard -"data-uri-to-buffer@npm:^6.0.2": - version: 6.0.2 - resolution: "data-uri-to-buffer@npm:6.0.2" - checksum: 8b6927c33f9b54037f442856be0aa20e5fd49fa6c9c8ceece408dc306445d593ad72d207d57037c529ce65f413b421da800c6827b1dbefb607b8056f17123a61 +"@types/passport-strategy@npm:^0.2.38": + version: 0.2.38 + resolution: "@types/passport-strategy@npm:0.2.38" + dependencies: + "@types/express": "*" + "@types/passport": "*" + checksum: b580e165182b137a6e57b6b7511904e6c875a5e372f08679ec54f456dc5c2a72d86f23d9373a52d8286b207fe8240946686f9e3d50b0bc1b4f7316f336a06fa2 languageName: node linkType: hard -"data-urls@npm:^3.0.2": - version: 3.0.2 - resolution: "data-urls@npm:3.0.2" +"@types/passport@npm:*, @types/passport@npm:^1.0.16, @types/passport@npm:^1.0.3": + version: 1.0.17 + resolution: "@types/passport@npm:1.0.17" dependencies: - abab: ^2.0.6 - whatwg-mimetype: ^3.0.0 - whatwg-url: ^11.0.0 - checksum: 033fc3dd0fba6d24bc9a024ddcf9923691dd24f90a3d26f6545d6a2f71ec6956f93462f2cdf2183cc46f10dc01ed3bcb36731a8208456eb1a08147e571fe2a76 + "@types/express": "*" + checksum: b131d5963576e759f972f038bb7461dcaaa1dc484a488eb093eac6a9f8d4f51c9b7adcd432ae84e3ecb68839dfba16f6d569f36664330b6af59d36ff3c4c64e2 languageName: node linkType: hard -"data-view-buffer@npm:^1.0.1": - version: 1.0.1 - resolution: "data-view-buffer@npm:1.0.1" - dependencies: - call-bind: ^1.0.6 - es-errors: ^1.3.0 - is-data-view: ^1.0.1 - checksum: ce24348f3c6231223b216da92e7e6a57a12b4af81a23f27eff8feabdf06acfb16c00639c8b705ca4d167f761cfc756e27e5f065d0a1f840c10b907fdaf8b988c +"@types/prop-types@npm:*, @types/prop-types@npm:^15.0.0, @types/prop-types@npm:^15.7.12, @types/prop-types@npm:^15.7.3": + version: 15.7.14 + resolution: "@types/prop-types@npm:15.7.14" + checksum: d0c5407b9ccc3dd5fae0ccf9b1007e7622ba5e6f1c18399b4f24dff33619d469da4b9fa918a374f19dc0d9fe6a013362aab0b844b606cfc10676efba3f5f736d languageName: node linkType: hard -"data-view-byte-length@npm:^1.0.1": - version: 1.0.1 - resolution: "data-view-byte-length@npm:1.0.1" +"@types/protocol-buffers-schema@npm:^3.4.3": + version: 3.4.3 + resolution: "@types/protocol-buffers-schema@npm:3.4.3" dependencies: - call-bind: ^1.0.7 - es-errors: ^1.3.0 - is-data-view: ^1.0.1 - checksum: dbb3200edcb7c1ef0d68979834f81d64fd8cab2f7691b3a4c6b97e67f22182f3ec2c8602efd7b76997b55af6ff8bce485829c1feda4fa2165a6b71fb7baa4269 + "@types/node": "*" + checksum: a07e150d4737fea79ea8b58be8b8828c9736319f3d8bce92d282b424629ebcd5e056d083b1f8c150a0a7213cdf518bd62c8c7725473f2214f23f5331adead5fb languageName: node linkType: hard -"data-view-byte-offset@npm:^1.0.0": - version: 1.0.0 - resolution: "data-view-byte-offset@npm:1.0.0" - dependencies: - call-bind: ^1.0.6 - es-errors: ^1.3.0 - is-data-view: ^1.0.1 - checksum: 7f0bf8720b7414ca719eedf1846aeec392f2054d7af707c5dc9a753cc77eb8625f067fa901e0b5127e831f9da9056138d894b9c2be79c27a21f6db5824f009c2 +"@types/qs@npm:*, @types/qs@npm:^6.9.11, @types/qs@npm:^6.9.6": + version: 6.9.17 + resolution: "@types/qs@npm:6.9.17" + checksum: fc3beda0be70e820ddabaa361e8dfec5e09b482b8f6cf1515615479a027dd06cd5ba0ffbd612b654c2605523f45f484c8905a475623d6cd0c4cadcf5d0c517f5 languageName: node linkType: hard -"date-fns@npm:^2.16.1": - version: 2.30.0 - resolution: "date-fns@npm:2.30.0" +"@types/ramda@npm:~0.30.0": + version: 0.30.2 + resolution: "@types/ramda@npm:0.30.2" dependencies: - "@babel/runtime": ^7.21.0 - checksum: f7be01523282e9bb06c0cd2693d34f245247a29098527d4420628966a2d9aad154bd0e90a6b1cf66d37adcb769cd108cf8a7bd49d76db0fb119af5cdd13644f4 + types-ramda: ^0.30.1 + checksum: 528e62da967adb38b7b6be3314ee11009f4e7312e4fbb9670f4556bb2f640754f08ae68ede87822ae255aba747e67296f40b37d53bfb427c58ab82f5b7a4989e languageName: node linkType: hard -"date-format@npm:^4.0.14": - version: 4.0.14 - resolution: "date-format@npm:4.0.14" - checksum: dfe5139df6af5759b9dd3c007b899b3f60d45a9240ffeee6314ab74e6ab52e9b519a44ccf285888bdd6b626c66ee9b4c8a523075fa1140617b5beb1cbb9b18d1 +"@types/range-parser@npm:*": + version: 1.2.7 + resolution: "@types/range-parser@npm:1.2.7" + checksum: 95640233b689dfbd85b8c6ee268812a732cf36d5affead89e806fe30da9a430767af8ef2cd661024fd97e19d61f3dec75af2df5e80ec3bea000019ab7028629a languageName: node linkType: hard -"debug@npm:2.6.9, debug@npm:^2.6.0": - version: 2.6.9 - resolution: "debug@npm:2.6.9" +"@types/react-copy-to-clipboard@npm:5.0.7": + version: 5.0.7 + resolution: "@types/react-copy-to-clipboard@npm:5.0.7" dependencies: - ms: 2.0.0 - checksum: d2f51589ca66df60bf36e1fa6e4386b318c3f1e06772280eea5b1ae9fd3d05e9c2b7fd8a7d862457d00853c75b00451aa2d7459b924629ee385287a650f58fe6 + "@types/react": "*" + checksum: adc2970c8756e648daa06e294c422df3dc076a784344ab2ecb78a17ebd7e8e3dfd7f31e68c24267de4815cdeec573a743d952a308b45b8380f6b7912a9a8b911 languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4, debug@npm:^4.3.5": - version: 4.3.7 - resolution: "debug@npm:4.3.7" - dependencies: - ms: ^2.1.3 - peerDependenciesMeta: - supports-color: - optional: true - checksum: 822d74e209cd910ef0802d261b150314bbcf36c582ccdbb3e70f0894823c17e49a50d3e66d96b633524263975ca16b6a833f3e3b7e030c157169a5fabac63160 +"@types/react-dom@npm:^18": + version: 18.3.5 + resolution: "@types/react-dom@npm:18.3.5" + peerDependencies: + "@types/react": ^18.0.0 + checksum: 95c757684f71e761515c5a11299e5feec550c72bb52975487f360e6f0d359b26454c26eaf2ce45dd22748205aa9b2c2fe0abe7005ebcbd233a7615283ac39a7d languageName: node linkType: hard -"debug@npm:4.3.4": - version: 4.3.4 - resolution: "debug@npm:4.3.4" +"@types/react-measure@npm:^2.0.6": + version: 2.0.12 + resolution: "@types/react-measure@npm:2.0.12" dependencies: - ms: 2.1.2 - peerDependenciesMeta: - supports-color: - optional: true - checksum: 3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708 + "@types/react": "*" + checksum: c04ab0835bc4732383a9c7cf90aabab1155e3834fc4ee8470e173964aaa301963057a1905db51c208d5bc833df345720565ae430ac4f41e34e6aff6d9671cc61 languageName: node linkType: hard -"debug@npm:^3.2.7": - version: 3.2.7 - resolution: "debug@npm:3.2.7" +"@types/react-redux@npm:^7.1.20": + version: 7.1.34 + resolution: "@types/react-redux@npm:7.1.34" dependencies: - ms: ^2.1.1 - checksum: b3d8c5940799914d30314b7c3304a43305fd0715581a919dacb8b3176d024a782062368405b47491516d2091d6462d4d11f2f4974a405048094f8bfebfa3071c + "@types/hoist-non-react-statics": ^3.3.0 + "@types/react": "*" + hoist-non-react-statics: ^3.3.0 + redux: ^4.0.0 + checksum: ba0cc5f54b91bff162cc97cf5d82d0077944e2d744c276c3c8eb896a293aba00923b513f5cd6ad717a46bf0c128a099ad697c98672202acb25143602042c8e6c languageName: node linkType: hard -"decimal.js@npm:^10.4.2": - version: 10.4.3 - resolution: "decimal.js@npm:10.4.3" - checksum: 796404dcfa9d1dbfdc48870229d57f788b48c21c603c3f6554a1c17c10195fc1024de338b0cf9e1efe0c7c167eeb18f04548979bcc5fdfabebb7cc0ae3287bae +"@types/react-sparklines@npm:^1.7.0": + version: 1.7.5 + resolution: "@types/react-sparklines@npm:1.7.5" + dependencies: + "@types/react": "*" + checksum: e79755fb1ed504d36ca0b6aec4e7ef54eba30448a27c275ef56b55132c37761c11d693f885e248e2e8ba80f294bf9475e7d0e15ce5f5bb2a2219f07f18488409 languageName: node linkType: hard -"decompress-response@npm:^6.0.0": - version: 6.0.0 - resolution: "decompress-response@npm:6.0.0" +"@types/react-transition-group@npm:^4.2.0, @types/react-transition-group@npm:^4.4.10": + version: 4.4.12 + resolution: "@types/react-transition-group@npm:4.4.12" + peerDependencies: + "@types/react": "*" + checksum: 13d36396cae4d3c316b03d4a0ba299f0d039c59368ba65e04b0c3dc06fd0a16f59d2c669c3e32d6d525a95423f156b84e550d26bff0bdd8df285f305f8f3a0ed + languageName: node + linkType: hard + +"@types/react@npm:^18": + version: 18.3.18 + resolution: "@types/react@npm:18.3.18" dependencies: - mimic-response: ^3.1.0 - checksum: d377cf47e02d805e283866c3f50d3d21578b779731e8c5072d6ce8c13cc31493db1c2f6784da9d1d5250822120cefa44f1deab112d5981015f2e17444b763812 + "@types/prop-types": "*" + csstype: ^3.0.2 + checksum: 5933597bc9f53e282f0438f0bb76d0f0fab60faabe760ea806e05ffe6f5c61b9b4d363e1a03a8fea47c510d493c6cf926cdeeba9f7074fa97b61940c350245e7 languageName: node linkType: hard -"dedent@npm:^1.0.0": - version: 1.5.3 - resolution: "dedent@npm:1.5.3" - peerDependencies: - babel-plugin-macros: ^3.1.0 - peerDependenciesMeta: - babel-plugin-macros: - optional: true - checksum: 045b595557b2a8ea2eb9b0b4623d764e9a87326486fe2b61191b4342ed93dc01245644d8a09f3108a50c0ee7965f1eedd92e4a3a503ed89ea8e810566ea27f9a +"@types/regression@npm:2.0.6": + version: 2.0.6 + resolution: "@types/regression@npm:2.0.6" + checksum: c412ddd924efd53395f0011b38a6b1dbc94fc71adfa80efcb6657f0f1b6123fb27c101798dda8d0aa638c925900b4b4a9c5c03504a0d1255edd160e3090a5ce9 languageName: node linkType: hard -"deep-equal@npm:~1.0.1": - version: 1.0.1 - resolution: "deep-equal@npm:1.0.1" - checksum: 5af8cbfcebf190491878a498caccc7dc9592f8ebd1685b976eacc3825619d222b5e929923163b92c4f414494e2b884f7ebf00c022e8198e8292deb70dd9785f4 +"@types/request@npm:^2.47.1, @types/request@npm:^2.48.8": + version: 2.48.12 + resolution: "@types/request@npm:2.48.12" + dependencies: + "@types/caseless": "*" + "@types/node": "*" + "@types/tough-cookie": "*" + form-data: ^2.5.0 + checksum: 20dfad0a46b4249bf42f09c51fbd4d02ec6738c5152194b5c7c69bab80b00eae9cc71df4489ffa929d0968d453ef7d0823d1f98871efed563a4fdb57bf0a4c58 languageName: node linkType: hard -"deep-extend@npm:^0.6.0": - version: 0.6.0 - resolution: "deep-extend@npm:0.6.0" - checksum: 7be7e5a8d468d6b10e6a67c3de828f55001b6eb515d014f7aeb9066ce36bd5717161eb47d6a0f7bed8a9083935b465bc163ee2581c8b128d29bf61092fdf57a7 +"@types/resolve@npm:1.20.2": + version: 1.20.2 + resolution: "@types/resolve@npm:1.20.2" + checksum: 61c2cad2499ffc8eab36e3b773945d337d848d3ac6b7b0a87c805ba814bc838ef2f262fc0f109bfd8d2e0898ff8bd80ad1025f9ff64f1f71d3d4294c9f14e5f6 languageName: node linkType: hard -"deep-is@npm:^0.1.3, deep-is@npm:~0.1.3": - version: 0.1.4 - resolution: "deep-is@npm:0.1.4" - checksum: edb65dd0d7d1b9c40b2f50219aef30e116cedd6fc79290e740972c132c09106d2e80aa0bc8826673dd5a00222d4179c84b36a790eef63a4c4bca75a37ef90804 +"@types/retry@npm:0.12.2": + version: 0.12.2 + resolution: "@types/retry@npm:0.12.2" + checksum: e5675035717b39ce4f42f339657cae9637cf0c0051cf54314a6a2c44d38d91f6544be9ddc0280587789b6afd056be5d99dbe3e9f4df68c286c36321579b1bf4a languageName: node linkType: hard -"deepmerge@npm:^4.2.2, deepmerge@npm:^4.3.1": - version: 4.3.1 - resolution: "deepmerge@npm:4.3.1" - checksum: 2024c6a980a1b7128084170c4cf56b0fd58a63f2da1660dcfe977415f27b17dbe5888668b59d0b063753f3220719d5e400b7f113609489c90160bb9a5518d052 +"@types/sarif@npm:^2.1.4": + version: 2.1.7 + resolution: "@types/sarif@npm:2.1.7" + checksum: ee5d30f5a2678091502343fba7905e85d25dbb545f920de9fc8a7c6693509b491a043168970a16325730cc0c88de54d2b6b3de0c2caa31645c8ebf558c5553af languageName: node linkType: hard -"default-browser-id@npm:^5.0.0": - version: 5.0.0 - resolution: "default-browser-id@npm:5.0.0" - checksum: 185bfaecec2c75fa423544af722a3469b20704c8d1942794a86e4364fe7d9e8e9f63241a5b769d61c8151993bc65833a5b959026fa1ccea343b3db0a33aa6deb +"@types/semver@npm:7.5.8, @types/semver@npm:^7.5.0": + version: 7.5.8 + resolution: "@types/semver@npm:7.5.8" + checksum: ea6f5276f5b84c55921785a3a27a3cd37afee0111dfe2bcb3e03c31819c197c782598f17f0b150a69d453c9584cd14c4c4d7b9a55d2c5e6cacd4d66fdb3b3663 languageName: node linkType: hard -"default-browser@npm:^5.2.1": - version: 5.2.1 - resolution: "default-browser@npm:5.2.1" +"@types/send@npm:*": + version: 0.17.4 + resolution: "@types/send@npm:0.17.4" dependencies: - bundle-name: ^4.1.0 - default-browser-id: ^5.0.0 - checksum: afab7eff7b7f5f7a94d9114d1ec67273d3fbc539edf8c0f80019879d53aa71e867303c6f6d7cffeb10a6f3cfb59d4f963dba3f9c96830b4540cc7339a1bf9840 + "@types/mime": ^1 + "@types/node": "*" + checksum: cf4db48251bbb03cd6452b4de6e8e09e2d75390a92fd798eca4a803df06444adc94ed050246c94c7ed46fb97be1f63607f0e1f13c3ce83d71788b3e08640e5e0 languageName: node linkType: hard -"default-gateway@npm:^6.0.3": - version: 6.0.3 - resolution: "default-gateway@npm:6.0.3" +"@types/serve-index@npm:^1.9.4": + version: 1.9.4 + resolution: "@types/serve-index@npm:1.9.4" dependencies: - execa: ^5.0.0 - checksum: 126f8273ecac8ee9ff91ea778e8784f6cd732d77c3157e8c5bdd6ed03651b5291f71446d05bc02d04073b1e67583604db5394ea3cf992ede0088c70ea15b7378 + "@types/express": "*" + checksum: 72727c88d54da5b13275ebfb75dcdc4aa12417bbe9da1939e017c4c5f0c906fae843aa4e0fbfe360e7ee9df2f3d388c21abfc488f77ce58693fb57809f8ded92 languageName: node linkType: hard -"defaults@npm:^1.0.3": - version: 1.0.4 - resolution: "defaults@npm:1.0.4" +"@types/serve-static@npm:*, @types/serve-static@npm:^1.15.5": + version: 1.15.7 + resolution: "@types/serve-static@npm:1.15.7" dependencies: - clone: ^1.0.2 - checksum: 3a88b7a587fc076b84e60affad8b85245c01f60f38fc1d259e7ac1d89eb9ce6abb19e27215de46b98568dd5bc48471730b327637e6f20b0f1bc85cf00440c80a + "@types/http-errors": "*" + "@types/node": "*" + "@types/send": "*" + checksum: bbbf00dbd84719da2250a462270dc68964006e8d62f41fe3741abd94504ba3688f420a49afb2b7478921a1544d3793183ffa097c5724167da777f4e0c7f1a7d6 languageName: node linkType: hard -"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.4": - version: 1.1.4 - resolution: "define-data-property@npm:1.1.4" +"@types/set-cookie-parser@npm:^2.4.0": + version: 2.4.10 + resolution: "@types/set-cookie-parser@npm:2.4.10" dependencies: - es-define-property: ^1.0.0 - es-errors: ^1.3.0 - gopd: ^1.0.1 - checksum: 8068ee6cab694d409ac25936eb861eea704b7763f7f342adbdfe337fc27c78d7ae0eff2364b2917b58c508d723c7a074326d068eef2e45c4edcd85cf94d0313b + "@types/node": "*" + checksum: 105cc90c7d7deeb344858f720b58bd137356586545ac00d1a448e050bfcc0f385553ff26bc9c674bd8c2e953a458149eadb1945ee3d1eee81e6c0656236ebc0a languageName: node linkType: hard -"define-lazy-prop@npm:^2.0.0": - version: 2.0.0 - resolution: "define-lazy-prop@npm:2.0.0" - checksum: 0115fdb065e0490918ba271d7339c42453d209d4cb619dfe635870d906731eff3e1ade8028bb461ea27ce8264ec5e22c6980612d332895977e89c1bbc80fcee2 +"@types/sockjs@npm:^0.3.36": + version: 0.3.36 + resolution: "@types/sockjs@npm:0.3.36" + dependencies: + "@types/node": "*" + checksum: b4b5381122465d80ea8b158537c00bc82317222d3fb31fd7229ff25b31fa89134abfbab969118da55622236bf3d8fee75759f3959908b5688991f492008f29bc languageName: node linkType: hard -"define-lazy-prop@npm:^3.0.0": - version: 3.0.0 - resolution: "define-lazy-prop@npm:3.0.0" - checksum: 54884f94caac0791bf6395a3ec530ce901cf71c47b0196b8754f3fd17edb6c0e80149c1214429d851873bb0d689dbe08dcedbb2306dc45c8534a5934723851b6 +"@types/ssh2-streams@npm:*": + version: 0.1.12 + resolution: "@types/ssh2-streams@npm:0.1.12" + dependencies: + "@types/node": "*" + checksum: aa0aa45e40cfca34b4443dafa8d28ff49196c05c71867cbf0a8cdd5127be4d8a3840819543fcad16535653ca8b0e29217671ed6500ff1e7a3ad2442c5d1b40a6 languageName: node linkType: hard -"define-properties@npm:^1.1.3, define-properties@npm:^1.2.0, define-properties@npm:^1.2.1": - version: 1.2.1 - resolution: "define-properties@npm:1.2.1" +"@types/ssh2@npm:*": + version: 1.15.1 + resolution: "@types/ssh2@npm:1.15.1" dependencies: - define-data-property: ^1.0.1 - has-property-descriptors: ^1.0.0 - object-keys: ^1.1.1 - checksum: b4ccd00597dd46cb2d4a379398f5b19fca84a16f3374e2249201992f36b30f6835949a9429669ee6b41b6e837205a163eadd745e472069e70dfc10f03e5fcc12 + "@types/node": ^18.11.18 + checksum: 6a10b4da60817f2939cac18006a7ccbc6421facf2370a263072fc5290b1f5d445b385c5f309e93ce447bb33ad92dac18f562ccda20f092076da1c1a55da299fb languageName: node linkType: hard -"degenerator@npm:^5.0.0": - version: 5.0.1 - resolution: "degenerator@npm:5.0.1" +"@types/ssh2@npm:^0.5.48": + version: 0.5.52 + resolution: "@types/ssh2@npm:0.5.52" dependencies: - ast-types: ^0.13.4 - escodegen: ^2.1.0 - esprima: ^4.0.1 - checksum: a64fa39cdf6c2edd75188157d32338ee9de7193d7dbb2aeb4acb1eb30fa4a15ed80ba8dae9bd4d7b085472cf174a5baf81adb761aaa8e326771392c922084152 + "@types/node": "*" + "@types/ssh2-streams": "*" + checksum: bc1c76ac727ad73ddd59ba849cf0ea3ed2e930439e7a363aff24f04f29b74f9b1976369b869dc9a018223c9fb8ad041c09a0f07aea8cf46a8c920049188cddae languageName: node linkType: hard -"delayed-stream@npm:~1.0.0": - version: 1.0.0 - resolution: "delayed-stream@npm:1.0.0" - checksum: 46fe6e83e2cb1d85ba50bd52803c68be9bd953282fa7096f51fc29edd5d67ff84ff753c51966061e5ba7cb5e47ef6d36a91924eddb7f3f3483b1c560f77a0020 +"@types/stack-utils@npm:^2.0.0": + version: 2.0.3 + resolution: "@types/stack-utils@npm:2.0.3" + checksum: 72576cc1522090fe497337c2b99d9838e320659ac57fa5560fcbdcbafcf5d0216c6b3a0a8a4ee4fdb3b1f5e3420aa4f6223ab57b82fef3578bec3206425c6cf5 languageName: node linkType: hard -"delegates@npm:^1.0.0": - version: 1.0.0 - resolution: "delegates@npm:1.0.0" - checksum: a51744d9b53c164ba9c0492471a1a2ffa0b6727451bdc89e31627fdf4adda9d51277cfcbfb20f0a6f08ccb3c436f341df3e92631a3440226d93a8971724771fd +"@types/styled-jsx@npm:^2.2.8": + version: 2.2.9 + resolution: "@types/styled-jsx@npm:2.2.9" + dependencies: + "@types/react": "*" + checksum: 0e7e9bce8435116168b2470c7599b3b6ad5775c678d5dc06b64b0bc4fe369c59603c794a7298e2ca4e209aa0135f98df89793a3a0778251c1907b34198c55e9e languageName: node linkType: hard -"denque@npm:^2.1.0": - version: 2.1.0 - resolution: "denque@npm:2.1.0" - checksum: 1d4ae1d05e59ac3a3481e7b478293f4b4c813819342273f3d5b826c7ffa9753c520919ba264f377e09108d24ec6cf0ec0ac729a5686cbb8f32d797126c5dae74 +"@types/superagent@npm:*": + version: 8.1.9 + resolution: "@types/superagent@npm:8.1.9" + dependencies: + "@types/cookiejar": ^2.1.5 + "@types/methods": ^1.1.4 + "@types/node": "*" + form-data: ^4.0.0 + checksum: 530d8c2e87706315c82c8c9696500c40621de3353bc54ea9b104947f3530243abf54d0a49a6ae219d4947606a102ceb94bedfc43b9cc49f74069a18cbb3be8e2 languageName: node linkType: hard -"depd@npm:2.0.0, depd@npm:^2.0.0, depd@npm:~2.0.0": - version: 2.0.0 - resolution: "depd@npm:2.0.0" - checksum: abbe19c768c97ee2eed6282d8ce3031126662252c58d711f646921c9623f9052e3e1906443066beec1095832f534e57c523b7333f8e7e0d93051ab6baef5ab3a +"@types/supertest@npm:2.0.16": + version: 2.0.16 + resolution: "@types/supertest@npm:2.0.16" + dependencies: + "@types/superagent": "*" + checksum: 2fc998ea698e0467cdbe3bea0ebce2027ea3a45a13e51a6cecb0435f44b486faecf99c34d8702d2d7fe033e6e09fdd2b374af52ecc8d0c69a1deec66b8c0dd52 languageName: node linkType: hard -"depd@npm:~1.1.2": - version: 1.1.2 - resolution: "depd@npm:1.1.2" - checksum: 6b406620d269619852885ce15965272b829df6f409724415e0002c8632ab6a8c0a08ec1f0bd2add05dc7bd7507606f7e2cc034fa24224ab829580040b835ecd9 +"@types/tern@npm:*": + version: 0.23.9 + resolution: "@types/tern@npm:0.23.9" + dependencies: + "@types/estree": "*" + checksum: 53f229c79edf9454011f5b37c8539e0e760a130beac953d4e2126823de1ac6b0e2a45612596679fb232ec861826584fcaa272e2254a890b410575683423d56a8 languageName: node linkType: hard -"dependency-graph@npm:0.11.0, dependency-graph@npm:~0.11.0": - version: 0.11.0 - resolution: "dependency-graph@npm:0.11.0" - checksum: 477204beaa9be69e642bc31ffe7a8c383d0cf48fa27acbc91c5df01431ab913e65c154213d2ef83d034c98d77280743ec85e5da018a97a18dd43d3c0b78b28cd +"@types/tough-cookie@npm:*": + version: 4.0.5 + resolution: "@types/tough-cookie@npm:4.0.5" + checksum: f19409d0190b179331586365912920d192733112a195e870c7f18d20ac8adb7ad0b0ff69dad430dba8bc2be09593453a719cfea92dc3bda19748fd158fe1498d languageName: node linkType: hard -"deprecation@npm:^2.0.0, deprecation@npm:^2.3.1": - version: 2.3.1 - resolution: "deprecation@npm:2.3.1" - checksum: f56a05e182c2c195071385455956b0c4106fe14e36245b00c689ceef8e8ab639235176a96977ba7c74afb173317fac2e0ec6ec7a1c6d1e6eaa401c586c714132 +"@types/triple-beam@npm:^1.3.2": + version: 1.3.5 + resolution: "@types/triple-beam@npm:1.3.5" + checksum: 519b6a1b30d4571965c9706ad5400a200b94e4050feca3e7856e3ea7ac00ec9903e32e9a10e2762d0f7e472d5d03e5f4b29c16c0bd8c1f77c8876c683b2231f1 languageName: node linkType: hard -"des.js@npm:^1.0.0": - version: 1.1.0 - resolution: "des.js@npm:1.1.0" - dependencies: - inherits: ^2.0.1 - minimalistic-assert: ^1.0.0 - checksum: 0e9c1584b70d31e20f20a613fc9ef60fbc6a147dfec9e448a168794a4b97ac04d8dc47ea008f1fa93b0f8aaf7c1ead632a5e59ce1913a6079d2d244c9f5ebe33 +"@types/trusted-types@npm:*, @types/trusted-types@npm:^2.0.7": + version: 2.0.7 + resolution: "@types/trusted-types@npm:2.0.7" + checksum: 8e4202766a65877efcf5d5a41b7dd458480b36195e580a3b1085ad21e948bc417d55d6f8af1fd2a7ad008015d4117d5fdfe432731157da3c68678487174e4ba3 languageName: node linkType: hard -"destroy@npm:1.2.0, destroy@npm:^1.0.4": - version: 1.2.0 - resolution: "destroy@npm:1.2.0" - checksum: 0acb300b7478a08b92d810ab229d5afe0d2f4399272045ab22affa0d99dbaf12637659411530a6fcd597a9bdac718fc94373a61a95b4651bbc7b83684a565e38 +"@types/unist@npm:^2, @types/unist@npm:^2.0.0": + version: 2.0.11 + resolution: "@types/unist@npm:2.0.11" + checksum: 6d436e832bc35c6dde9f056ac515ebf2b3384a1d7f63679d12358766f9b313368077402e9c1126a14d827f10370a5485e628bf61aa91117cf4fc882423191a4e languageName: node linkType: hard -"detect-indent@npm:^6.0.0": - version: 6.1.0 - resolution: "detect-indent@npm:6.1.0" - checksum: ab953a73c72dbd4e8fc68e4ed4bfd92c97eb6c43734af3900add963fd3a9316f3bc0578b018b24198d4c31a358571eff5f0656e81a1f3b9ad5c547d58b2d093d +"@types/urijs@npm:^1.19.19": + version: 1.19.25 + resolution: "@types/urijs@npm:1.19.25" + checksum: cce3fd2845d5e143f4130134a5f6ff7e02b4dfc05f4d13c7b28a404fd9420bb8a6483a572c0662693bb18c5b3d8f814270aa75f3fd539f32fae22d005e755b5d languageName: node linkType: hard -"detect-libc@npm:^2.0.0": - version: 2.0.3 - resolution: "detect-libc@npm:2.0.3" - checksum: 2ba6a939ae55f189aea996ac67afceb650413c7a34726ee92c40fb0deb2400d57ef94631a8a3f052055eea7efb0f99a9b5e6ce923415daa3e68221f963cfc27d +"@types/use-sync-external-store@npm:^0.0.6": + version: 0.0.6 + resolution: "@types/use-sync-external-store@npm:0.0.6" + checksum: a95ce330668501ad9b1c5b7f2b14872ad201e552a0e567787b8f1588b22c7040c7c3d80f142cbb9f92d13c4ea41c46af57a20f2af4edf27f224d352abcfe4049 languageName: node linkType: hard -"detect-newline@npm:^3.0.0": - version: 3.1.0 - resolution: "detect-newline@npm:3.1.0" - checksum: ae6cd429c41ad01b164c59ea36f264a2c479598e61cba7c99da24175a7ab80ddf066420f2bec9a1c57a6bead411b4655ff15ad7d281c000a89791f48cbe939e7 +"@types/uuid@npm:^9.0.1": + version: 9.0.8 + resolution: "@types/uuid@npm:9.0.8" + checksum: b8c60b7ba8250356b5088302583d1704a4e1a13558d143c549c408bf8920535602ffc12394ede77f8a8083511b023704bc66d1345792714002bfa261b17c5275 languageName: node linkType: hard -"detect-node@npm:^2.0.4": - version: 2.1.0 - resolution: "detect-node@npm:2.1.0" - checksum: 832184ec458353e41533ac9c622f16c19f7c02d8b10c303dfd3a756f56be93e903616c0bb2d4226183c9351c15fc0b3dba41a17a2308262afabcfa3776e6ae6e +"@types/webpack-env@npm:^1.15.2": + version: 1.18.5 + resolution: "@types/webpack-env@npm:1.18.5" + checksum: 4ca8eb4c44e1e1807c3e245442fce7aaf2816a163056de9436bbac44cc47c8bc5b1c9a330dc05748d6616431b1fb5bd5379733fb1da0b78d03c59f4ec824c184 languageName: node linkType: hard -"detect-port-alt@npm:^1.1.6": - version: 1.1.6 - resolution: "detect-port-alt@npm:1.1.6" +"@types/ws@npm:*, @types/ws@npm:^8.0.0, @types/ws@npm:^8.5.10, @types/ws@npm:^8.5.3": + version: 8.5.13 + resolution: "@types/ws@npm:8.5.13" dependencies: - address: ^1.0.1 - debug: ^2.6.0 - bin: - detect: ./bin/detect-port - detect-port: ./bin/detect-port - checksum: 9dc37b1fa4a9dd6d4889e1045849b8d841232b598d1ca888bf712f4035b07a17cf6d537465a0d7323250048d3a5a0540e3b7cf89457efc222f96f77e2c40d16a + "@types/node": "*" + checksum: f17023ce7b89c6124249c90211803a4aaa02886e12bc2d0d2cd47fa665eeb058db4d871ce4397d8e423f6beea97dd56835dd3fdbb921030fe4d887601e37d609 languageName: node linkType: hard -"dezalgo@npm:^1.0.4": - version: 1.0.4 - resolution: "dezalgo@npm:1.0.4" +"@types/xml-encryption@npm:^1.2.4": + version: 1.2.4 + resolution: "@types/xml-encryption@npm:1.2.4" dependencies: - asap: ^2.0.0 - wrappy: 1 - checksum: 895389c6aead740d2ab5da4d3466d20fa30f738010a4d3f4dcccc9fc645ca31c9d10b7e1804ae489b1eb02c7986f9f1f34ba132d409b043082a86d9a4e745624 + "@types/node": "*" + checksum: 1ef957dfb47cf55b12e114755e271a2343f73eb4c59ab6c68b0b7d1b8111d7e1bd8d2bfe0601d2aea09be83c66355bc77fc59f9b71aeff9bb9e15371bcfef5d3 languageName: node linkType: hard -"diff-sequences@npm:^29.6.3": - version: 29.6.3 - resolution: "diff-sequences@npm:29.6.3" - checksum: f4914158e1f2276343d98ff5b31fc004e7304f5470bf0f1adb2ac6955d85a531a6458d33e87667f98f6ae52ebd3891bb47d420bb48a5bd8b7a27ee25b20e33aa +"@types/xml2js@npm:^0.4.14": + version: 0.4.14 + resolution: "@types/xml2js@npm:0.4.14" + dependencies: + "@types/node": "*" + checksum: df9f106b9953dcdec7ba3304ebc56d6c2f61d49bf556d600bed439f94a1733f73ca0bf2d0f64330b402191622862d9d6058bab9d7e3dcb5b0fe51ebdc4372aac languageName: node linkType: hard -"diff3@npm:0.0.3": - version: 0.0.3 - resolution: "diff3@npm:0.0.3" - checksum: 28d883f1057b9873dfcb38cd2750337e6b32bf184bb1c0fb3292efeb83c597f1ce9b8f508bdd0d623a58b9ca1c917b1f297b90cb7fce3a62b26b0dde496f70e6 +"@types/yargs-parser@npm:*": + version: 21.0.3 + resolution: "@types/yargs-parser@npm:21.0.3" + checksum: ef236c27f9432983e91432d974243e6c4cdae227cb673740320eff32d04d853eed59c92ca6f1142a335cfdc0e17cccafa62e95886a8154ca8891cc2dec4ee6fc languageName: node linkType: hard -"diff@npm:^4.0.1": - version: 4.0.2 - resolution: "diff@npm:4.0.2" - checksum: f2c09b0ce4e6b301c221addd83bf3f454c0bc00caa3dd837cf6c127d6edf7223aa2bbe3b688feea110b7f262adbfc845b757c44c8a9f8c0c5b15d8fa9ce9d20d +"@types/yargs@npm:^17.0.8": + version: 17.0.33 + resolution: "@types/yargs@npm:17.0.33" + dependencies: + "@types/yargs-parser": "*" + checksum: ee013f257472ab643cb0584cf3e1ff9b0c44bca1c9ba662395300a7f1a6c55fa9d41bd40ddff42d99f5d95febb3907c9ff600fbcb92dadbec22c6a76de7e1236 languageName: node linkType: hard -"diff@npm:^5.0.0": - version: 5.2.0 - resolution: "diff@npm:5.2.0" - checksum: 12b63ca9c36c72bafa3effa77121f0581b4015df18bc16bac1f8e263597735649f1a173c26f7eba17fb4162b073fee61788abe49610e6c70a2641fe1895443fd +"@typescript-eslint/eslint-plugin@npm:^6.12.0": + version: 6.21.0 + resolution: "@typescript-eslint/eslint-plugin@npm:6.21.0" + dependencies: + "@eslint-community/regexpp": ^4.5.1 + "@typescript-eslint/scope-manager": 6.21.0 + "@typescript-eslint/type-utils": 6.21.0 + "@typescript-eslint/utils": 6.21.0 + "@typescript-eslint/visitor-keys": 6.21.0 + debug: ^4.3.4 + graphemer: ^1.4.0 + ignore: ^5.2.4 + natural-compare: ^1.4.0 + semver: ^7.5.4 + ts-api-utils: ^1.0.1 + peerDependencies: + "@typescript-eslint/parser": ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 5ef2c502255e643e98051e87eb682c2a257e87afd8ec3b9f6274277615e1c2caf3131b352244cfb1987b8b2c415645eeacb9113fa841fc4c9b2ac46e8aed6efd languageName: node linkType: hard -"diffie-hellman@npm:^5.0.3": - version: 5.0.3 - resolution: "diffie-hellman@npm:5.0.3" +"@typescript-eslint/parser@npm:^6.7.2": + version: 6.21.0 + resolution: "@typescript-eslint/parser@npm:6.21.0" dependencies: - bn.js: ^4.1.0 - miller-rabin: ^4.0.0 - randombytes: ^2.0.0 - checksum: 0e620f322170c41076e70181dd1c24e23b08b47dbb92a22a644f3b89b6d3834b0f8ee19e37916164e5eb1ee26d2aa836d6129f92723995267250a0b541811065 + "@typescript-eslint/scope-manager": 6.21.0 + "@typescript-eslint/types": 6.21.0 + "@typescript-eslint/typescript-estree": 6.21.0 + "@typescript-eslint/visitor-keys": 6.21.0 + debug: ^4.3.4 + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 162fe3a867eeeffda7328bce32dae45b52283c68c8cb23258fb9f44971f761991af61f71b8c9fe1aa389e93dfe6386f8509c1273d870736c507d76dd40647b68 languageName: node linkType: hard -"dir-glob@npm:^3.0.1": - version: 3.0.1 - resolution: "dir-glob@npm:3.0.1" +"@typescript-eslint/scope-manager@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/scope-manager@npm:6.21.0" dependencies: - path-type: ^4.0.0 - checksum: fa05e18324510d7283f55862f3161c6759a3f2f8dbce491a2fc14c8324c498286c54282c1f0e933cb930da8419b30679389499b919122952a4f8592362ef4615 + "@typescript-eslint/types": 6.21.0 + "@typescript-eslint/visitor-keys": 6.21.0 + checksum: 71028b757da9694528c4c3294a96cc80bc7d396e383a405eab3bc224cda7341b88e0fc292120b35d3f31f47beac69f7083196c70616434072fbcd3d3e62d3376 languageName: node linkType: hard -"dns-packet@npm:^5.2.2": - version: 5.6.1 - resolution: "dns-packet@npm:5.6.1" +"@typescript-eslint/scope-manager@npm:8.18.1": + version: 8.18.1 + resolution: "@typescript-eslint/scope-manager@npm:8.18.1" dependencies: - "@leichtgewicht/ip-codec": ^2.0.1 - checksum: 64c06457f0c6e143f7a0946e0aeb8de1c5f752217cfa143ef527467c00a6d78db1835cfdb6bb68333d9f9a4963cf23f410439b5262a8935cce1236f45e344b81 + "@typescript-eslint/types": 8.18.1 + "@typescript-eslint/visitor-keys": 8.18.1 + checksum: be4894a135ee978b29f7f8490111a0b662985a027fc7eade2400102fbae139d0ba82fdc0c7c2e3daf690a04c8f77e45fb6f8f561b971cd1cb1fa7063905d2e39 languageName: node linkType: hard -"docker-compose@npm:^0.24.8": - version: 0.24.8 - resolution: "docker-compose@npm:0.24.8" +"@typescript-eslint/type-utils@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/type-utils@npm:6.21.0" dependencies: - yaml: ^2.2.2 - checksum: 48f3564c46490f1f51899a144deb546b61450a76bffddb378379ac7702aa34b055e0237e0dc77507df94d7ad6f1f7daeeac27730230bce9aafe2e35efeda6b45 + "@typescript-eslint/typescript-estree": 6.21.0 + "@typescript-eslint/utils": 6.21.0 + debug: ^4.3.4 + ts-api-utils: ^1.0.1 + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 77025473f4d80acf1fafcce99c5c283e557686a61861febeba9c9913331f8a41e930bf5cd8b7a54db502a57b6eb8ea6d155cbd4f41349ed00e3d7aeb1f477ddc languageName: node linkType: hard -"docker-modem@npm:^3.0.0": - version: 3.0.8 - resolution: "docker-modem@npm:3.0.8" - dependencies: - debug: ^4.1.1 - readable-stream: ^3.5.0 - split-ca: ^1.0.1 - ssh2: ^1.11.0 - checksum: e3675c9b1ad800be8fb1cb9c5621fbef20a75bfedcd6e01b69808eadd7f0165681e4e30d1700897b788a67dbf4769964fcccd19c3d66f6d2499bb7aede6b34df +"@typescript-eslint/types@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/types@npm:6.21.0" + checksum: 9501b47d7403417af95fc1fb72b2038c5ac46feac0e1598a46bcb43e56a606c387e9dcd8a2a0abe174c91b509f2d2a8078b093786219eb9a01ab2fbf9ee7b684 languageName: node linkType: hard -"docker-modem@npm:^5.0.3": - version: 5.0.3 - resolution: "docker-modem@npm:5.0.3" - dependencies: - debug: ^4.1.1 - readable-stream: ^3.5.0 - split-ca: ^1.0.1 - ssh2: ^1.15.0 - checksum: 68f4948591622860ca95c10a01cae7f53ff2b2e8435b73b901698083b24ceb24208da12c1db2c47f073d48bc2f64a274cbf30e3c73979734f6fb3fbdf5bdb72e +"@typescript-eslint/types@npm:8.18.1": + version: 8.18.1 + resolution: "@typescript-eslint/types@npm:8.18.1" + checksum: 0274d0c3d237454b4a584211ec85136c056dd38144879d5ab49cd37b1b31ed4a5cf6e84dce6e334d5b417dd0e83f40b507bc9eff28e326e00da8cdd6fed29c9f languageName: node linkType: hard -"dockerode@npm:^3.3.5": - version: 3.3.5 - resolution: "dockerode@npm:3.3.5" +"@typescript-eslint/typescript-estree@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/typescript-estree@npm:6.21.0" dependencies: - "@balena/dockerignore": ^1.0.2 - docker-modem: ^3.0.0 - tar-fs: ~2.0.1 - checksum: 7f6650422b07fa7ea9d5801f04b1a432634446b5fe37b995b8302b953b64e93abf1bb4596c2fb574ba47aafee685ef2ab959cc86c9654add5a26d09541bbbcc6 + "@typescript-eslint/types": 6.21.0 + "@typescript-eslint/visitor-keys": 6.21.0 + debug: ^4.3.4 + globby: ^11.1.0 + is-glob: ^4.0.3 + minimatch: 9.0.3 + semver: ^7.5.4 + ts-api-utils: ^1.0.1 + peerDependenciesMeta: + typescript: + optional: true + checksum: dec02dc107c4a541e14fb0c96148f3764b92117c3b635db3a577b5a56fc48df7a556fa853fb82b07c0663b4bf2c484c9f245c28ba3e17e5cb0918ea4cab2ea21 languageName: node linkType: hard -"dockerode@npm:^4.0.0": - version: 4.0.2 - resolution: "dockerode@npm:4.0.2" +"@typescript-eslint/typescript-estree@npm:8.18.1": + version: 8.18.1 + resolution: "@typescript-eslint/typescript-estree@npm:8.18.1" dependencies: - "@balena/dockerignore": ^1.0.2 - docker-modem: ^5.0.3 - tar-fs: ~2.0.1 - checksum: 4d36633d04ac5f662b0322d2fa4fe51fb1dd5a45f00b07379196ee5ff5dae13688a9ec1adf1edeaefab5eb22f3ae2219f62026241555a8bcf7edb396bbb5a92f + "@typescript-eslint/types": 8.18.1 + "@typescript-eslint/visitor-keys": 8.18.1 + debug: ^4.3.4 + fast-glob: ^3.3.2 + is-glob: ^4.0.3 + minimatch: ^9.0.4 + semver: ^7.6.0 + ts-api-utils: ^1.3.0 + peerDependencies: + typescript: ">=4.8.4 <5.8.0" + checksum: 15d1419771cc0c532a7577332b5fbc24de13c5d8bb635875ef1b1120126df0bd45c1c35559b62d12bbe334dc9b35474ab92447d8259b604efb496205e7bcb4c4 languageName: node linkType: hard -"doctrine@npm:^2.1.0": - version: 2.1.0 - resolution: "doctrine@npm:2.1.0" +"@typescript-eslint/utils@npm:6.21.0, @typescript-eslint/utils@npm:^6.0.0": + version: 6.21.0 + resolution: "@typescript-eslint/utils@npm:6.21.0" dependencies: - esutils: ^2.0.2 - checksum: a45e277f7feaed309fe658ace1ff286c6e2002ac515af0aaf37145b8baa96e49899638c7cd47dccf84c3d32abfc113246625b3ac8f552d1046072adee13b0dc8 + "@eslint-community/eslint-utils": ^4.4.0 + "@types/json-schema": ^7.0.12 + "@types/semver": ^7.5.0 + "@typescript-eslint/scope-manager": 6.21.0 + "@typescript-eslint/types": 6.21.0 + "@typescript-eslint/typescript-estree": 6.21.0 + semver: ^7.5.4 + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + checksum: b129b3a4aebec8468259f4589985cb59ea808afbfdb9c54f02fad11e17d185e2bf72bb332f7c36ec3c09b31f18fc41368678b076323e6e019d06f74ee93f7bf2 languageName: node linkType: hard -"doctrine@npm:^3.0.0": - version: 3.0.0 - resolution: "doctrine@npm:3.0.0" +"@typescript-eslint/utils@npm:^6.0.0 || ^7.0.0 || ^8.0.0": + version: 8.18.1 + resolution: "@typescript-eslint/utils@npm:8.18.1" dependencies: - esutils: ^2.0.2 - checksum: fd7673ca77fe26cd5cba38d816bc72d641f500f1f9b25b83e8ce28827fe2da7ad583a8da26ab6af85f834138cf8dae9f69b0cd6ab925f52ddab1754db44d99ce + "@eslint-community/eslint-utils": ^4.4.0 + "@typescript-eslint/scope-manager": 8.18.1 + "@typescript-eslint/types": 8.18.1 + "@typescript-eslint/typescript-estree": 8.18.1 + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <5.8.0" + checksum: 456da0728b73abaab63c68ee838dabc4ea047864cf23c1fe7757db3e6d6fe0f20cbe82381a5bf5c43cc704091c160efa4737d44213e49b70465e9f6f9302e46b languageName: node linkType: hard -"dom-converter@npm:^0.2.0": - version: 0.2.0 - resolution: "dom-converter@npm:0.2.0" +"@typescript-eslint/visitor-keys@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/visitor-keys@npm:6.21.0" dependencies: - utila: ~0.4 - checksum: ea52fe303f5392e48dea563abef0e6fb3a478b8dbe3c599e99bb5d53981c6c38fc4944e56bb92a8ead6bb989d10b7914722ae11febbd2fd0910e33b9fc4aaa77 + "@typescript-eslint/types": 6.21.0 + eslint-visitor-keys: ^3.4.1 + checksum: 67c7e6003d5af042d8703d11538fca9d76899f0119130b373402819ae43f0bc90d18656aa7add25a24427ccf1a0efd0804157ba83b0d4e145f06107d7d1b7433 languageName: node linkType: hard -"dom-serializer@npm:^1.0.1": - version: 1.4.1 - resolution: "dom-serializer@npm:1.4.1" +"@typescript-eslint/visitor-keys@npm:8.18.1": + version: 8.18.1 + resolution: "@typescript-eslint/visitor-keys@npm:8.18.1" dependencies: - domelementtype: ^2.0.1 - domhandler: ^4.2.0 - entities: ^2.0.0 - checksum: fbb0b01f87a8a2d18e6e5a388ad0f7ec4a5c05c06d219377da1abc7bb0f674d804f4a8a94e3f71ff15f6cb7dcfc75704a54b261db672b9b3ab03da6b758b0b22 + "@typescript-eslint/types": 8.18.1 + eslint-visitor-keys: ^4.2.0 + checksum: facc2115dcf06ee3aca5ac0f879f15cc1f1b097c4c90422160e2241166e55891214928de4f6975d65444483e254e77825b27774ce6e49b78a6b73cfe3022f0f2 languageName: node linkType: hard -"dom-serializer@npm:^2.0.0": - version: 2.0.0 - resolution: "dom-serializer@npm:2.0.0" +"@uiw/codemirror-extensions-basic-setup@npm:4.23.7": + version: 4.23.7 + resolution: "@uiw/codemirror-extensions-basic-setup@npm:4.23.7" dependencies: - domelementtype: ^2.3.0 - domhandler: ^5.0.2 - entities: ^4.2.0 - checksum: cd1810544fd8cdfbd51fa2c0c1128ec3a13ba92f14e61b7650b5de421b88205fd2e3f0cc6ace82f13334114addb90ed1c2f23074a51770a8e9c1273acbc7f3e6 + "@codemirror/autocomplete": ^6.0.0 + "@codemirror/commands": ^6.0.0 + "@codemirror/language": ^6.0.0 + "@codemirror/lint": ^6.0.0 + "@codemirror/search": ^6.0.0 + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.0.0 + peerDependencies: + "@codemirror/autocomplete": ">=6.0.0" + "@codemirror/commands": ">=6.0.0" + "@codemirror/language": ">=6.0.0" + "@codemirror/lint": ">=6.0.0" + "@codemirror/search": ">=6.0.0" + "@codemirror/state": ">=6.0.0" + "@codemirror/view": ">=6.0.0" + checksum: 656c5f78db4c6216a9a7eeb65455f52b002b7a5426bb1b05f11b896d5dba9887c7b9ee5aee9fe369d6c7b3c69128ee842cb5c8fe029cd07c2e48ec9358039a30 languageName: node linkType: hard -"domain-browser@npm:^1.1.1": - version: 1.2.0 - resolution: "domain-browser@npm:1.2.0" - checksum: 8f1235c7f49326fb762f4675795246a6295e7dd566b4697abec24afdba2460daa7dfbd1a73d31efbf5606b3b7deadb06ce47cf06f0a476e706153d62a4ff2b90 +"@uiw/react-codemirror@npm:^4.9.3": + version: 4.23.7 + resolution: "@uiw/react-codemirror@npm:4.23.7" + dependencies: + "@babel/runtime": ^7.18.6 + "@codemirror/commands": ^6.1.0 + "@codemirror/state": ^6.1.1 + "@codemirror/theme-one-dark": ^6.0.0 + "@uiw/codemirror-extensions-basic-setup": 4.23.7 + codemirror: ^6.0.0 + peerDependencies: + "@babel/runtime": ">=7.11.0" + "@codemirror/state": ">=6.0.0" + "@codemirror/theme-one-dark": ">=6.0.0" + "@codemirror/view": ">=6.0.0" + codemirror: ">=6.0.0" + react: ">=16.8.0" + react-dom: ">=16.8.0" + checksum: 5f6318b290f479c4718129578bdccbbdf64e3b588fdd79e3d80224779219eae7e249d40e4f88c864ed6ae40ea93036042313e983a022349563698593a2bf2e6c languageName: node linkType: hard -"domelementtype@npm:^2.0.1, domelementtype@npm:^2.2.0, domelementtype@npm:^2.3.0": - version: 2.3.0 - resolution: "domelementtype@npm:2.3.0" - checksum: ee837a318ff702622f383409d1f5b25dd1024b692ef64d3096ff702e26339f8e345820f29a68bcdcea8cfee3531776b3382651232fbeae95612d6f0a75efb4f6 +"@ungap/structured-clone@npm:^1.2.0": + version: 1.2.1 + resolution: "@ungap/structured-clone@npm:1.2.1" + checksum: 1e3b9fef293118861f0b2159b3695fc7f3793c0707095888ebb3ac7183f78c390e68f04cd4b4cf9ac979ae0da454505e08b3aae887cdd639609a3fe529e19e59 languageName: node linkType: hard -"domexception@npm:^4.0.0": - version: 4.0.0 - resolution: "domexception@npm:4.0.0" +"@useoptic/json-pointer-helpers@npm:0.55.1": + version: 0.55.1 + resolution: "@useoptic/json-pointer-helpers@npm:0.55.1" dependencies: - webidl-conversions: ^7.0.0 - checksum: ddbc1268edf33a8ba02ccc596735ede80375ee0cf124b30d2f05df5b464ba78ef4f49889b6391df4a04954e63d42d5631c7fcf8b1c4f12bc531252977a5f13d5 + jsonpointer: ^5.0.1 + minimatch: 9.0.3 + checksum: 874db1e25c4abecf29faf95c51d39d127ac50ee9f1ad9654babb3a0257a7c321e54312bf66214ac188e3f92f7e9c342fd81565356c0472689c120ea40465b15d languageName: node linkType: hard -"domhandler@npm:^4.0.0, domhandler@npm:^4.2.0, domhandler@npm:^4.3.1": - version: 4.3.1 - resolution: "domhandler@npm:4.3.1" +"@useoptic/openapi-utilities@npm:^0.55.0": + version: 0.55.1 + resolution: "@useoptic/openapi-utilities@npm:0.55.1" dependencies: - domelementtype: ^2.2.0 - checksum: 4c665ceed016e1911bf7d1dadc09dc888090b64dee7851cccd2fcf5442747ec39c647bb1cb8c8919f8bbdd0f0c625a6bafeeed4b2d656bbecdbae893f43ffaaa - languageName: node + "@useoptic/json-pointer-helpers": 0.55.1 + ajv: ^8.6.0 + ajv-errors: ~3.0.0 + ajv-formats: ~2.1.0 + chalk: ^4.1.2 + fast-deep-equal: ^3.1.3 + is-url: ^1.2.4 + js-yaml: ^4.1.0 + json-stable-stringify: ^1.0.1 + lodash.groupby: ^4.6.0 + lodash.isequal: ^4.5.0 + lodash.omit: ^4.5.0 + node-machine-id: ^1.1.12 + openapi-types: ^12.0.2 + ts-invariant: ^0.9.3 + url-join: ^4.0.1 + yaml-ast-parser: ^0.0.43 + checksum: 53f9ebc645d69cb1ede0263bb3dc2786cfb18f7e5a3da734898c3d9cc2109d581cd6238cec77e6eaae2f478da4ed134abca8255977e68fd06418966a65a9bbe6 + languageName: node linkType: hard -"domhandler@npm:^5.0.2, domhandler@npm:^5.0.3": - version: 5.0.3 - resolution: "domhandler@npm:5.0.3" +"@webassemblyjs/ast@npm:1.14.1, @webassemblyjs/ast@npm:^1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/ast@npm:1.14.1" dependencies: - domelementtype: ^2.3.0 - checksum: 0f58f4a6af63e6f3a4320aa446d28b5790a009018707bce2859dcb1d21144c7876482b5188395a188dfa974238c019e0a1e610d2fc269a12b2c192ea2b0b131c + "@webassemblyjs/helper-numbers": 1.13.2 + "@webassemblyjs/helper-wasm-bytecode": 1.13.2 + checksum: f9154ad9ea14f6f2374ebe918c221fd69a4d4514126a1acc6fa4966e8d27ab28cb550a5e6880032cf620e19640578658a7e5a55bd2aad1e3db4e9d598b8f2099 languageName: node linkType: hard -"domutils@npm:^2.5.2, domutils@npm:^2.8.0": - version: 2.8.0 - resolution: "domutils@npm:2.8.0" - dependencies: - dom-serializer: ^1.0.1 - domelementtype: ^2.2.0 - domhandler: ^4.2.0 - checksum: abf7434315283e9aadc2a24bac0e00eab07ae4313b40cc239f89d84d7315ebdfd2fb1b5bf750a96bc1b4403d7237c7b2ebf60459be394d625ead4ca89b934391 +"@webassemblyjs/floating-point-hex-parser@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.13.2" + checksum: e866ec8433f4a70baa511df5e8f2ebcd6c24f4e2cc6274c7c5aabe2bcce3459ea4680e0f35d450e1f3602acf3913b6b8e4f15069c8cfd34ae8609fb9a7d01795 languageName: node linkType: hard -"domutils@npm:^3.0.1": - version: 3.1.0 - resolution: "domutils@npm:3.1.0" - dependencies: - dom-serializer: ^2.0.0 - domelementtype: ^2.3.0 - domhandler: ^5.0.3 - checksum: e5757456ddd173caa411cfc02c2bb64133c65546d2c4081381a3bafc8a57411a41eed70494551aa58030be9e58574fcc489828bebd673863d39924fb4878f416 +"@webassemblyjs/helper-api-error@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/helper-api-error@npm:1.13.2" + checksum: 48b5df7fd3095bb252f59a139fe2cbd999a62ac9b488123e9a0da3906ad8a2f2da7b2eb21d328c01a90da987380928706395c2897d1f3ed9e2125b6d75a920d0 languageName: node linkType: hard -"dot-case@npm:^3.0.4": - version: 3.0.4 - resolution: "dot-case@npm:3.0.4" +"@webassemblyjs/helper-buffer@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/helper-buffer@npm:1.14.1" + checksum: b611e981dfd6a797c3d8fc3a772de29a6e55033737c2c09c31bb66c613bdbb2d25f915df1dee62a602c6acc057ca71128432fa8c3e22a893e1219dc454f14ede + languageName: node + linkType: hard + +"@webassemblyjs/helper-numbers@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/helper-numbers@npm:1.13.2" dependencies: - no-case: ^3.0.4 - tslib: ^2.0.3 - checksum: a65e3519414856df0228b9f645332f974f2bf5433370f544a681122eab59e66038fc3349b4be1cdc47152779dac71a5864f1ccda2f745e767c46e9c6543b1169 + "@webassemblyjs/floating-point-hex-parser": 1.13.2 + "@webassemblyjs/helper-api-error": 1.13.2 + "@xtuc/long": 4.2.2 + checksum: 49e2c9bf9b66997e480f6b44d80f895b3cde4de52ac135921d28e144565edca6903a519f627f4089b5509de1d7f9e5023f0e1a94ff78a36c9e2eb30e7c18ffd2 languageName: node linkType: hard -"duplexer@npm:^0.1.2": - version: 0.1.2 - resolution: "duplexer@npm:0.1.2" - checksum: 62ba61a830c56801db28ff6305c7d289b6dc9f859054e8c982abd8ee0b0a14d2e9a8e7d086ffee12e868d43e2bbe8a964be55ddbd8c8957714c87373c7a4f9b0 +"@webassemblyjs/helper-wasm-bytecode@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.13.2" + checksum: 8e059e1c1f0294f4fc3df8e4eaff3c5ef6e2e1358f34ebc118eaf5070ed59e56ed7fc92b28be734ebde17c8d662d5d27e06ade686c282445135da083ae11c128 languageName: node linkType: hard -"duplexify@npm:^4.1.3": - version: 4.1.3 - resolution: "duplexify@npm:4.1.3" +"@webassemblyjs/helper-wasm-section@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/helper-wasm-section@npm:1.14.1" dependencies: - end-of-stream: ^1.4.1 - inherits: ^2.0.3 - readable-stream: ^3.1.1 - stream-shift: ^1.0.2 - checksum: 9636a027345de3dd3c801594d01a7c73d9ce260019538beb1ee650bba7544e72f40a4d4902b52e1ab283dc32a06f210d42748773af02ff15e3064a9659deab7f + "@webassemblyjs/ast": 1.14.1 + "@webassemblyjs/helper-buffer": 1.14.1 + "@webassemblyjs/helper-wasm-bytecode": 1.13.2 + "@webassemblyjs/wasm-gen": 1.14.1 + checksum: 0a08d454a63192cd66abf91b6f060ac4b466cef341262246e9dcc828dd4c8536195dea9b46a1244b1eac65b59b8b502164a771a190052a92ff0a0a2ded0f8f53 languageName: node linkType: hard -"eastasianwidth@npm:^0.2.0": - version: 0.2.0 - resolution: "eastasianwidth@npm:0.2.0" - checksum: 7d00d7cd8e49b9afa762a813faac332dee781932d6f2c848dc348939c4253f1d4564341b7af1d041853bc3f32c2ef141b58e0a4d9862c17a7f08f68df1e0f1ed +"@webassemblyjs/ieee754@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/ieee754@npm:1.13.2" + dependencies: + "@xtuc/ieee754": ^1.2.0 + checksum: d7e3520baa37a7309fa7db4d73d69fb869878853b1ebd4b168821bd03fcc4c0e1669c06231315b0039035d9a7a462e53de3ad982da4a426a4b0743b5888e8673 languageName: node linkType: hard -"easy-table@npm:1.1.0": - version: 1.1.0 - resolution: "easy-table@npm:1.1.0" +"@webassemblyjs/leb128@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/leb128@npm:1.13.2" dependencies: - wcwidth: ">=1.0.1" - dependenciesMeta: - wcwidth: - optional: true - checksum: 49b960fefe5670076773824386f22070dce185ebc0a99542035496700cc39a0b9346f65fd4307f5fe3dbbe7e6d9c4b59966e77e32f915e0fe71de71c3d0efcf7 + "@xtuc/long": 4.2.2 + checksum: 64083507f7cff477a6d71a9e325d95665cea78ec8df99ca7c050e1cfbe300fbcf0842ca3dcf3b4fa55028350135588a4f879398d3dd2b6a8de9913ce7faf5333 languageName: node linkType: hard -"easy-table@npm:1.2.0": - version: 1.2.0 - resolution: "easy-table@npm:1.2.0" +"@webassemblyjs/utf8@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/utf8@npm:1.13.2" + checksum: 95ec6052f30eefa8d50c9b2a3394d08b17d53a4aa52821451d41d774c126fa8f39b988fbf5bff56da86852a87c16d676e576775a4071e5e5ccf020cc85a4b281 + languageName: node + linkType: hard + +"@webassemblyjs/wasm-edit@npm:^1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wasm-edit@npm:1.14.1" dependencies: - ansi-regex: ^5.0.1 - wcwidth: ^1.0.1 - dependenciesMeta: - wcwidth: - optional: true - checksum: 66961b19751a68d2d30ce9b74ef750c374cc3112bbcac3d1ed5a939e43c035ecf6b1954098df2d5b05f1e853ab2b67de893794390dcbf0abe1f157fddeb52174 + "@webassemblyjs/ast": 1.14.1 + "@webassemblyjs/helper-buffer": 1.14.1 + "@webassemblyjs/helper-wasm-bytecode": 1.13.2 + "@webassemblyjs/helper-wasm-section": 1.14.1 + "@webassemblyjs/wasm-gen": 1.14.1 + "@webassemblyjs/wasm-opt": 1.14.1 + "@webassemblyjs/wasm-parser": 1.14.1 + "@webassemblyjs/wast-printer": 1.14.1 + checksum: 9341c3146bb1b7863f03d6050c2a66990f20384ca137388047bbe1feffacb599e94fca7b7c18287d17e2449ffb4005fdc7f41f674a6975af9ad8522756f8ffff languageName: node linkType: hard -"ecc-jsbn@npm:~0.1.1": - version: 0.1.2 - resolution: "ecc-jsbn@npm:0.1.2" +"@webassemblyjs/wasm-gen@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wasm-gen@npm:1.14.1" dependencies: - jsbn: ~0.1.0 - safer-buffer: ^2.1.0 - checksum: 22fef4b6203e5f31d425f5b711eb389e4c6c2723402e389af394f8411b76a488fa414d309d866e2b577ce3e8462d344205545c88a8143cc21752a5172818888a + "@webassemblyjs/ast": 1.14.1 + "@webassemblyjs/helper-wasm-bytecode": 1.13.2 + "@webassemblyjs/ieee754": 1.13.2 + "@webassemblyjs/leb128": 1.13.2 + "@webassemblyjs/utf8": 1.13.2 + checksum: 401b12bec7431c4fc29d9414bbe40d3c6dc5be04d25a116657c42329f5481f0129f3b5834c293f26f0e42681ceac9157bf078ce9bdb6a7f78037c650373f98b2 languageName: node linkType: hard -"ecdsa-sig-formatter@npm:1.0.11, ecdsa-sig-formatter@npm:^1.0.11": - version: 1.0.11 - resolution: "ecdsa-sig-formatter@npm:1.0.11" +"@webassemblyjs/wasm-opt@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wasm-opt@npm:1.14.1" dependencies: - safe-buffer: ^5.0.1 - checksum: 207f9ab1c2669b8e65540bce29506134613dd5f122cccf1e6a560f4d63f2732d427d938f8481df175505aad94583bcb32c688737bb39a6df0625f903d6d93c03 + "@webassemblyjs/ast": 1.14.1 + "@webassemblyjs/helper-buffer": 1.14.1 + "@webassemblyjs/wasm-gen": 1.14.1 + "@webassemblyjs/wasm-parser": 1.14.1 + checksum: 60c697a9e9129d8d23573856df0791ba33cea4a3bc2339044cae73128c0983802e5e50a42157b990eeafe1237eb8e7653db6de5f02b54a0ae7b81b02dcdf2ae9 languageName: node linkType: hard -"ee-first@npm:1.1.1": - version: 1.1.1 - resolution: "ee-first@npm:1.1.1" - checksum: 1b4cac778d64ce3b582a7e26b218afe07e207a0f9bfe13cc7395a6d307849cfe361e65033c3251e00c27dd060cab43014c2d6b2647676135e18b77d2d05b3f4f +"@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": 1.14.1 + "@webassemblyjs/helper-api-error": 1.13.2 + "@webassemblyjs/helper-wasm-bytecode": 1.13.2 + "@webassemblyjs/ieee754": 1.13.2 + "@webassemblyjs/leb128": 1.13.2 + "@webassemblyjs/utf8": 1.13.2 + checksum: 93f1fe2676da465b4e824419d9812a3d7218de4c3addd4e916c04bc86055fa134416c1b67e4b7cbde8d728c0dce2721d06cc0bfe7a7db7c093a0898009937405 languageName: node linkType: hard -"electron-to-chromium@npm:^1.5.41": - version: 1.5.49 - resolution: "electron-to-chromium@npm:1.5.49" - checksum: 84d4fde02a6de9464f8de2933e2172253098bf219a368cfd0e1ec71b73f9c0800a9ddf7bfdf57408e5fedef858561eaaf4e30ebbf20d94244a6001d570ce07a9 +"@webassemblyjs/wast-printer@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wast-printer@npm:1.14.1" + dependencies: + "@webassemblyjs/ast": 1.14.1 + "@xtuc/long": 4.2.2 + checksum: 517881a0554debe6945de719d100b2d8883a2d24ddf47552cdeda866341e2bb153cd824a864bc7e2a61190a4b66b18f9899907e0074e9e820d2912ac0789ea60 languageName: node linkType: hard -"elliptic@npm:^6.5.3, elliptic@npm:^6.5.5": - version: 6.6.0 - resolution: "elliptic@npm:6.6.0" +"@whatwg-node/disposablestack@npm:^0.0.5": + version: 0.0.5 + resolution: "@whatwg-node/disposablestack@npm:0.0.5" dependencies: - bn.js: ^4.11.9 - brorand: ^1.1.0 - hash.js: ^1.0.0 - hmac-drbg: ^1.0.1 - inherits: ^2.0.4 - minimalistic-assert: ^1.0.1 - minimalistic-crypto-utils: ^1.0.1 - checksum: e912349b883e694bfe65005214237a470c9a098a6ba36fd24396d0ab07feb399920c0738aeed1aed6cf5dca9c64fd479e212faed3a75c9d81453671ef0de5157 + tslib: ^2.6.3 + checksum: d2df8ba46c567c3cc07767821fcedc8f4c9247f1f5488c7dadc42f86ca6429bace4451e48506ac2de15afe8e5baa1cd0951a7aa6419f091d48c671844e399931 languageName: node linkType: hard -"emittery@npm:^0.13.1": - version: 0.13.1 - resolution: "emittery@npm:0.13.1" - checksum: 2b089ab6306f38feaabf4f6f02792f9ec85fc054fda79f44f6790e61bbf6bc4e1616afb9b232e0c5ec5289a8a452f79bfa6d905a6fd64e94b49981f0934001c6 +"@whatwg-node/fetch@npm:^0.10.0, @whatwg-node/fetch@npm:^0.10.1": + version: 0.10.1 + resolution: "@whatwg-node/fetch@npm:0.10.1" + dependencies: + "@whatwg-node/node-fetch": ^0.7.1 + urlpattern-polyfill: ^10.0.0 + checksum: 7b0c64476d1a8f7c3cd6d946dfda3f39c204049c903d6338a07f1579a1b2771f89e742f71057b7b7beef3ccf8bf8ecc2b019c072719f1fd64509386d7ca102ae languageName: node linkType: hard -"emoji-regex@npm:^8.0.0": - version: 8.0.0 - resolution: "emoji-regex@npm:8.0.0" - checksum: d4c5c39d5a9868b5fa152f00cada8a936868fd3367f33f71be515ecee4c803132d11b31a6222b2571b1e5f7e13890156a94880345594d0ce7e3c9895f560f192 +"@whatwg-node/node-fetch@npm:^0.7.1": + version: 0.7.5 + resolution: "@whatwg-node/node-fetch@npm:0.7.5" + dependencies: + "@kamilkisiela/fast-url-parser": ^1.1.4 + "@whatwg-node/disposablestack": ^0.0.5 + busboy: ^1.6.0 + fast-querystring: ^1.1.1 + tslib: ^2.6.3 + checksum: 92d1b09fd747936b2600c00d1bf718cc3d1381cd477e1ed50d485b73650c0369a13f66cd0ec82d3992a06ecc2c013d0a411286184626894144a99433ed4fae01 languageName: node linkType: hard -"emoji-regex@npm:^9.2.2": - version: 9.2.2 - resolution: "emoji-regex@npm:9.2.2" - checksum: 8487182da74aabd810ac6d6f1994111dfc0e331b01271ae01ec1eb0ad7b5ecc2bbbbd2f053c05cb55a1ac30449527d819bbfbf0e3de1023db308cbcb47f86601 +"@xmldom/is-dom-node@npm:^1.0.1": + version: 1.0.1 + resolution: "@xmldom/is-dom-node@npm:1.0.1" + checksum: 24a412fbd996b4de757c3905f4b4aad28578aaf6687fd4fc986f339d476dcf5153c50a4f408099c2a894961a1517c927163ec37a1ade9f73b5c0ad478b34190e languageName: node linkType: hard -"emojis-list@npm:^3.0.0": - version: 3.0.0 - resolution: "emojis-list@npm:3.0.0" - checksum: ddaaa02542e1e9436c03970eeed445f4ed29a5337dfba0fe0c38dfdd2af5da2429c2a0821304e8a8d1cadf27fdd5b22ff793571fa803ae16852a6975c65e8e70 +"@xmldom/xmldom@npm:^0.8.10, @xmldom/xmldom@npm:^0.8.3, @xmldom/xmldom@npm:^0.8.5": + version: 0.8.10 + resolution: "@xmldom/xmldom@npm:0.8.10" + checksum: 4c136aec31fb3b49aaa53b6fcbfe524d02a1dc0d8e17ee35bd3bf35e9ce1344560481cd1efd086ad1a4821541482528672306d5e37cdbd187f33d7fadd3e2cf0 languageName: node linkType: hard -"enabled@npm:2.0.x": - version: 2.0.0 - resolution: "enabled@npm:2.0.0" - checksum: 9d256d89f4e8a46ff988c6a79b22fa814b4ffd82826c4fdacd9b42e9b9465709d3b748866d0ab4d442dfc6002d81de7f7b384146ccd1681f6a7f868d2acca063 +"@xobotyi/scrollbar-width@npm:^1.9.5": + version: 1.9.5 + resolution: "@xobotyi/scrollbar-width@npm:1.9.5" + checksum: e880c8696bd6c7eedaad4e89cc7bcfcd502c22dc6c061288ffa7f5a4fe5dab4aa2358bdd68e7357bf0334dc8b56724ed9bee05e010b60d83a3bb0d855f3d886f languageName: node linkType: hard -"encodeurl@npm:^1.0.2, encodeurl@npm:~1.0.2": - version: 1.0.2 - resolution: "encodeurl@npm:1.0.2" - checksum: e50e3d508cdd9c4565ba72d2012e65038e5d71bdc9198cb125beb6237b5b1ade6c0d343998da9e170fb2eae52c1bed37d4d6d98a46ea423a0cddbed5ac3f780c +"@xtuc/ieee754@npm:^1.2.0": + version: 1.2.0 + resolution: "@xtuc/ieee754@npm:1.2.0" + checksum: ac56d4ca6e17790f1b1677f978c0c6808b1900a5b138885d3da21732f62e30e8f0d9120fcf8f6edfff5100ca902b46f8dd7c1e3f903728634523981e80e2885a languageName: node linkType: hard -"encodeurl@npm:~2.0.0": - version: 2.0.0 - resolution: "encodeurl@npm:2.0.0" - checksum: abf5cd51b78082cf8af7be6785813c33b6df2068ce5191a40ca8b1afe6a86f9230af9a9ce694a5ce4665955e5c1120871826df9c128a642e09c58d592e2807fe +"@xtuc/long@npm:4.2.2": + version: 4.2.2 + resolution: "@xtuc/long@npm:4.2.2" + checksum: 8ed0d477ce3bc9c6fe2bf6a6a2cc316bb9c4127c5a7827bae947fa8ec34c7092395c5a283cc300c05b5fa01cbbfa1f938f410a7bf75db7c7846fea41949989ec languageName: node linkType: hard -"encoding@npm:^0.1.13": - version: 0.1.13 - resolution: "encoding@npm:0.1.13" - dependencies: - iconv-lite: ^0.6.2 - checksum: bb98632f8ffa823996e508ce6a58ffcf5856330fde839ae42c9e1f436cc3b5cc651d4aeae72222916545428e54fd0f6aa8862fd8d25bdbcc4589f1e3f3715e7f +"@yarnpkg/lockfile@npm:^1.1.0": + version: 1.1.0 + resolution: "@yarnpkg/lockfile@npm:1.1.0" + checksum: 05b881b4866a3546861fee756e6d3812776ea47fa6eb7098f983d6d0eefa02e12b66c3fff931574120f196286a7ad4879ce02743c8bb2be36c6a576c7852083a languageName: node linkType: hard -"end-of-stream@npm:^1.1.0, end-of-stream@npm:^1.4.1": - version: 1.4.4 - resolution: "end-of-stream@npm:1.4.4" +"@yarnpkg/parsers@npm:^3.0.0": + version: 3.0.2 + resolution: "@yarnpkg/parsers@npm:3.0.2" dependencies: - once: ^1.4.0 - checksum: 530a5a5a1e517e962854a31693dbb5c0b2fc40b46dad2a56a2deec656ca040631124f4795823acc68238147805f8b021abbe221f4afed5ef3c8e8efc2024908b + js-yaml: ^3.10.0 + tslib: ^2.4.0 + checksum: fb40a87ae7c9f3fc0b2a6b7d84375d1c69ae8304daf598c089b52966bfb4ac94fbd2dcd87ed041970416e03d34359cb5ff16be5f5601f48d1f936213a8edaf4d languageName: node linkType: hard -"enhanced-resolve@npm:^5.17.1": - version: 5.17.1 - resolution: "enhanced-resolve@npm:5.17.1" - dependencies: - graceful-fs: ^4.2.4 - tapable: ^2.2.0 - checksum: 4bc38cf1cea96456f97503db7280394177d1bc46f8f87c267297d04f795ac5efa81e48115a2f5b6273c781027b5b6bfc5f62b54df629e4d25fa7001a86624f59 +"@zxing/text-encoding@npm:0.9.0": + version: 0.9.0 + resolution: "@zxing/text-encoding@npm:0.9.0" + checksum: c23b12aee7639382e4949961304a1294776afaffa40f579e09ffecd0e5e68cf26ef3edd75009de46da8a536e571448755ca68b3e2ea707d53793c0edb2e2c34a languageName: node linkType: hard -"enquirer@npm:^2.3.0": - version: 2.4.1 - resolution: "enquirer@npm:2.4.1" - dependencies: - ansi-colors: ^4.1.1 - strip-ansi: ^6.0.1 - checksum: f080f11a74209647dbf347a7c6a83c8a47ae1ebf1e75073a808bc1088eb780aa54075bfecd1bcdb3e3c724520edb8e6ee05da031529436b421b71066fcc48cb5 +"a-sync-waterfall@npm:^1.0.0": + version: 1.0.1 + resolution: "a-sync-waterfall@npm:1.0.1" + checksum: 534948b50d6787c2dd5b7e89179b30c0fd96ac80a662d0f92eaa568cfffb36f1eea4aa720e3a21572d8b5f8686940954ac9d8c7667bcc719c1317ae3bdf86fe0 languageName: node linkType: hard -"entities@npm:^2.0.0": - version: 2.2.0 - resolution: "entities@npm:2.2.0" - checksum: 19010dacaf0912c895ea262b4f6128574f9ccf8d4b3b65c7e8334ad0079b3706376360e28d8843ff50a78aabcb8f08f0a32dbfacdc77e47ed77ca08b713669b3 +"abab@npm:^2.0.3, abab@npm:^2.0.5, abab@npm:^2.0.6": + version: 2.0.6 + resolution: "abab@npm:2.0.6" + checksum: 6ffc1af4ff315066c62600123990d87551ceb0aafa01e6539da77b0f5987ac7019466780bf480f1787576d4385e3690c81ccc37cfda12819bf510b8ab47e5a3e languageName: node linkType: hard -"entities@npm:^4.2.0, entities@npm:^4.4.0, entities@npm:^4.5.0": - version: 4.5.0 - resolution: "entities@npm:4.5.0" - checksum: 853f8ebd5b425d350bffa97dd6958143179a5938352ccae092c62d1267c4e392a039be1bae7d51b6e4ffad25f51f9617531fedf5237f15df302ccfb452cbf2d7 +"abbrev@npm:1, abbrev@npm:^1.0.0": + version: 1.1.1 + resolution: "abbrev@npm:1.1.1" + checksum: a4a97ec07d7ea112c517036882b2ac22f3109b7b19077dc656316d07d308438aac28e4d9746dc4d84bf6b1e75b4a7b0a5f3cb30592419f128ca9a8cee3bcfa17 languageName: node linkType: hard -"env-paths@npm:^2.2.0": - version: 2.2.1 - resolution: "env-paths@npm:2.2.1" - checksum: 65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e +"abbrev@npm:^2.0.0": + version: 2.0.0 + resolution: "abbrev@npm:2.0.0" + checksum: 0e994ad2aa6575f94670d8a2149afe94465de9cedaaaac364e7fb43a40c3691c980ff74899f682f4ca58fa96b4cbd7421a015d3a6defe43a442117d7821a2f36 languageName: node linkType: hard -"err-code@npm:^2.0.2": - version: 2.0.3 - resolution: "err-code@npm:2.0.3" - checksum: 8b7b1be20d2de12d2255c0bc2ca638b7af5171142693299416e6a9339bd7d88fc8d7707d913d78e0993176005405a236b066b45666b27b797252c771156ace54 +"abort-controller@npm:^3.0.0": + version: 3.0.0 + resolution: "abort-controller@npm:3.0.0" + dependencies: + event-target-shim: ^5.0.0 + checksum: 170bdba9b47b7e65906a28c8ce4f38a7a369d78e2271706f020849c1bfe0ee2067d4261df8bbb66eb84f79208fd5b710df759d64191db58cfba7ce8ef9c54b75 languageName: node linkType: hard -"error-ex@npm:^1.3.1": - version: 1.3.2 - resolution: "error-ex@npm:1.3.2" +"accepts@npm:^1.3.5, accepts@npm:~1.3.4, accepts@npm:~1.3.8": + version: 1.3.8 + resolution: "accepts@npm:1.3.8" dependencies: - is-arrayish: ^0.2.1 - checksum: c1c2b8b65f9c91b0f9d75f0debaa7ec5b35c266c2cac5de412c1a6de86d4cbae04ae44e510378cb14d032d0645a36925d0186f8bb7367bcc629db256b743a001 + mime-types: ~2.1.34 + negotiator: 0.6.3 + checksum: 50c43d32e7b50285ebe84b613ee4a3aa426715a7d131b65b786e2ead0fd76b6b60091b9916d3478a75f11f162628a2139991b6c03ab3f1d9ab7c86075dc8eab4 languageName: node linkType: hard -"error-stack-parser@npm:^2.0.6": - version: 2.1.4 - resolution: "error-stack-parser@npm:2.1.4" +"ace-builds@npm:^1.32.7, ace-builds@npm:^1.4.13": + version: 1.37.0 + resolution: "ace-builds@npm:1.37.0" + checksum: ce461a9b581e749694e3c4e26539bb5013e36c84f6668c71e66fd04c2cfa315fd9299ce0f056535a56c8521258b6755679c2d89b99b73655128c8b476d530bed + languageName: node + linkType: hard + +"acorn-globals@npm:^6.0.0": + version: 6.0.0 + resolution: "acorn-globals@npm:6.0.0" dependencies: - stackframe: ^1.3.4 - checksum: 3b916d2d14c6682f287c8bfa28e14672f47eafe832701080e420e7cdbaebb2c50293868256a95706ac2330fe078cf5664713158b49bc30d7a5f2ac229ded0e18 + acorn: ^7.1.1 + acorn-walk: ^7.1.1 + checksum: 72d95e5b5e585f9acd019b993ab8bbba68bb3cbc9d9b5c1ebb3c2f1fe5981f11deababfb4949f48e6262f9c57878837f5958c0cca396f81023814680ca878042 languageName: node linkType: hard -"es-abstract@npm:^1.17.5, es-abstract@npm:^1.22.1, es-abstract@npm:^1.22.3, es-abstract@npm:^1.23.0, es-abstract@npm:^1.23.1, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3": - version: 1.23.3 - resolution: "es-abstract@npm:1.23.3" +"acorn-globals@npm:^7.0.0": + version: 7.0.1 + resolution: "acorn-globals@npm:7.0.1" dependencies: - array-buffer-byte-length: ^1.0.1 - arraybuffer.prototype.slice: ^1.0.3 - available-typed-arrays: ^1.0.7 - call-bind: ^1.0.7 - data-view-buffer: ^1.0.1 - data-view-byte-length: ^1.0.1 - data-view-byte-offset: ^1.0.0 - es-define-property: ^1.0.0 - es-errors: ^1.3.0 - es-object-atoms: ^1.0.0 - es-set-tostringtag: ^2.0.3 - es-to-primitive: ^1.2.1 - function.prototype.name: ^1.1.6 - get-intrinsic: ^1.2.4 - get-symbol-description: ^1.0.2 - globalthis: ^1.0.3 - gopd: ^1.0.1 - has-property-descriptors: ^1.0.2 - has-proto: ^1.0.3 - has-symbols: ^1.0.3 - hasown: ^2.0.2 - internal-slot: ^1.0.7 - is-array-buffer: ^3.0.4 - is-callable: ^1.2.7 - is-data-view: ^1.0.1 - is-negative-zero: ^2.0.3 - is-regex: ^1.1.4 - is-shared-array-buffer: ^1.0.3 - is-string: ^1.0.7 - is-typed-array: ^1.1.13 - is-weakref: ^1.0.2 - object-inspect: ^1.13.1 - object-keys: ^1.1.1 - object.assign: ^4.1.5 - regexp.prototype.flags: ^1.5.2 - safe-array-concat: ^1.1.2 - safe-regex-test: ^1.0.3 - string.prototype.trim: ^1.2.9 - string.prototype.trimend: ^1.0.8 - string.prototype.trimstart: ^1.0.8 - typed-array-buffer: ^1.0.2 - typed-array-byte-length: ^1.0.1 - typed-array-byte-offset: ^1.0.2 - typed-array-length: ^1.0.6 - unbox-primitive: ^1.0.2 - which-typed-array: ^1.1.15 - checksum: f840cf161224252512f9527306b57117192696571e07920f777cb893454e32999206198b4f075516112af6459daca282826d1735c450528470356d09eff3a9ae + acorn: ^8.1.0 + acorn-walk: ^8.0.2 + checksum: 2a2998a547af6d0db5f0cdb90acaa7c3cbca6709010e02121fb8b8617c0fbd8bab0b869579903fde358ac78454356a14fadcc1a672ecb97b04b1c2ccba955ce8 languageName: node linkType: hard -"es-aggregate-error@npm:^1.0.7": - version: 1.0.13 - resolution: "es-aggregate-error@npm:1.0.13" - dependencies: - define-data-property: ^1.1.4 - define-properties: ^1.2.1 - es-abstract: ^1.23.2 - es-errors: ^1.3.0 - function-bind: ^1.1.2 - globalthis: ^1.0.3 - has-property-descriptors: ^1.0.2 - set-function-name: ^2.0.2 - checksum: f29596a9267220850fd77cc32abec369ffdea8ccc05de3ca387e55cf1711db2d1f6cdd1384f5bb968dbfb3ae8371919e82a61edb7219123caa41b924f31f1821 +"acorn-jsx@npm:^5.3.2": + version: 5.3.2 + resolution: "acorn-jsx@npm:5.3.2" + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: c3d3b2a89c9a056b205b69530a37b972b404ee46ec8e5b341666f9513d3163e2a4f214a71f4dfc7370f5a9c07472d2fd1c11c91c3f03d093e37637d95da98950 languageName: node linkType: hard -"es-define-property@npm:^1.0.0": - version: 1.0.0 - resolution: "es-define-property@npm:1.0.0" +"acorn-walk@npm:^7.1.1": + version: 7.2.0 + resolution: "acorn-walk@npm:7.2.0" + checksum: 9252158a79b9d92f1bc0dd6acc0fcfb87a67339e84bcc301bb33d6078936d27e35d606b4d35626d2962cd43c256d6f27717e70cbe15c04fff999ab0b2260b21f + 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" dependencies: - get-intrinsic: ^1.2.4 - checksum: f66ece0a887b6dca71848fa71f70461357c0e4e7249696f81bad0a1f347eed7b31262af4a29f5d726dc026426f085483b6b90301855e647aa8e21936f07293c6 + acorn: ^8.11.0 + checksum: 4ff03f42323e7cf90f1683e08606b0f460e1e6ac263d2730e3df91c7665b6f64e696db6ea27ee4bed18c2599569be61f28a8399fa170c611161a348c402ca19c languageName: node linkType: hard -"es-errors@npm:^1.2.1, es-errors@npm:^1.3.0": - version: 1.3.0 - resolution: "es-errors@npm:1.3.0" - checksum: ec1414527a0ccacd7f15f4a3bc66e215f04f595ba23ca75cdae0927af099b5ec865f9f4d33e9d7e86f512f252876ac77d4281a7871531a50678132429b1271b5 +"acorn@npm:^7.1.1": + version: 7.4.1 + resolution: "acorn@npm:7.4.1" + bin: + acorn: bin/acorn + checksum: 1860f23c2107c910c6177b7b7be71be350db9e1080d814493fae143ae37605189504152d1ba8743ba3178d0b37269ce1ffc42b101547fdc1827078f82671e407 languageName: node linkType: hard -"es-iterator-helpers@npm:^1.1.0": - version: 1.1.0 - resolution: "es-iterator-helpers@npm:1.1.0" - dependencies: - call-bind: ^1.0.7 - define-properties: ^1.2.1 - es-abstract: ^1.23.3 - es-errors: ^1.3.0 - es-set-tostringtag: ^2.0.3 - function-bind: ^1.1.2 - get-intrinsic: ^1.2.4 - globalthis: ^1.0.4 - has-property-descriptors: ^1.0.2 - has-proto: ^1.0.3 - has-symbols: ^1.0.3 - internal-slot: ^1.0.7 - iterator.prototype: ^1.1.3 - safe-array-concat: ^1.1.2 - checksum: 4ba3a32ab7ba05b85f0ae30604feeb8ffd801fe762e9df9577bd220a96b9eaa2e90af8e6bdc498e523051f293955e2f7d2bddd34de71e1428a1b8ff3fd961016 +"acorn@npm:^8.1.0, acorn@npm:^8.11.0, acorn@npm:^8.14.0, acorn@npm:^8.2.4, acorn@npm:^8.4.1, acorn@npm:^8.8.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0": + version: 8.14.0 + resolution: "acorn@npm:8.14.0" + bin: + acorn: bin/acorn + checksum: 8755074ba55fff94e84e81c72f1013c2d9c78e973c31231c8ae505a5f966859baf654bddd75046bffd73ce816b149298977fff5077a3033dedba0ae2aad152d4 languageName: node linkType: hard -"es-module-lexer@npm:^0.9.3": - version: 0.9.3 - resolution: "es-module-lexer@npm:0.9.3" - checksum: 84bbab23c396281db2c906c766af58b1ae2a1a2599844a504df10b9e8dc77ec800b3211fdaa133ff700f5703d791198807bba25d9667392d27a5e9feda344da8 +"address@npm:^1.0.1, address@npm:^1.1.2": + version: 1.2.2 + resolution: "address@npm:1.2.2" + checksum: ace439960c1e3564d8f523aff23a841904bf33a2a7c2e064f7f60a064194075758b9690e65bd9785692a4ef698a998c57eb74d145881a1cecab8ba658ddb1607 languageName: node linkType: hard -"es-module-lexer@npm:^1.2.1, es-module-lexer@npm:^1.3.1": - version: 1.5.4 - resolution: "es-module-lexer@npm:1.5.4" - checksum: a0cf04fb92d052647ac7d818d1913b98d3d3d0f5b9d88f0eafb993436e4c3e2c958599db68839d57f2dfa281fdf0f60e18d448eb78fc292c33c0f25635b6854f +"adm-zip@npm:^0.5.10": + version: 0.5.16 + resolution: "adm-zip@npm:0.5.16" + checksum: 1f4104f3462b99e1b34d78ccfbdcf47e533a9cc7f894cedec6cd67b06cc6ad0b3a45241d66df5471050c7abbdd67e5707e3959fc76d75176ed6101a5b2a580d5 languageName: node linkType: hard -"es-object-atoms@npm:^1.0.0": - version: 1.0.0 - resolution: "es-object-atoms@npm:1.0.0" +"agent-base@npm:6, agent-base@npm:^6.0.2": + version: 6.0.2 + resolution: "agent-base@npm:6.0.2" dependencies: - es-errors: ^1.3.0 - checksum: 26f0ff78ab93b63394e8403c353842b2272836968de4eafe97656adfb8a7c84b9099bf0fe96ed58f4a4cddc860f6e34c77f91649a58a5daa4a9c40b902744e3c + debug: 4 + checksum: f52b6872cc96fd5f622071b71ef200e01c7c4c454ee68bc9accca90c98cfb39f2810e3e9aa330435835eedc8c23f4f8a15267f67c6e245d2b33757575bdac49d languageName: node linkType: hard -"es-set-tostringtag@npm:^2.0.3": - version: 2.0.3 - resolution: "es-set-tostringtag@npm:2.0.3" - dependencies: - get-intrinsic: ^1.2.4 - has-tostringtag: ^1.0.2 - hasown: ^2.0.1 - checksum: 7227fa48a41c0ce83e0377b11130d324ac797390688135b8da5c28994c0165be8b252e15cd1de41e1325e5a5412511586960213e88f9ab4a5e7d028895db5129 +"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.2": + version: 7.1.3 + resolution: "agent-base@npm:7.1.3" + checksum: 87bb7ee54f5ecf0ccbfcba0b07473885c43ecd76cb29a8db17d6137a19d9f9cd443a2a7c5fd8a3f24d58ad8145f9eb49116344a66b107e1aeab82cf2383f4753 languageName: node linkType: hard -"es-shim-unscopables@npm:^1.0.0, es-shim-unscopables@npm:^1.0.2": - version: 1.0.2 - resolution: "es-shim-unscopables@npm:1.0.2" +"agentkeepalive@npm:^4.1.4, agentkeepalive@npm:^4.2.1": + version: 4.5.0 + resolution: "agentkeepalive@npm:4.5.0" dependencies: - hasown: ^2.0.0 - checksum: 432bd527c62065da09ed1d37a3f8e623c423683285e6188108286f4a1e8e164a5bcbfbc0051557c7d14633cd2a41ce24c7048e6bbb66a985413fd32f1be72626 + humanize-ms: ^1.2.1 + checksum: 13278cd5b125e51eddd5079f04d6fe0914ac1b8b91c1f3db2c1822f99ac1a7457869068997784342fe455d59daaff22e14fb7b8c3da4e741896e7e31faf92481 languageName: node linkType: hard -"es-to-primitive@npm:^1.2.1": - version: 1.2.1 - resolution: "es-to-primitive@npm:1.2.1" +"aggregate-error@npm:^3.0.0, aggregate-error@npm:^3.1.0": + version: 3.1.0 + resolution: "aggregate-error@npm:3.1.0" dependencies: - is-callable: ^1.1.4 - is-date-object: ^1.0.1 - is-symbol: ^1.0.2 - checksum: 4ead6671a2c1402619bdd77f3503991232ca15e17e46222b0a41a5d81aebc8740a77822f5b3c965008e631153e9ef0580540007744521e72de8e33599fca2eed + clean-stack: ^2.0.0 + indent-string: ^4.0.0 + checksum: 1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79 languageName: node linkType: hard -"es6-error@npm:^4.1.1": - version: 4.1.1 - resolution: "es6-error@npm:4.1.1" - checksum: ae41332a51ec1323da6bbc5d75b7803ccdeddfae17c41b6166ebbafc8e8beb7a7b80b884b7fab1cc80df485860ac3c59d78605e860bb4f8cd816b3d6ade0d010 +"ajv-draft-04@npm:^1.0.0, ajv-draft-04@npm:~1.0.0": + version: 1.0.0 + resolution: "ajv-draft-04@npm:1.0.0" + peerDependencies: + ajv: ^8.5.0 + peerDependenciesMeta: + ajv: + optional: true + checksum: 3f11fa0e7f7359bef6608657f02ab78e9cc62b1fb7bdd860db0d00351b3863a1189c1a23b72466d2d82726cab4eb20725c76f5e7c134a89865e2bfd0e6828137 languageName: node linkType: hard -"esbuild-loader@npm:^2.18.0": - version: 2.21.0 - resolution: "esbuild-loader@npm:2.21.0" - dependencies: - esbuild: ^0.16.17 - joycon: ^3.0.1 - json5: ^2.2.0 - loader-utils: ^2.0.0 - tapable: ^2.2.0 - webpack-sources: ^1.4.3 +"ajv-errors@npm:^3.0.0, ajv-errors@npm:~3.0.0": + version: 3.0.0 + resolution: "ajv-errors@npm:3.0.0" peerDependencies: - webpack: ^4.40.0 || ^5.0.0 - checksum: a0456ed7794e2c220a6068e92d739bc19765bff352bf7e44442aa8127631cc517ecd02a3ee969e31fa6b6a91befeac928296488c95e3818a776cd3b11d46348c + ajv: ^8.0.1 + checksum: f3d1610a104fa776c2f90534acbe2113842a40d5ee446062da9e956ae6de6959afc997da1e3948c47316faa225255fc2d9d97aacd0803f47998fb38156d3d03c languageName: node linkType: hard -"esbuild-loader@npm:^4.0.0": - version: 4.2.2 - resolution: "esbuild-loader@npm:4.2.2" +"ajv-formats-draft2019@npm:^1.6.1": + version: 1.6.1 + resolution: "ajv-formats-draft2019@npm:1.6.1" dependencies: - esbuild: ^0.21.0 - get-tsconfig: ^4.7.0 - loader-utils: ^2.0.4 - webpack-sources: ^1.4.3 + punycode: ^2.1.1 + schemes: ^1.4.0 + smtp-address-parser: ^1.0.3 + uri-js: ^4.4.1 peerDependencies: - webpack: ^4.40.0 || ^5.0.0 - checksum: 793d2482693c1c66298f63d7fdb62f2f3e314b006ade1dc3c46b46ade39777c5fba5930c2fa2752636c511997faa08d4a0f5d5b8a734b9046b3626aa6d5ab8e3 + ajv: "*" + checksum: 281f802f76defbb5821fa19e60b38c7be13d2a89d5f915ee11dc32c4be631f4785bb67595edf2657c2b05697e6cb89d50ef4c5fecbd0c814c0e05132ed3a650c languageName: node linkType: hard -"esbuild@npm:^0.16.17": - version: 0.16.17 - resolution: "esbuild@npm:0.16.17" - dependencies: - "@esbuild/android-arm": 0.16.17 - "@esbuild/android-arm64": 0.16.17 - "@esbuild/android-x64": 0.16.17 - "@esbuild/darwin-arm64": 0.16.17 - "@esbuild/darwin-x64": 0.16.17 - "@esbuild/freebsd-arm64": 0.16.17 - "@esbuild/freebsd-x64": 0.16.17 - "@esbuild/linux-arm": 0.16.17 - "@esbuild/linux-arm64": 0.16.17 - "@esbuild/linux-ia32": 0.16.17 - "@esbuild/linux-loong64": 0.16.17 - "@esbuild/linux-mips64el": 0.16.17 - "@esbuild/linux-ppc64": 0.16.17 - "@esbuild/linux-riscv64": 0.16.17 - "@esbuild/linux-s390x": 0.16.17 - "@esbuild/linux-x64": 0.16.17 - "@esbuild/netbsd-x64": 0.16.17 - "@esbuild/openbsd-x64": 0.16.17 - "@esbuild/sunos-x64": 0.16.17 - "@esbuild/win32-arm64": 0.16.17 - "@esbuild/win32-ia32": 0.16.17 - "@esbuild/win32-x64": 0.16.17 - dependenciesMeta: - "@esbuild/android-arm": - optional: true - "@esbuild/android-arm64": - optional: true - "@esbuild/android-x64": - optional: true - "@esbuild/darwin-arm64": - optional: true - "@esbuild/darwin-x64": - optional: true - "@esbuild/freebsd-arm64": - optional: true - "@esbuild/freebsd-x64": - optional: true - "@esbuild/linux-arm": - optional: true - "@esbuild/linux-arm64": - optional: true - "@esbuild/linux-ia32": - optional: true - "@esbuild/linux-loong64": - optional: true - "@esbuild/linux-mips64el": - optional: true - "@esbuild/linux-ppc64": - optional: true - "@esbuild/linux-riscv64": - optional: true - "@esbuild/linux-s390x": - optional: true - "@esbuild/linux-x64": - optional: true - "@esbuild/netbsd-x64": - optional: true - "@esbuild/openbsd-x64": - optional: true - "@esbuild/sunos-x64": - optional: true - "@esbuild/win32-arm64": - optional: true - "@esbuild/win32-ia32": - optional: true - "@esbuild/win32-x64": +"ajv-formats@npm:^2.1.1, ajv-formats@npm:~2.1.0": + version: 2.1.1 + resolution: "ajv-formats@npm:2.1.1" + dependencies: + ajv: ^8.0.0 + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: optional: true - bin: - esbuild: bin/esbuild - checksum: 4c2cc609ecfb426554bc3f75beb92d89eb2d0c515cfceebaa36c7599d7dcaab7056b70f6d6b51e72b45951ddf9021ee28e356cf205f8e42cc055d522312ea30c + checksum: 4a287d937f1ebaad4683249a4c40c0fa3beed30d9ddc0adba04859026a622da0d317851316ea64b3680dc60f5c3c708105ddd5d5db8fe595d9d0207fd19f90b7 languageName: node linkType: hard -"esbuild@npm:^0.21.0": - version: 0.21.5 - resolution: "esbuild@npm:0.21.5" +"ajv-formats@npm:~3.0.1": + version: 3.0.1 + resolution: "ajv-formats@npm:3.0.1" dependencies: - "@esbuild/aix-ppc64": 0.21.5 - "@esbuild/android-arm": 0.21.5 - "@esbuild/android-arm64": 0.21.5 - "@esbuild/android-x64": 0.21.5 - "@esbuild/darwin-arm64": 0.21.5 - "@esbuild/darwin-x64": 0.21.5 - "@esbuild/freebsd-arm64": 0.21.5 - "@esbuild/freebsd-x64": 0.21.5 - "@esbuild/linux-arm": 0.21.5 - "@esbuild/linux-arm64": 0.21.5 - "@esbuild/linux-ia32": 0.21.5 - "@esbuild/linux-loong64": 0.21.5 - "@esbuild/linux-mips64el": 0.21.5 - "@esbuild/linux-ppc64": 0.21.5 - "@esbuild/linux-riscv64": 0.21.5 - "@esbuild/linux-s390x": 0.21.5 - "@esbuild/linux-x64": 0.21.5 - "@esbuild/netbsd-x64": 0.21.5 - "@esbuild/openbsd-x64": 0.21.5 - "@esbuild/sunos-x64": 0.21.5 - "@esbuild/win32-arm64": 0.21.5 - "@esbuild/win32-ia32": 0.21.5 - "@esbuild/win32-x64": 0.21.5 - dependenciesMeta: - "@esbuild/aix-ppc64": - optional: true - "@esbuild/android-arm": - optional: true - "@esbuild/android-arm64": - optional: true - "@esbuild/android-x64": - optional: true - "@esbuild/darwin-arm64": - optional: true - "@esbuild/darwin-x64": - optional: true - "@esbuild/freebsd-arm64": - optional: true - "@esbuild/freebsd-x64": - optional: true - "@esbuild/linux-arm": - optional: true - "@esbuild/linux-arm64": - optional: true - "@esbuild/linux-ia32": - optional: true - "@esbuild/linux-loong64": - optional: true - "@esbuild/linux-mips64el": - optional: true - "@esbuild/linux-ppc64": - optional: true - "@esbuild/linux-riscv64": - optional: true - "@esbuild/linux-s390x": - optional: true - "@esbuild/linux-x64": - optional: true - "@esbuild/netbsd-x64": - optional: true - "@esbuild/openbsd-x64": - optional: true - "@esbuild/sunos-x64": - optional: true - "@esbuild/win32-arm64": - optional: true - "@esbuild/win32-ia32": - optional: true - "@esbuild/win32-x64": + ajv: ^8.0.0 + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: optional: true + checksum: f4e1fe232d67fcafc02eafe373a7a9962351e0439dd0736647ca75c93c3da23b430b6502c255ab4315410ae330d4f3013ac9fe226c40b2524ca93a58e786d086 + languageName: node + linkType: hard + +"ajv-i18n@npm:^4.2.0": + version: 4.2.0 + resolution: "ajv-i18n@npm:4.2.0" + peerDependencies: + ajv: ^8.0.0-beta.0 + checksum: 6fa53eeafb13dc11dd99119039cd1e4394c949ca3ec407b2b421b8aae20ad2acd2f615f134ab9de64a636d66c6e0df1e15dcfca50b45683ebb9044e6667735e9 + languageName: node + linkType: hard + +"ajv-keywords@npm:^3.4.1, ajv-keywords@npm:^3.5.2": + version: 3.5.2 + resolution: "ajv-keywords@npm:3.5.2" + peerDependencies: + ajv: ^6.9.1 + checksum: 7dc5e5931677a680589050f79dcbe1fefbb8fea38a955af03724229139175b433c63c68f7ae5f86cf8f65d55eb7c25f75a046723e2e58296707617ca690feae9 + languageName: node + linkType: hard + +"ajv-keywords@npm:^5.1.0": + version: 5.1.0 + resolution: "ajv-keywords@npm:5.1.0" + dependencies: + fast-deep-equal: ^3.1.3 + peerDependencies: + ajv: ^8.8.2 + checksum: c35193940b853119242c6757787f09ecf89a2c19bcd36d03ed1a615e710d19d450cb448bfda407b939aba54b002368c8bff30529cc50a0536a8e10bcce300421 + languageName: node + linkType: hard + +"ajv@npm:^6.12.2, ajv@npm:^6.12.3, ajv@npm:^6.12.4, ajv@npm:^6.12.5": + version: 6.12.6 + resolution: "ajv@npm:6.12.6" + dependencies: + fast-deep-equal: ^3.1.1 + fast-json-stable-stringify: ^2.0.0 + json-schema-traverse: ^0.4.1 + uri-js: ^4.2.2 + checksum: 874972efe5c4202ab0a68379481fbd3d1b5d0a7bd6d3cc21d40d3536ebff3352a2a1fabb632d4fd2cc7fe4cbdcd5ed6782084c9bbf7f32a1536d18f9da5007d4 + languageName: node + linkType: hard + +"ajv@npm:^8.0.0, ajv@npm:^8.10.0, ajv@npm:^8.11.0, ajv@npm:^8.12.0, ajv@npm:^8.16.0, ajv@npm:^8.17.1, ajv@npm:^8.6.0, ajv@npm:^8.6.3, ajv@npm:^8.9.0": + version: 8.17.1 + resolution: "ajv@npm:8.17.1" + dependencies: + fast-deep-equal: ^3.1.3 + fast-uri: ^3.0.1 + json-schema-traverse: ^1.0.0 + require-from-string: ^2.0.2 + checksum: 1797bf242cfffbaf3b870d13565bd1716b73f214bb7ada9a497063aada210200da36e3ed40237285f3255acc4feeae91b1fb183625331bad27da95973f7253d9 + languageName: node + linkType: hard + +"ajv@npm:~8.12.0": + version: 8.12.0 + resolution: "ajv@npm:8.12.0" + dependencies: + fast-deep-equal: ^3.1.1 + json-schema-traverse: ^1.0.0 + require-from-string: ^2.0.2 + uri-js: ^4.2.2 + checksum: 4dc13714e316e67537c8b31bc063f99a1d9d9a497eb4bbd55191ac0dcd5e4985bbb71570352ad6f1e76684fb6d790928f96ba3b2d4fd6e10024be9612fe3f001 + languageName: node + linkType: hard + +"ajv@npm:~8.13.0": + version: 8.13.0 + resolution: "ajv@npm:8.13.0" + dependencies: + fast-deep-equal: ^3.1.3 + json-schema-traverse: ^1.0.0 + require-from-string: ^2.0.2 + uri-js: ^4.4.1 + checksum: 6de82d0b2073e645ca3300561356ddda0234f39b35d2125a8700b650509b296f41c00ab69f53178bbe25ad688bd6ac3747ab44101f2f4bd245952e8fd6ccc3c1 + languageName: node + linkType: hard + +"ansi-colors@npm:^4.1.1, ansi-colors@npm:^4.1.3": + version: 4.1.3 + resolution: "ansi-colors@npm:4.1.3" + checksum: a9c2ec842038a1fabc7db9ece7d3177e2fe1c5dc6f0c51ecfbf5f39911427b89c00b5dc6b8bd95f82a26e9b16aaae2e83d45f060e98070ce4d1333038edceb0e + languageName: node + linkType: hard + +"ansi-escapes@npm:^4.2.1": + version: 4.3.2 + resolution: "ansi-escapes@npm:4.3.2" + dependencies: + type-fest: ^0.21.3 + checksum: 93111c42189c0a6bed9cdb4d7f2829548e943827ee8479c74d6e0b22ee127b2a21d3f8b5ca57723b8ef78ce011fbfc2784350eb2bde3ccfccf2f575fa8489815 + languageName: node + linkType: hard + +"ansi-html-community@npm:^0.0.8": + version: 0.0.8 + resolution: "ansi-html-community@npm:0.0.8" bin: - esbuild: bin/esbuild - checksum: 2911c7b50b23a9df59a7d6d4cdd3a4f85855787f374dce751148dbb13305e0ce7e880dde1608c2ab7a927fc6cec3587b80995f7fc87a64b455f8b70b55fd8ec1 + ansi-html: bin/ansi-html + checksum: 04c568e8348a636963f915e48eaa3e01218322e1169acafdd79c384f22e5558c003f79bbc480c1563865497482817c7eed025f0653ebc17642fededa5cb42089 + languageName: node + linkType: hard + +"ansi-html@npm:^0.0.9": + version: 0.0.9 + resolution: "ansi-html@npm:0.0.9" + bin: + ansi-html: bin/ansi-html + checksum: a03754d6f66bae33938ed8bb3dd98174b7f4895ebe45226185036ed4a1388a7aaf2f2b9581608f0626432ba7add92cfc590aa6475a78bbb90d9d1e1d1af8cbe6 + languageName: node + linkType: hard + +"ansi-regex@npm:^4.1.0": + version: 4.1.1 + resolution: "ansi-regex@npm:4.1.1" + checksum: b1a6ee44cb6ecdabaa770b2ed500542714d4395d71c7e5c25baa631f680fb2ad322eb9ba697548d498a6fd366949fc8b5bfcf48d49a32803611f648005b01888 + languageName: node + linkType: hard + +"ansi-regex@npm:^5.0.1": + version: 5.0.1 + resolution: "ansi-regex@npm:5.0.1" + checksum: 2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b + languageName: node + linkType: hard + +"ansi-regex@npm:^6.0.1": + version: 6.1.0 + resolution: "ansi-regex@npm:6.1.0" + checksum: 495834a53b0856c02acd40446f7130cb0f8284f4a39afdab20d5dc42b2e198b1196119fe887beed8f9055c4ff2055e3b2f6d4641d0be018cdfb64fedf6fc1aac + languageName: node + linkType: hard + +"ansi-styles@npm:^3.2.1": + version: 3.2.1 + resolution: "ansi-styles@npm:3.2.1" + dependencies: + color-convert: ^1.9.0 + checksum: d85ade01c10e5dd77b6c89f34ed7531da5830d2cb5882c645f330079975b716438cd7ebb81d0d6e6b4f9c577f19ae41ab55f07f19786b02f9dfd9e0377395665 + languageName: node + linkType: hard + +"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": + version: 4.3.0 + resolution: "ansi-styles@npm:4.3.0" + dependencies: + color-convert: ^2.0.1 + checksum: 513b44c3b2105dd14cc42a19271e80f386466c4be574bccf60b627432f9198571ebf4ab1e4c3ba17347658f4ee1711c163d574248c0c1cdc2d5917a0ad582ec4 + languageName: node + linkType: hard + +"ansi-styles@npm:^5.0.0": + version: 5.2.0 + resolution: "ansi-styles@npm:5.2.0" + checksum: d7f4e97ce0623aea6bc0d90dcd28881ee04cba06c570b97fd3391bd7a268eedfd9d5e2dd4fdcbdd82b8105df5faf6f24aaedc08eaf3da898e702db5948f63469 + languageName: node + linkType: hard + +"ansi-styles@npm:^6.1.0": + version: 6.2.1 + resolution: "ansi-styles@npm:6.2.1" + checksum: ef940f2f0ced1a6347398da88a91da7930c33ecac3c77b72c5905f8b8fe402c52e6fde304ff5347f616e27a742da3f1dc76de98f6866c69251ad0b07a66776d9 + languageName: node + linkType: hard + +"any-promise@npm:^1.0.0": + version: 1.3.0 + resolution: "any-promise@npm:1.3.0" + checksum: 0ee8a9bdbe882c90464d75d1f55cf027f5458650c4bd1f0467e65aec38ccccda07ca5844969ee77ed46d04e7dded3eaceb027e8d32f385688523fe305fa7e1de + languageName: node + linkType: hard + +"anymatch@npm:^3.0.3, anymatch@npm:~3.1.2": + version: 3.1.3 + resolution: "anymatch@npm:3.1.3" + dependencies: + normalize-path: ^3.0.0 + picomatch: ^2.0.4 + checksum: 3e044fd6d1d26545f235a9fe4d7a534e2029d8e59fa7fd9f2a6eb21230f6b5380ea1eaf55136e60cbf8e613544b3b766e7a6fa2102e2a3a117505466e3025dc2 + languageName: node + linkType: hard + +"apg-lite@npm:^1.0.4": + version: 1.0.4 + resolution: "apg-lite@npm:1.0.4" + checksum: 30a27eecb71350a6dd47f8944520e56c08063115197e8de15699b792e32101b452ff339cf9d5469db7a992b0f2f8659c16f72f24ab7465683fb7e6cf0dc4afcd + languageName: node + linkType: hard + +"app@link:../app::locator=backend%40workspace%3Apackages%2Fbackend": + version: 0.0.0-use.local + resolution: "app@link:../app::locator=backend%40workspace%3Apackages%2Fbackend" + languageName: node + linkType: soft + +"app@workspace:packages/app": + version: 0.0.0-use.local + resolution: "app@workspace:packages/app" + dependencies: + "@backstage-community/plugin-kiali": "workspace:^" + "@backstage/app-defaults": ^1.5.12 + "@backstage/catalog-model": ^1.7.0 + "@backstage/cli": ^0.28.0 + "@backstage/core-app-api": ^1.15.1 + "@backstage/core-components": ^0.15.1 + "@backstage/core-plugin-api": ^1.10.0 + "@backstage/integration-react": ^1.2.0 + "@backstage/plugin-api-docs": ^0.11.11 + "@backstage/plugin-catalog": ^1.24.0 + "@backstage/plugin-catalog-common": ^1.1.0 + "@backstage/plugin-catalog-graph": ^0.4.11 + "@backstage/plugin-catalog-import": ^0.12.5 + "@backstage/plugin-catalog-react": ^1.14.0 + "@backstage/plugin-kubernetes": ^0.11.16 + "@backstage/plugin-org": ^0.6.31 + "@backstage/plugin-permission-react": ^0.4.27 + "@backstage/plugin-scaffolder": ^1.26.0 + "@backstage/plugin-search": ^1.4.18 + "@backstage/plugin-search-react": ^1.8.1 + "@backstage/plugin-techdocs": ^1.11.0 + "@backstage/plugin-techdocs-module-addons-contrib": ^1.1.16 + "@backstage/plugin-techdocs-react": ^1.2.9 + "@backstage/plugin-user-settings": ^0.8.14 + "@backstage/test-utils": ^1.7.0 + "@backstage/theme": ^0.6.0 + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + "@playwright/test": ^1.32.3 + "@testing-library/dom": ^9.0.0 + "@testing-library/jest-dom": ^6.0.0 + "@testing-library/react": ^14.0.0 + "@testing-library/user-event": ^14.0.0 + "@types/react-dom": "*" + cross-env: ^7.0.0 + react: ^18.0.2 + react-dom: ^18.0.2 + react-router: ^6.3.0 + react-router-dom: ^6.3.0 + languageName: unknown + linkType: soft + +"append-field@npm:^1.0.0": + version: 1.0.0 + resolution: "append-field@npm:1.0.0" + checksum: 482ba08acc0ecef00fe7da6bf2f8e48359a9905ee1af525f3120c9260c02e91eedf0579b59d898e8d8455b6c199e340bc0a2fd4b9e02adaa29a8a86c722b37f9 + languageName: node + linkType: hard + +"aproba@npm:^1.0.3 || ^2.0.0": + version: 2.0.0 + resolution: "aproba@npm:2.0.0" + checksum: 5615cadcfb45289eea63f8afd064ab656006361020e1735112e346593856f87435e02d8dcc7ff0d11928bc7d425f27bc7c2a84f6c0b35ab0ff659c814c138a24 + languageName: node + linkType: hard + +"archiver-utils@npm:^5.0.0, archiver-utils@npm:^5.0.2": + version: 5.0.2 + resolution: "archiver-utils@npm:5.0.2" + dependencies: + glob: ^10.0.0 + graceful-fs: ^4.2.0 + is-stream: ^2.0.1 + lazystream: ^1.0.0 + lodash: ^4.17.15 + normalize-path: ^3.0.0 + readable-stream: ^4.0.0 + checksum: 7dc4f3001dc373bd0fa7671ebf08edf6f815cbc539c78b5478a2eaa67e52e3fc0e92f562cdef2ba016c4dcb5468d3d069eb89535c6844da4a5bb0baf08ad5720 + languageName: node + linkType: hard + +"archiver@npm:^7.0.0, archiver@npm:^7.0.1": + version: 7.0.1 + resolution: "archiver@npm:7.0.1" + dependencies: + archiver-utils: ^5.0.2 + async: ^3.2.4 + buffer-crc32: ^1.0.0 + readable-stream: ^4.0.0 + readdir-glob: ^1.1.2 + tar-stream: ^3.0.0 + zip-stream: ^6.0.1 + checksum: f93bcc00f919e0bbb6bf38fddf111d6e4d1ed34721b73cc073edd37278303a7a9f67aa4abd6fd2beb80f6c88af77f2eb4f60276343f67605e3aea404e5ad93ea + languageName: node + linkType: hard + +"are-we-there-yet@npm:^2.0.0": + version: 2.0.0 + resolution: "are-we-there-yet@npm:2.0.0" + dependencies: + delegates: ^1.0.0 + readable-stream: ^3.6.0 + checksum: 6c80b4fd04ecee6ba6e737e0b72a4b41bdc64b7d279edfc998678567ff583c8df27e27523bc789f2c99be603ffa9eaa612803da1d886962d2086e7ff6fa90c7c + languageName: node + linkType: hard + +"are-we-there-yet@npm:^3.0.0": + version: 3.0.1 + resolution: "are-we-there-yet@npm:3.0.1" + dependencies: + delegates: ^1.0.0 + readable-stream: ^3.6.0 + checksum: 52590c24860fa7173bedeb69a4c05fb573473e860197f618b9a28432ee4379049336727ae3a1f9c4cb083114601c1140cee578376164d0e651217a9843f9fe83 + languageName: node + linkType: hard + +"arg@npm:^4.1.0": + version: 4.1.3 + resolution: "arg@npm:4.1.3" + checksum: 544af8dd3f60546d3e4aff084d451b96961d2267d668670199692f8d054f0415d86fc5497d0e641e91546f0aa920e7c29e5250e99fc89f5552a34b5d93b77f43 + languageName: node + linkType: hard + +"arg@npm:^5.0.2": + version: 5.0.2 + resolution: "arg@npm:5.0.2" + checksum: 6c69ada1a9943d332d9e5382393e897c500908d91d5cb735a01120d5f71daf1b339b7b8980cbeaba8fd1afc68e658a739746179e4315a26e8a28951ff9930078 + languageName: node + linkType: hard + +"argparse@npm:^1.0.10, argparse@npm:^1.0.7, argparse@npm:~1.0.9": + version: 1.0.10 + resolution: "argparse@npm:1.0.10" + dependencies: + sprintf-js: ~1.0.2 + checksum: 7ca6e45583a28de7258e39e13d81e925cfa25d7d4aacbf806a382d3c02fcb13403a07fb8aeef949f10a7cfe4a62da0e2e807b348a5980554cc28ee573ef95945 + languageName: node + linkType: hard + +"argparse@npm:^2.0.1": + version: 2.0.1 + resolution: "argparse@npm:2.0.1" + checksum: 83644b56493e89a254bae05702abf3a1101b4fa4d0ca31df1c9985275a5a5bd47b3c27b7fa0b71098d41114d8ca000e6ed90cad764b306f8a503665e4d517ced + languageName: node + linkType: hard + +"args@npm:^5.0.0": + version: 5.0.3 + resolution: "args@npm:5.0.3" + dependencies: + camelcase: 5.0.0 + chalk: 2.4.2 + leven: 2.1.0 + mri: 1.1.4 + checksum: ac39e656090f9364d7a2a42216a572dfe36d3e4d16d87ca4c1c9552a1c325dc222b642124cb96cdeeafb46662922910191f5aa12142cc4ca117b6d85454c8423 + languageName: node + linkType: hard + +"aria-hidden@npm:^1.1.1": + version: 1.2.4 + resolution: "aria-hidden@npm:1.2.4" + dependencies: + tslib: ^2.0.0 + checksum: 2ac90b70d29c6349d86d90e022cf01f4885f9be193932d943a14127cf28560dd0baf068a6625f084163437a4be0578f513cf7892f4cc63bfe91aa41dce27c6b2 + languageName: node + linkType: hard + +"aria-query@npm:5.1.3": + version: 5.1.3 + resolution: "aria-query@npm:5.1.3" + dependencies: + deep-equal: ^2.0.5 + checksum: 929ff95f02857b650fb4cbcd2f41072eee2f46159a6605ea03bf63aa572e35ffdff43d69e815ddc462e16e07de8faba3978afc2813650b4448ee18c9895d982b + languageName: node + linkType: hard + +"aria-query@npm:5.3.0": + version: 5.3.0 + resolution: "aria-query@npm:5.3.0" + dependencies: + dequal: ^2.0.3 + checksum: 305bd73c76756117b59aba121d08f413c7ff5e80fa1b98e217a3443fcddb9a232ee790e24e432b59ae7625aebcf4c47cb01c2cac872994f0b426f5bdfcd96ba9 + languageName: node + linkType: hard + +"aria-query@npm:^5.0.0, aria-query@npm:^5.3.2": + version: 5.3.2 + resolution: "aria-query@npm:5.3.2" + checksum: d971175c85c10df0f6d14adfe6f1292409196114ab3c62f238e208b53103686f46cc70695a4f775b73bc65f6a09b6a092fd963c4f3a5a7d690c8fc5094925717 + languageName: node + linkType: hard + +"array-buffer-byte-length@npm:^1.0.0, array-buffer-byte-length@npm:^1.0.1": + version: 1.0.2 + resolution: "array-buffer-byte-length@npm:1.0.2" + dependencies: + call-bound: ^1.0.3 + is-array-buffer: ^3.0.5 + checksum: 0ae3786195c3211b423e5be8dd93357870e6fb66357d81da968c2c39ef43583ef6eece1f9cb1caccdae4806739c65dea832b44b8593414313cd76a89795fca63 + languageName: node + linkType: hard + +"array-flatten@npm:1.1.1": + version: 1.1.1 + resolution: "array-flatten@npm:1.1.1" + checksum: a9925bf3512d9dce202112965de90c222cd59a4fbfce68a0951d25d965cf44642931f40aac72309c41f12df19afa010ecadceb07cfff9ccc1621e99d89ab5f3b + languageName: node + linkType: hard + +"array-includes@npm:^3.1.6, array-includes@npm:^3.1.8": + version: 3.1.8 + resolution: "array-includes@npm:3.1.8" + dependencies: + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-abstract: ^1.23.2 + es-object-atoms: ^1.0.0 + get-intrinsic: ^1.2.4 + is-string: ^1.0.7 + checksum: eb39ba5530f64e4d8acab39297c11c1c5be2a4ea188ab2b34aba5fb7224d918f77717a9d57a3e2900caaa8440e59431bdaf5c974d5212ef65d97f132e38e2d91 + languageName: node + linkType: hard + +"array-union@npm:^2.1.0": + version: 2.1.0 + resolution: "array-union@npm:2.1.0" + checksum: 5bee12395cba82da674931df6d0fea23c4aa4660cb3b338ced9f828782a65caa232573e6bf3968f23e0c5eb301764a382cef2f128b170a9dc59de0e36c39f98d + languageName: node + linkType: hard + +"array.prototype.findlast@npm:^1.2.5": + version: 1.2.5 + resolution: "array.prototype.findlast@npm:1.2.5" + dependencies: + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-abstract: ^1.23.2 + es-errors: ^1.3.0 + es-object-atoms: ^1.0.0 + es-shim-unscopables: ^1.0.2 + checksum: 83ce4ad95bae07f136d316f5a7c3a5b911ac3296c3476abe60225bc4a17938bf37541972fcc37dd5adbc99cbb9c928c70bbbfc1c1ce549d41a415144030bb446 + languageName: node + linkType: hard + +"array.prototype.findlastindex@npm:^1.2.5": + version: 1.2.5 + resolution: "array.prototype.findlastindex@npm:1.2.5" + dependencies: + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-abstract: ^1.23.2 + es-errors: ^1.3.0 + es-object-atoms: ^1.0.0 + es-shim-unscopables: ^1.0.2 + checksum: 2c81cff2a75deb95bf1ed89b6f5f2bfbfb882211e3b7cc59c3d6b87df774cd9d6b36949a8ae39ac476e092c1d4a4905f5ee11a86a456abb10f35f8211ae4e710 + languageName: node + linkType: hard + +"array.prototype.flat@npm:^1.3.1, array.prototype.flat@npm:^1.3.2": + version: 1.3.3 + resolution: "array.prototype.flat@npm:1.3.3" + dependencies: + call-bind: ^1.0.8 + define-properties: ^1.2.1 + es-abstract: ^1.23.5 + es-shim-unscopables: ^1.0.2 + checksum: 5d5a7829ab2bb271a8d30a1c91e6271cef0ec534593c0fe6d2fb9ebf8bb62c1e5326e2fddcbbcbbe5872ca04f5e6b54a1ecf092e0af704fb538da9b2bfd95b40 + languageName: node + linkType: hard + +"array.prototype.flatmap@npm:^1.3.2": + version: 1.3.3 + resolution: "array.prototype.flatmap@npm:1.3.3" + dependencies: + call-bind: ^1.0.8 + define-properties: ^1.2.1 + es-abstract: ^1.23.5 + es-shim-unscopables: ^1.0.2 + checksum: 11b4de09b1cf008be6031bb507d997ad6f1892e57dc9153583de6ebca0f74ea403fffe0f203461d359de05048d609f3f480d9b46fed4099652d8b62cc972f284 + languageName: node + linkType: hard + +"array.prototype.tosorted@npm:^1.1.4": + version: 1.1.4 + resolution: "array.prototype.tosorted@npm:1.1.4" + dependencies: + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-abstract: ^1.23.3 + es-errors: ^1.3.0 + es-shim-unscopables: ^1.0.2 + checksum: e4142d6f556bcbb4f393c02e7dbaea9af8f620c040450c2be137c9cbbd1a17f216b9c688c5f2c08fbb038ab83f55993fa6efdd9a05881d84693c7bcb5422127a + languageName: node + linkType: hard + +"arraybuffer.prototype.slice@npm:^1.0.4": + version: 1.0.4 + resolution: "arraybuffer.prototype.slice@npm:1.0.4" + dependencies: + array-buffer-byte-length: ^1.0.1 + call-bind: ^1.0.8 + define-properties: ^1.2.1 + es-abstract: ^1.23.5 + es-errors: ^1.3.0 + get-intrinsic: ^1.2.6 + is-array-buffer: ^3.0.4 + checksum: b1d1fd20be4e972a3779b1569226f6740170dca10f07aa4421d42cefeec61391e79c557cda8e771f5baefe47d878178cd4438f60916ce831813c08132bced765 + languageName: node + linkType: hard + +"arrify@npm:^2.0.0": + version: 2.0.1 + resolution: "arrify@npm:2.0.1" + checksum: 067c4c1afd182806a82e4c1cb8acee16ab8b5284fbca1ce29408e6e91281c36bb5b612f6ddfbd40a0f7a7e0c75bf2696eb94c027f6e328d6e9c52465c98e4209 + languageName: node + linkType: hard + +"asap@npm:^2.0.0, asap@npm:^2.0.3": + version: 2.0.6 + resolution: "asap@npm:2.0.6" + checksum: b296c92c4b969e973260e47523207cd5769abd27c245a68c26dc7a0fe8053c55bb04360237cb51cab1df52be939da77150ace99ad331fb7fb13b3423ed73ff3d + languageName: node + linkType: hard + +"asn1.js@npm:^4.10.1": + version: 4.10.1 + resolution: "asn1.js@npm:4.10.1" + dependencies: + bn.js: ^4.0.0 + inherits: ^2.0.1 + minimalistic-assert: ^1.0.0 + checksum: 9289a1a55401238755e3142511d7b8f6fc32f08c86ff68bd7100da8b6c186179dd6b14234fba2f7f6099afcd6758a816708485efe44bc5b2a6ec87d9ceeddbb5 + languageName: node + linkType: hard + +"asn1@npm:^0.2.6, asn1@npm:~0.2.3": + version: 0.2.6 + resolution: "asn1@npm:0.2.6" + dependencies: + safer-buffer: ~2.1.0 + checksum: 39f2ae343b03c15ad4f238ba561e626602a3de8d94ae536c46a4a93e69578826305366dc09fbb9b56aec39b4982a463682f259c38e59f6fa380cd72cd61e493d + languageName: node + linkType: hard + +"assert-plus@npm:1.0.0, assert-plus@npm:^1.0.0": + version: 1.0.0 + resolution: "assert-plus@npm:1.0.0" + checksum: 19b4340cb8f0e6a981c07225eacac0e9d52c2644c080198765d63398f0075f83bbc0c8e95474d54224e297555ad0d631c1dcd058adb1ddc2437b41a6b424ac64 + languageName: node + linkType: hard + +"assert@npm:^1.1.1": + version: 1.5.1 + resolution: "assert@npm:1.5.1" + dependencies: + object.assign: ^4.1.4 + util: ^0.10.4 + checksum: bfc539da97545f9b2989395d6b85be40b70649ce57464f3cc6e61f4975fb097ba0689c386f95bdb4c3ab867931e40a565c9e193ae3c02263a8e92acb17c9dc93 + languageName: node + linkType: hard + +"ast-types-flow@npm:^0.0.8": + version: 0.0.8 + resolution: "ast-types-flow@npm:0.0.8" + checksum: 0a64706609a179233aac23817837abab614f3548c252a2d3d79ea1e10c74aa28a0846e11f466cf72771b6ed8713abc094dcf8c40c3ec4207da163efa525a94a8 + languageName: node + linkType: hard + +"ast-types@npm:^0.13.4": + version: 0.13.4 + resolution: "ast-types@npm:0.13.4" + dependencies: + tslib: ^2.0.1 + checksum: 5a51f7b70588ecced3601845a0e203279ca2f5fdc184416a0a1640c93ec0a267241d6090a328e78eebb8de81f8754754e0a4f1558ba2a3d638f8ccbd0b1f0eff + languageName: node + linkType: hard + +"astring@npm:^1.8.1": + version: 1.9.0 + resolution: "astring@npm:1.9.0" + bin: + astring: bin/astring + checksum: 69ffde3643f5280c6846231a995af878a94d3eab41d1a19a86b8c15f456453f63a7982cf5dd72d270b9f50dd26763a3e1e48377c961b7df16f550132b6dba805 + languageName: node + linkType: hard + +"async-lock@npm:^1.4.1": + version: 1.4.1 + resolution: "async-lock@npm:1.4.1" + checksum: 29e70cd892932b7c202437786cedc39ff62123cb6941014739bd3cabd6106326416e9e7c21285a5d1dc042cad239a0f7ec9c44658491ee4a615fd36a21c1d10a + languageName: node + linkType: hard + +"async-mutex@npm:^0.5.0": + version: 0.5.0 + resolution: "async-mutex@npm:0.5.0" + dependencies: + tslib: ^2.4.0 + checksum: be1587f4875f3bb15e34e9fcce82eac2966daef4432c8d0046e61947fb9a1b95405284601bc7ce4869319249bc07c75100880191db6af11d1498931ac2a2f9ea + languageName: node + linkType: hard + +"async-retry@npm:^1.3.3": + version: 1.3.3 + resolution: "async-retry@npm:1.3.3" + dependencies: + retry: 0.13.1 + checksum: 38a7152ff7265a9321ea214b9c69e8224ab1febbdec98efbbde6e562f17ff68405569b796b1c5271f354aef8783665d29953f051f68c1fc45306e61aec82fdc4 + languageName: node + linkType: hard + +"async@npm:^2.6.4": + version: 2.6.4 + resolution: "async@npm:2.6.4" + dependencies: + lodash: ^4.17.14 + checksum: a52083fb32e1ebe1d63e5c5624038bb30be68ff07a6c8d7dfe35e47c93fc144bd8652cbec869e0ac07d57dde387aa5f1386be3559cdee799cb1f789678d88e19 + languageName: node + linkType: hard + +"async@npm:^3.2.3, async@npm:^3.2.4": + version: 3.2.6 + resolution: "async@npm:3.2.6" + checksum: ee6eb8cd8a0ab1b58bd2a3ed6c415e93e773573a91d31df9d5ef559baafa9dab37d3b096fa7993e84585cac3697b2af6ddb9086f45d3ac8cae821bb2aab65682 + languageName: node + linkType: hard + +"asynckit@npm:^0.4.0": + version: 0.4.0 + resolution: "asynckit@npm:0.4.0" + checksum: 7b78c451df768adba04e2d02e63e2d0bf3b07adcd6e42b4cf665cb7ce899bedd344c69a1dcbce355b5f972d597b25aaa1c1742b52cffd9caccb22f348114f6be + languageName: node + linkType: hard + +"at-least-node@npm:^1.0.0": + version: 1.0.0 + resolution: "at-least-node@npm:1.0.0" + checksum: 463e2f8e43384f1afb54bc68485c436d7622acec08b6fad269b421cb1d29cebb5af751426793d0961ed243146fe4dc983402f6d5a51b720b277818dbf6f2e49e + languageName: node + linkType: hard + +"atlassian-openapi@npm:^1.0.8": + version: 1.0.20 + resolution: "atlassian-openapi@npm:1.0.20" + dependencies: + jsonpointer: ^5.0.0 + urijs: ^1.19.10 + checksum: 9d154fb3de6256f30ce677266995a983852c05e58fb820110dbb05f785bae19ab4c1d539e2bced6c29db29255c8933cb4bc6345a3b3d6b9ad47794ff058d8de0 + languageName: node + linkType: hard + +"atomic-sleep@npm:^1.0.0": + version: 1.0.0 + resolution: "atomic-sleep@npm:1.0.0" + checksum: b95275afb2f80732f22f43a60178430c468906a415a7ff18bcd0feeebc8eec3930b51250aeda91a476062a90e07132b43a1794e8d8ffcf9b650e8139be75fa36 + languageName: node + linkType: hard + +"attr-accept@npm:^2.2.4": + version: 2.2.5 + resolution: "attr-accept@npm:2.2.5" + checksum: e6a23183c112f5d313ebfc7e63e454de0600caffe9ab88f86e9df420d2399a48e27e6c46ee8de2fc6f34fee3541ecdb557f2b86e6d8bd7d24fd3a66cc75e6349 + languageName: node + linkType: hard + +"autolinker@npm:^3.11.0": + version: 3.16.2 + resolution: "autolinker@npm:3.16.2" + dependencies: + tslib: ^2.3.0 + checksum: 1d5d20ef23586629ec3c341052e6bb6250399cf5e66db21540c17b2f5b1137066435fb274a2115b57464d05e75b85afad61ef7cdf6ea693ef2920a3748b7249d + languageName: node + linkType: hard + +"available-typed-arrays@npm:^1.0.7": + version: 1.0.7 + resolution: "available-typed-arrays@npm:1.0.7" + dependencies: + possible-typed-array-names: ^1.0.0 + checksum: 1aa3ffbfe6578276996de660848b6e95669d9a95ad149e3dd0c0cda77db6ee1dbd9d1dd723b65b6d277b882dd0c4b91a654ae9d3cf9e1254b7e93e4908d78fd3 + languageName: node + linkType: hard + +"avsc@npm:^5.7.5, avsc@npm:^5.7.6": + version: 5.7.7 + resolution: "avsc@npm:5.7.7" + checksum: e3361aa88a61397b3345876263f79c8c8bfe013d849142202758205459a37e24cdbf02edc49ae019d6e82d93bbc7bc73e9e7fefca049aae91626bae28de4d1a9 + languageName: node + linkType: hard + +"aws-sign2@npm:~0.7.0": + version: 0.7.0 + resolution: "aws-sign2@npm:0.7.0" + checksum: b148b0bb0778098ad8cf7e5fc619768bcb51236707ca1d3e5b49e41b171166d8be9fdc2ea2ae43d7decf02989d0aaa3a9c4caa6f320af95d684de9b548a71525 + languageName: node + linkType: hard + +"aws-ssl-profiles@npm:^1.1.1": + version: 1.1.2 + resolution: "aws-ssl-profiles@npm:1.1.2" + checksum: bfcf9b2cbb9788e24e4af39a1e8b4a8afbdf65773b6a1636e643c10068ffbae46b28277c4c9f9321179400b2080092db040ba4513f9143f22d1bb053a12dab2b + languageName: node + linkType: hard + +"aws4@npm:^1.8.0": + version: 1.13.2 + resolution: "aws4@npm:1.13.2" + checksum: 9ac924e4a91c088b4928ea86b68d8c4558b0e6289ccabaae0e3e96a611bd75277c2eab6e3965821028768700516f612b929a5ce822f33a8771f74ba2a8cedb9c + languageName: node + linkType: hard + +"axe-core@npm:^4.10.0": + version: 4.10.2 + resolution: "axe-core@npm:4.10.2" + checksum: 2b9b1c93ea73ea9f206604e4e17bd771d2d835f077bde54517d73028b8865c69b209460e73d5b109968cbdb39ab3d28943efa5695189bd79e16421ce1706719e + languageName: node + linkType: hard + +"axios-cached-dns-resolve@npm:0.5.2": + version: 0.5.2 + resolution: "axios-cached-dns-resolve@npm:0.5.2" + dependencies: + babel-polyfill: ^6.26.0 + json-stringify-safe: ^5.0.1 + lodash: ^4.17.15 + lru-cache: ^5.1.1 + pino: ^5.12.2 + pino-pretty: ^2.6.0 + checksum: 01548610b48da1fb7de2928f91cc538d6aff901ae81786d4444c77f11318924705ba6c5fd236a3c302abbbba6fb3fdd7de859f2c5fe92e7082515c53e508eadc + languageName: node + linkType: hard + +"axios@npm:1.7.7": + version: 1.7.7 + resolution: "axios@npm:1.7.7" + dependencies: + follow-redirects: ^1.15.6 + form-data: ^4.0.0 + proxy-from-env: ^1.1.0 + checksum: 882d4fe0ec694a07c7f5c1f68205eb6dc5a62aecdb632cc7a4a3d0985188ce3030e0b277e1a8260ac3f194d314ae342117660a151fabffdc5081ca0b5a8b47fe + languageName: node + linkType: hard + +"axios@npm:^1.0.0, axios@npm:^1.6.0, axios@npm:^1.7.4, axios@npm:^1.7.7": + version: 1.7.9 + resolution: "axios@npm:1.7.9" + dependencies: + follow-redirects: ^1.15.6 + form-data: ^4.0.0 + proxy-from-env: ^1.1.0 + checksum: cb8ce291818effda09240cb60f114d5625909b345e10f389a945320e06acf0bc949d0f8422d25720f5dd421362abee302c99f5e97edec4c156c8939814b23d19 + languageName: node + linkType: hard + +"axobject-query@npm:^4.1.0": + version: 4.1.0 + resolution: "axobject-query@npm:4.1.0" + checksum: 7d1e87bf0aa7ae7a76cd39ab627b7c48fda3dc40181303d9adce4ba1d5b5ce73b5e5403ee6626ec8e91090448c887294d6144e24b6741a976f5be9347e3ae1df + languageName: node + linkType: hard + +"azure-devops-node-api@npm:^14.0.0": + version: 14.1.0 + resolution: "azure-devops-node-api@npm:14.1.0" + dependencies: + tunnel: 0.0.6 + typed-rest-client: 2.1.0 + checksum: 4b459ee2dbedc068789234229166e7fe1833c42803aa7dad52c5178b0692736585a1903a760498b8ee0993f886add0d3c2e9a84b6f7b9ed2aab3ae108f47e07c + languageName: node + linkType: hard + +"b4a@npm:^1.6.4": + version: 1.6.7 + resolution: "b4a@npm:1.6.7" + checksum: afe4e239b49c0ef62236fe0d788ac9bd9d7eac7e9855b0d1835593cd0efcc7be394f9cc28a747a2ed2cdcb0a48c3528a551a196f472eb625457c711169c9efa2 + languageName: node + linkType: hard + +"babel-jest@npm:^29.7.0": + version: 29.7.0 + resolution: "babel-jest@npm:29.7.0" + dependencies: + "@jest/transform": ^29.7.0 + "@types/babel__core": ^7.1.14 + babel-plugin-istanbul: ^6.1.1 + babel-preset-jest: ^29.6.3 + chalk: ^4.0.0 + graceful-fs: ^4.2.9 + slash: ^3.0.0 + peerDependencies: + "@babel/core": ^7.8.0 + checksum: ee6f8e0495afee07cac5e4ee167be705c711a8cc8a737e05a587a131fdae2b3c8f9aa55dfd4d9c03009ac2d27f2de63d8ba96d3e8460da4d00e8af19ef9a83f7 + languageName: node + linkType: hard + +"babel-plugin-istanbul@npm:^6.1.1": + version: 6.1.1 + resolution: "babel-plugin-istanbul@npm:6.1.1" + dependencies: + "@babel/helper-plugin-utils": ^7.0.0 + "@istanbuljs/load-nyc-config": ^1.0.0 + "@istanbuljs/schema": ^0.1.2 + istanbul-lib-instrument: ^5.0.4 + test-exclude: ^6.0.0 + checksum: cb4fd95738219f232f0aece1116628cccff16db891713c4ccb501cddbbf9272951a5df81f2f2658dfdf4b3e7b236a9d5cbcf04d5d8c07dd5077297339598061a + languageName: node + linkType: hard + +"babel-plugin-jest-hoist@npm:^29.6.3": + version: 29.6.3 + resolution: "babel-plugin-jest-hoist@npm:29.6.3" + dependencies: + "@babel/template": ^7.3.3 + "@babel/types": ^7.3.3 + "@types/babel__core": ^7.1.14 + "@types/babel__traverse": ^7.0.6 + checksum: 51250f22815a7318f17214a9d44650ba89551e6d4f47a2dc259128428324b52f5a73979d010cefd921fd5a720d8c1d55ad74ff601cd94c7bd44d5f6292fde2d1 + languageName: node + linkType: hard + +"babel-plugin-macros@npm:^3.1.0": + version: 3.1.0 + resolution: "babel-plugin-macros@npm:3.1.0" + dependencies: + "@babel/runtime": ^7.12.5 + cosmiconfig: ^7.0.0 + resolve: ^1.19.0 + checksum: 765de4abebd3e4688ebdfbff8571ddc8cd8061f839bb6c3e550b0344a4027b04c60491f843296ce3f3379fb356cc873d57a9ee6694262547eb822c14a25be9a6 + languageName: node + linkType: hard + +"babel-plugin-polyfill-corejs2@npm:^0.4.10": + version: 0.4.12 + resolution: "babel-plugin-polyfill-corejs2@npm:0.4.12" + dependencies: + "@babel/compat-data": ^7.22.6 + "@babel/helper-define-polyfill-provider": ^0.6.3 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 6e6e6a8b85fec80a310ded2f5c151385e4ac59118909dd6a952e1025e4a478eb79dda45a5a6322cc2e598fd696eb07d4e2fa52418b4101f3dc370bdf8c8939ba + languageName: node + linkType: hard + +"babel-plugin-polyfill-corejs3@npm:^0.10.6": + version: 0.10.6 + resolution: "babel-plugin-polyfill-corejs3@npm:0.10.6" + dependencies: + "@babel/helper-define-polyfill-provider": ^0.6.2 + core-js-compat: ^3.38.0 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: f762f29f7acca576897c63149c850f0a72babd3fb9ea436a2e36f0c339161c4b912a77828541d8188ce8a91e50965c6687120cf36071eabb1b7aa92f279e2164 + languageName: node + linkType: hard + +"babel-plugin-polyfill-regenerator@npm:^0.6.1": + version: 0.6.3 + resolution: "babel-plugin-polyfill-regenerator@npm:0.6.3" + dependencies: + "@babel/helper-define-polyfill-provider": ^0.6.3 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: d12696e6b3f280eb78fac551619ca4389262db62c7352cd54bf679d830df8b35596eef2de77cf00db6648eada1c99d49c4f40636dbc9c335a1e5420cfef96750 + languageName: node + linkType: hard + +"babel-polyfill@npm:^6.26.0": + version: 6.26.0 + resolution: "babel-polyfill@npm:6.26.0" + dependencies: + babel-runtime: ^6.26.0 + core-js: ^2.5.0 + regenerator-runtime: ^0.10.5 + checksum: 6fb1a3c0bfe1b6fc56ce1afcf531878aa629b309277a05fbf3fe950589b24cb4052a6e487db21d318eb5336b68730a21f5ef62166b6cc8aea3406261054d1118 + languageName: node + linkType: hard + +"babel-preset-current-node-syntax@npm:^1.0.0": + version: 1.1.0 + resolution: "babel-preset-current-node-syntax@npm:1.1.0" + dependencies: + "@babel/plugin-syntax-async-generators": ^7.8.4 + "@babel/plugin-syntax-bigint": ^7.8.3 + "@babel/plugin-syntax-class-properties": ^7.12.13 + "@babel/plugin-syntax-class-static-block": ^7.14.5 + "@babel/plugin-syntax-import-attributes": ^7.24.7 + "@babel/plugin-syntax-import-meta": ^7.10.4 + "@babel/plugin-syntax-json-strings": ^7.8.3 + "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 + "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 + "@babel/plugin-syntax-numeric-separator": ^7.10.4 + "@babel/plugin-syntax-object-rest-spread": ^7.8.3 + "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 + "@babel/plugin-syntax-optional-chaining": ^7.8.3 + "@babel/plugin-syntax-private-property-in-object": ^7.14.5 + "@babel/plugin-syntax-top-level-await": ^7.14.5 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 9f93fac975eaba296c436feeca1031ca0539143c4066eaf5d1ba23525a31850f03b651a1049caea7287df837a409588c8252c15627ad3903f17864c8e25ed64b + languageName: node + linkType: hard + +"babel-preset-jest@npm:^29.6.3": + version: 29.6.3 + resolution: "babel-preset-jest@npm:29.6.3" + dependencies: + babel-plugin-jest-hoist: ^29.6.3 + babel-preset-current-node-syntax: ^1.0.0 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: aa4ff2a8a728d9d698ed521e3461a109a1e66202b13d3494e41eea30729a5e7cc03b3a2d56c594423a135429c37bf63a9fa8b0b9ce275298be3095a88c69f6fb + languageName: node + linkType: hard + +"babel-runtime@npm:^6.26.0": + version: 6.26.0 + resolution: "babel-runtime@npm:6.26.0" + dependencies: + core-js: ^2.4.0 + regenerator-runtime: ^0.11.0 + checksum: 8aeade94665e67a73c1ccc10f6fd42ba0c689b980032b70929de7a6d9a12eb87ef51902733f8fefede35afea7a5c3ef7e916a64d503446c1eedc9e3284bd3d50 + languageName: node + linkType: hard + +"backend@workspace:packages/backend": + version: 0.0.0-use.local + resolution: "backend@workspace:packages/backend" + dependencies: + "@backstage-community/plugin-kiali-backend": "workspace:^" + "@backstage/backend-defaults": ^0.5.1 + "@backstage/cli": ^0.28.0 + "@backstage/config": ^1.2.0 + "@backstage/plugin-app-backend": ^0.3.76 + "@backstage/plugin-auth-backend": ^0.23.1 + "@backstage/plugin-auth-backend-module-github-provider": ^0.2.1 + "@backstage/plugin-auth-backend-module-guest-provider": ^0.2.1 + "@backstage/plugin-auth-node": ^0.5.3 + "@backstage/plugin-catalog-backend": ^1.27.0 + "@backstage/plugin-catalog-backend-module-logs": ^0.1.2 + "@backstage/plugin-catalog-backend-module-scaffolder-entity-model": ^0.2.1 + "@backstage/plugin-kubernetes-backend": ^0.18.7 + "@backstage/plugin-permission-backend": ^0.5.50 + "@backstage/plugin-permission-backend-module-allow-all-policy": ^0.2.1 + "@backstage/plugin-permission-common": ^0.8.1 + "@backstage/plugin-permission-node": ^0.8.4 + "@backstage/plugin-proxy-backend": ^0.5.7 + "@backstage/plugin-scaffolder-backend": ^1.26.0 + "@backstage/plugin-search-backend": ^1.6.0 + "@backstage/plugin-search-backend-module-catalog": ^0.2.3 + "@backstage/plugin-search-backend-module-pg": ^0.5.36 + "@backstage/plugin-search-backend-module-techdocs": ^0.3.0 + "@backstage/plugin-search-backend-node": ^1.3.3 + "@backstage/plugin-techdocs-backend": ^1.11.0 + app: "link:../app" + better-sqlite3: ^9.0.0 + node-gyp: ^10.0.0 + pg: ^8.11.3 + languageName: unknown + linkType: soft + +"backo2@npm:^1.0.2": + version: 1.0.2 + resolution: "backo2@npm:1.0.2" + checksum: fda8d0a0f4810068d23715f2f45153146d6ee8f62dd827ce1e0b6cc3c8328e84ad61e11399a83931705cef702fe7cbb457856bf99b9bd10c4ed57b0786252385 + languageName: node + linkType: hard + +"bail@npm:^2.0.0": + version: 2.0.2 + resolution: "bail@npm:2.0.2" + checksum: aab4e8ccdc8d762bf3fdfce8e706601695620c0c2eda256dd85088dc0be3cfd7ff126f6e99c2bee1f24f5d418414aacf09d7f9702f16d6963df2fa488cda8824 + languageName: node + linkType: hard + +"balanced-match@npm:^1.0.0": + version: 1.0.2 + resolution: "balanced-match@npm:1.0.2" + checksum: 9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65 + languageName: node + linkType: hard + +"bare-events@npm:^2.0.0, bare-events@npm:^2.2.0": + version: 2.5.0 + resolution: "bare-events@npm:2.5.0" + checksum: 5aa10716e7f33c5dfc471fd657eee2a33f2db0f78b3c83b5cdd1a45a7e7871114a69460ea96cd838807c55eb470b9e53dd0dfda8c83cced1352cc8253cebff48 + languageName: node + linkType: hard + +"bare-fs@npm:^2.1.1": + version: 2.3.5 + resolution: "bare-fs@npm:2.3.5" + dependencies: + bare-events: ^2.0.0 + bare-path: ^2.0.0 + bare-stream: ^2.0.0 + checksum: 071b1dff94a213eaf0b41693953959bf10af2deade597a56ff206a5d833579d56bc8530aa4614bb88bf39fd6d52f2404f7c36af4695109ffa756a13837ac3d91 + languageName: node + linkType: hard + +"bare-os@npm:^2.1.0": + version: 2.4.4 + resolution: "bare-os@npm:2.4.4" + checksum: e90088a7dc0307c020350a28df8ec5564cae5a4b7a213d8509d70831d7064308e2ed31de801b68f474cb004ad3a0a66bd28c38374d270484d9025ee71af20396 + languageName: node + linkType: hard + +"bare-path@npm:^2.0.0, bare-path@npm:^2.1.0": + version: 2.1.3 + resolution: "bare-path@npm:2.1.3" + dependencies: + bare-os: ^2.1.0 + checksum: 20301aeb05b735852a396515464908e51e896922c3bb353ef2a09ff54e81ced94e6ad857bb0a36d2ce659c42bd43dd5c3d5643edd8faaf910ee9950c4e137b88 + languageName: node + linkType: hard + +"bare-stream@npm:^2.0.0": + version: 2.6.1 + resolution: "bare-stream@npm:2.6.1" + dependencies: + streamx: ^2.21.0 + checksum: e7343a9ad6d3ca0d345c8b7dad449fbeccec1969d6c0971cd8f79e55508435dbba26e386a8f75e4baa94d9abd9d767972ab9917f59c64b1df06e0b30b5b814fd + languageName: node + linkType: hard + +"base64-arraybuffer@npm:^0.1.5": + version: 0.1.5 + resolution: "base64-arraybuffer@npm:0.1.5" + checksum: 44588c1b4460faf59643cf3bcf346a7ede9df70d97aec6dbee4fbae15f6b6220d679b8db076771ea4ef5713dd710e7db7a4a3f81bbb04c71fb06764697d9a021 + languageName: node + linkType: hard + +"base64-js@npm:^1.0.2, base64-js@npm:^1.3.0, base64-js@npm:^1.3.1, base64-js@npm:^1.5.1": + version: 1.5.1 + resolution: "base64-js@npm:1.5.1" + checksum: 669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005 + languageName: node + linkType: hard + +"base64-stream@npm:^1.0.0": + version: 1.0.0 + resolution: "base64-stream@npm:1.0.0" + checksum: 45ee0ffaa30350e21f7bd58eedeeeb4567297e2537eac71000e00cc38be8578bdaa7fda59c30302dc9ed58c18b235e440207425abb81bd89de9a3ef79348921b + languageName: node + linkType: hard + +"base64url@npm:3.x.x": + version: 3.0.1 + resolution: "base64url@npm:3.0.1" + checksum: a77b2a3a526b3343e25be424de3ae0aa937d78f6af7c813ef9020ef98001c0f4e2323afcd7d8b2d2978996bf8c42445c3e9f60c218c622593e5fdfd54a3d6e18 + languageName: node + linkType: hard + +"basic-auth@npm:~2.0.1": + version: 2.0.1 + resolution: "basic-auth@npm:2.0.1" + dependencies: + safe-buffer: 5.1.2 + checksum: 3419b805d5dfc518f3a05dcf42aa53aa9ce820e50b6df5097f9e186322e1bc733c36722b624802cd37e791035aa73b828ed814d8362333d42d7f5cd04d7a5e48 + languageName: node + linkType: hard + +"basic-ftp@npm:^5.0.2": + version: 5.0.5 + resolution: "basic-ftp@npm:5.0.5" + checksum: bc82d1c1c61cd838eaca96d68ece888bacf07546642fb6b9b8328ed410756f5935f8cf43a42cb44bb343e0565e28e908adc54c298bd2f1a6e0976871fb11fec6 + languageName: node + linkType: hard + +"batch@npm:0.6.1": + version: 0.6.1 + resolution: "batch@npm:0.6.1" + checksum: 61f9934c7378a51dce61b915586191078ef7f1c3eca707fdd58b96ff2ff56d9e0af2bdab66b1462301a73c73374239e6542d9821c0af787f3209a23365d07e7f + languageName: node + linkType: hard + +"bcrypt-pbkdf@npm:^1.0.0, bcrypt-pbkdf@npm:^1.0.2": + version: 1.0.2 + resolution: "bcrypt-pbkdf@npm:1.0.2" + dependencies: + tweetnacl: ^0.14.3 + checksum: 4edfc9fe7d07019609ccf797a2af28351736e9d012c8402a07120c4453a3b789a15f2ee1530dc49eee8f7eb9379331a8dd4b3766042b9e502f74a68e7f662291 + languageName: node + linkType: hard + +"before-after-hook@npm:^2.2.0": + version: 2.2.3 + resolution: "before-after-hook@npm:2.2.3" + checksum: a1a2430976d9bdab4cd89cb50d27fa86b19e2b41812bf1315923b0cba03371ebca99449809226425dd3bcef20e010db61abdaff549278e111d6480034bebae87 + languageName: node + linkType: hard + +"better-path-resolve@npm:1.0.0": + version: 1.0.0 + resolution: "better-path-resolve@npm:1.0.0" + dependencies: + is-windows: ^1.0.0 + checksum: 5392dbe04e7fe68b944eb37961d9dfa147aaac3ee9ee3f6e13d42e2c9fbe949e68d16e896c14ee9016fa5f8e6e53ec7fd8b5f01b50a32067a7d94ac9cfb9a050 + languageName: node + linkType: hard + +"better-sqlite3@npm:^11.0.0": + version: 11.7.0 + resolution: "better-sqlite3@npm:11.7.0" + dependencies: + bindings: ^1.5.0 + node-gyp: latest + prebuild-install: ^7.1.1 + checksum: 7977bdb0452e096471a5e66ab20b490ddb84d7036856e85896afd9e723415518bbde3e0394c3d00928f04b791d69066a4aaf389b5414fc6abf24815b7ae368fa + languageName: node + linkType: hard + +"better-sqlite3@npm:^9.0.0": + version: 9.6.0 + resolution: "better-sqlite3@npm:9.6.0" + dependencies: + bindings: ^1.5.0 + node-gyp: latest + prebuild-install: ^7.1.1 + checksum: be3a1d2a3f6f9b5141be6607a38c0a51fa5849495b071955e507bc0c2a2fb08430852c1bf03796eec1a53344b25645807db48dcb51c71b0662b74c5a70420bb0 + languageName: node + linkType: hard + +"bfj@npm:^8.0.0": + version: 8.0.0 + resolution: "bfj@npm:8.0.0" + dependencies: + bluebird: ^3.7.2 + check-types: ^11.2.3 + hoopy: ^0.1.4 + jsonpath: ^1.1.1 + tryer: ^1.0.1 + checksum: f22d49cd2661a92e7526015edac0e02858a881a36438fe4e67df320dddc08cba09e197a7e128f282abc2c26127f5abb3ca8e8b7eff0737df20e5b8c4ee6273e9 + languageName: node + linkType: hard + +"big.js@npm:^5.2.2": + version: 5.2.2 + resolution: "big.js@npm:5.2.2" + checksum: b89b6e8419b097a8fb4ed2399a1931a68c612bce3cfd5ca8c214b2d017531191070f990598de2fc6f3f993d91c0f08aa82697717f6b3b8732c9731866d233c9e + languageName: node + linkType: hard + +"bignumber.js@npm:^9.0.0": + version: 9.1.2 + resolution: "bignumber.js@npm:9.1.2" + checksum: 582c03af77ec9cb0ebd682a373ee6c66475db94a4325f92299621d544aa4bd45cb45fd60001610e94aef8ae98a0905fa538241d9638d4422d57abbeeac6fadaf + languageName: node + linkType: hard + +"binary-extensions@npm:^2.0.0": + version: 2.3.0 + resolution: "binary-extensions@npm:2.3.0" + checksum: bcad01494e8a9283abf18c1b967af65ee79b0c6a9e6fcfafebfe91dbe6e0fc7272bafb73389e198b310516ae04f7ad17d79aacf6cb4c0d5d5202a7e2e52c7d98 + languageName: node + linkType: hard + +"bindings@npm:^1.5.0": + version: 1.5.0 + resolution: "bindings@npm:1.5.0" + dependencies: + file-uri-to-path: 1.0.0 + checksum: 65b6b48095717c2e6105a021a7da4ea435aa8d3d3cd085cb9e85bcb6e5773cf318c4745c3f7c504412855940b585bdf9b918236612a1c7a7942491de176f1ae7 + languageName: node + linkType: hard + +"bintrees@npm:1.0.2": + version: 1.0.2 + resolution: "bintrees@npm:1.0.2" + checksum: 56a52b7d3634e30002b1eda740d2517a22fa8e9e2eb088e919f37c030a0ed86e364ab59e472fc770fc8751308054bb1c892979d150e11d9e11ac33bcc1b5d16e + languageName: node + linkType: hard + +"bl@npm:^4.0.3, bl@npm:^4.1.0": + version: 4.1.0 + resolution: "bl@npm:4.1.0" + dependencies: + buffer: ^5.5.0 + inherits: ^2.0.4 + readable-stream: ^3.4.0 + checksum: 9e8521fa7e83aa9427c6f8ccdcba6e8167ef30cc9a22df26effcc5ab682ef91d2cbc23a239f945d099289e4bbcfae7a192e9c28c84c6202e710a0dfec3722662 + languageName: node + linkType: hard + +"bluebird@npm:3.7.2, bluebird@npm:^3.7.2": + version: 3.7.2 + resolution: "bluebird@npm:3.7.2" + checksum: 869417503c722e7dc54ca46715f70e15f4d9c602a423a02c825570862d12935be59ed9c7ba34a9b31f186c017c23cac6b54e35446f8353059c101da73eac22ef + languageName: node + linkType: hard + +"bn.js@npm:^4.0.0, bn.js@npm:^4.1.0, bn.js@npm:^4.11.9": + version: 4.12.1 + resolution: "bn.js@npm:4.12.1" + checksum: f7f84a909bd07bdcc6777cccbf280b629540792e6965fb1dd1aeafba96e944f197ca10cbec2692f51e0a906ff31da1eb4317f3d1cd659d6f68b8bcd211f7ecbc + languageName: node + linkType: hard + +"bn.js@npm:^5.2.1": + version: 5.2.1 + resolution: "bn.js@npm:5.2.1" + checksum: 3dd8c8d38055fedfa95c1d5fc3c99f8dd547b36287b37768db0abab3c239711f88ff58d18d155dd8ad902b0b0cee973747b7ae20ea12a09473272b0201c9edd3 + languageName: node + linkType: hard + +"body-parser@npm:1.20.3, body-parser@npm:^1.15.2": + version: 1.20.3 + resolution: "body-parser@npm:1.20.3" + dependencies: + bytes: 3.1.2 + content-type: ~1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.13.0 + raw-body: 2.5.2 + type-is: ~1.6.18 + unpipe: 1.0.0 + checksum: 1a35c59a6be8d852b00946330141c4f142c6af0f970faa87f10ad74f1ee7118078056706a05ae3093c54dabca9cd3770fa62a170a85801da1a4324f04381167d + languageName: node + linkType: hard + +"bonjour-service@npm:^1.2.1": + version: 1.3.0 + resolution: "bonjour-service@npm:1.3.0" + dependencies: + fast-deep-equal: ^3.1.3 + multicast-dns: ^7.2.5 + checksum: 737bd40d0b609b18afdfcaf3c416a60d7dc94aedc4cb9d6e7af459a7f3bdffadc199370a48c46739d92689741cad4ec8a6987a3e4d869dd301b521227b92e082 + languageName: node + linkType: hard + +"boolbase@npm:^1.0.0": + version: 1.0.0 + resolution: "boolbase@npm:1.0.0" + checksum: 3e25c80ef626c3a3487c73dbfc70ac322ec830666c9ad915d11b701142fab25ec1e63eff2c450c74347acfd2de854ccde865cd79ef4db1683f7c7b046ea43bb0 + languageName: node + linkType: hard + +"boolean@npm:^3.0.1": + version: 3.2.0 + resolution: "boolean@npm:3.2.0" + checksum: fb29535b8bf710ef45279677a86d14f5185d604557204abd2ca5fa3fb2a5c80e04d695c8dbf13ab269991977a79bb6c04b048220a6b2a3849853faa94f4a7d77 + languageName: node + linkType: hard + +"bottleneck@npm:^2.15.3": + version: 2.19.5 + resolution: "bottleneck@npm:2.19.5" + checksum: c5eef1bbea12cef1f1405e7306e7d24860568b0f7ac5eeab706a86762b3fc65ef6d1c641c8a166e4db90f412fc5c948fc5ce8008a8cd3d28c7212ef9c3482bda + languageName: node + linkType: hard + +"bowser@npm:^2.11.0": + version: 2.11.0 + resolution: "bowser@npm:2.11.0" + checksum: 29c3f01f22e703fa6644fc3b684307442df4240b6e10f6cfe1b61c6ca5721073189ca97cdeedb376081148c8518e33b1d818a57f781d70b0b70e1f31fb48814f + languageName: node + linkType: hard + +"brace-expansion@npm:^1.1.7": + version: 1.1.11 + resolution: "brace-expansion@npm:1.1.11" + dependencies: + balanced-match: ^1.0.0 + concat-map: 0.0.1 + checksum: faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07 + languageName: node + linkType: hard + +"brace-expansion@npm:^2.0.1": + version: 2.0.1 + resolution: "brace-expansion@npm:2.0.1" + dependencies: + balanced-match: ^1.0.0 + checksum: a61e7cd2e8a8505e9f0036b3b6108ba5e926b4b55089eeb5550cd04a471fe216c96d4fe7e4c7f995c728c554ae20ddfc4244cad10aef255e72b62930afd233d1 + languageName: node + linkType: hard + +"braces@npm:^3.0.3, braces@npm:~3.0.2": + version: 3.0.3 + resolution: "braces@npm:3.0.3" + dependencies: + fill-range: ^7.1.1 + checksum: b95aa0b3bd909f6cd1720ffcf031aeaf46154dd88b4da01f9a1d3f7ea866a79eba76a6d01cbc3c422b2ee5cdc39a4f02491058d5df0d7bf6e6a162a832df1f69 + languageName: node + linkType: hard + +"brorand@npm:^1.0.1, brorand@npm:^1.1.0": + version: 1.1.0 + resolution: "brorand@npm:1.1.0" + checksum: 8a05c9f3c4b46572dec6ef71012b1946db6cae8c7bb60ccd4b7dd5a84655db49fe043ecc6272e7ef1f69dc53d6730b9e2a3a03a8310509a3d797a618cbee52be + languageName: node + linkType: hard + +"brotli-wasm@npm:^3.0.0": + version: 3.0.1 + resolution: "brotli-wasm@npm:3.0.1" + checksum: 48191b27265de8ffc59c940f9efef3a931448b6a15c26a4e360192fc3f0968e073c11fe0926510d019c305cc1d9c6d65df4d3e5752648a91cb0bbcccff7a8460 + languageName: node + linkType: hard + +"browser-process-hrtime@npm:^1.0.0": + version: 1.0.0 + resolution: "browser-process-hrtime@npm:1.0.0" + checksum: e30f868cdb770b1201afb714ad1575dd86366b6e861900884665fb627109b3cc757c40067d3bfee1ff2a29c835257ea30725a8018a9afd02ac1c24b408b1e45f + languageName: node + linkType: hard + +"browserify-aes@npm:^1.0.4, browserify-aes@npm:^1.2.0": + version: 1.2.0 + resolution: "browserify-aes@npm:1.2.0" + dependencies: + buffer-xor: ^1.0.3 + cipher-base: ^1.0.0 + create-hash: ^1.1.0 + evp_bytestokey: ^1.0.3 + inherits: ^2.0.1 + safe-buffer: ^5.0.1 + checksum: 4a17c3eb55a2aa61c934c286f34921933086bf6d67f02d4adb09fcc6f2fc93977b47d9d884c25619144fccd47b3b3a399e1ad8b3ff5a346be47270114bcf7104 + languageName: node + linkType: hard + +"browserify-cipher@npm:^1.0.1": + version: 1.0.1 + resolution: "browserify-cipher@npm:1.0.1" + dependencies: + browserify-aes: ^1.0.4 + browserify-des: ^1.0.0 + evp_bytestokey: ^1.0.0 + checksum: 2d8500acf1ee535e6bebe808f7a20e4c3a9e2ed1a6885fff1facbfd201ac013ef030422bec65ca9ece8ffe82b03ca580421463f9c45af6c8415fd629f4118c13 + languageName: node + linkType: hard + +"browserify-des@npm:^1.0.0": + version: 1.0.2 + resolution: "browserify-des@npm:1.0.2" + dependencies: + cipher-base: ^1.0.1 + des.js: ^1.0.0 + inherits: ^2.0.1 + safe-buffer: ^5.1.2 + checksum: b15a3e358a1d78a3b62ddc06c845d02afde6fc826dab23f1b9c016e643e7b1fda41de628d2110b712f6a44fb10cbc1800bc6872a03ddd363fb50768e010395b7 + languageName: node + linkType: hard + +"browserify-rsa@npm:^4.0.0, browserify-rsa@npm:^4.1.0": + version: 4.1.1 + resolution: "browserify-rsa@npm:4.1.1" + dependencies: + bn.js: ^5.2.1 + randombytes: ^2.1.0 + safe-buffer: ^5.2.1 + checksum: 2628508646331791c29312bbf274c076a237437a17178ea9bdc75c577fb4164a0da0b137deaadf6ade623701332377c5c2ceb0ff6f991c744a576e790ec95852 + languageName: node + linkType: hard + +"browserify-sign@npm:^4.2.3": + version: 4.2.3 + resolution: "browserify-sign@npm:4.2.3" + dependencies: + bn.js: ^5.2.1 + browserify-rsa: ^4.1.0 + create-hash: ^1.2.0 + create-hmac: ^1.1.7 + elliptic: ^6.5.5 + hash-base: ~3.0 + inherits: ^2.0.4 + parse-asn1: ^5.1.7 + readable-stream: ^2.3.8 + safe-buffer: ^5.2.1 + checksum: 403a8061d229ae31266670345b4a7c00051266761d2c9bbeb68b1a9bcb05f68143b16110cf23a171a5d6716396a1f41296282b3e73eeec0a1871c77f0ff4ee6b + languageName: node + linkType: hard + +"browserify-zlib@npm:^0.2.0": + version: 0.2.0 + resolution: "browserify-zlib@npm:0.2.0" + dependencies: + pako: ~1.0.5 + checksum: 5cd9d6a665190fedb4a97dfbad8dabc8698d8a507298a03f42c734e96d58ca35d3c7d4085e283440bbca1cd1938cff85031728079bedb3345310c58ab1ec92d6 + languageName: node + linkType: hard + +"browserslist@npm:^4.0.0, browserslist@npm:^4.18.1, browserslist@npm:^4.21.4, browserslist@npm:^4.24.0, browserslist@npm:^4.24.2": + version: 4.24.3 + resolution: "browserslist@npm:4.24.3" + dependencies: + caniuse-lite: ^1.0.30001688 + electron-to-chromium: ^1.5.73 + node-releases: ^2.0.19 + update-browserslist-db: ^1.1.1 + bin: + browserslist: cli.js + checksum: 016efc9953350e3a7212edcfdd72210cb33b339c1a974a77c0715eb67d23d7e5cd0a073ce1c801ab09235d8c213425ca51b92d41bbb829b833872b45f885fe7c + languageName: node + linkType: hard + +"bser@npm:2.1.1": + version: 2.1.1 + resolution: "bser@npm:2.1.1" + dependencies: + node-int64: ^0.4.0 + checksum: 9ba4dc58ce86300c862bffc3ae91f00b2a03b01ee07f3564beeeaf82aa243b8b03ba53f123b0b842c190d4399b94697970c8e7cf7b1ea44b61aa28c3526a4449 + languageName: node + linkType: hard + +"btoa-lite@npm:^1.0.0": + version: 1.0.0 + resolution: "btoa-lite@npm:1.0.0" + checksum: c2d61993b801f8e35a96f20692a45459c753d9baa29d86d1343e714f8d6bbe7069f1a20a5ae868488f3fb137d5bd0c560f6fbbc90b5a71050919d2d2c97c0475 + languageName: node + linkType: hard + +"btoa@npm:^1.2.1": + version: 1.2.1 + resolution: "btoa@npm:1.2.1" + bin: + btoa: bin/btoa.js + checksum: afbf004fb1b1d530e053ffa66ef5bd3878b101c59d808ac947fcff96810b4452abba2b54be687adadea2ba9efc7af48b04228742789bf824ef93f103767e690c + languageName: node + linkType: hard + +"buffer-crc32@npm:^1.0.0": + version: 1.0.0 + resolution: "buffer-crc32@npm:1.0.0" + checksum: bc114c0e02fe621249e0b5093c70e6f12d4c2b1d8ddaf3b1b7bbe3333466700100e6b1ebdc12c050d0db845bc582c4fce8c293da487cc483f97eea027c480b23 + languageName: node + linkType: hard + +"buffer-crc32@npm:~0.2.3": + version: 0.2.13 + resolution: "buffer-crc32@npm:0.2.13" + checksum: 06252347ae6daca3453b94e4b2f1d3754a3b146a111d81c68924c22d91889a40623264e95e67955b1cb4a68cbedf317abeabb5140a9766ed248973096db5ce1c + languageName: node + linkType: hard + +"buffer-equal-constant-time@npm:1.0.1": + version: 1.0.1 + resolution: "buffer-equal-constant-time@npm:1.0.1" + checksum: 80bb945f5d782a56f374b292770901065bad21420e34936ecbe949e57724b4a13874f735850dd1cc61f078773c4fb5493a41391e7bda40d1fa388d6bd80daaab + languageName: node + linkType: hard + +"buffer-from@npm:^1.0.0": + version: 1.1.2 + resolution: "buffer-from@npm:1.1.2" + checksum: 0448524a562b37d4d7ed9efd91685a5b77a50672c556ea254ac9a6d30e3403a517d8981f10e565db24e8339413b43c97ca2951f10e399c6125a0d8911f5679bb + languageName: node + linkType: hard + +"buffer-xor@npm:^1.0.3": + version: 1.0.3 + resolution: "buffer-xor@npm:1.0.3" + checksum: 10c520df29d62fa6e785e2800e586a20fc4f6dfad84bcdbd12e1e8a83856de1cb75c7ebd7abe6d036bbfab738a6cf18a3ae9c8e5a2e2eb3167ca7399ce65373a + languageName: node + linkType: hard + +"buffer@npm:5.6.0": + version: 5.6.0 + resolution: "buffer@npm:5.6.0" + dependencies: + base64-js: ^1.0.2 + ieee754: ^1.1.4 + checksum: d659494c5032dd39d03d2912e64179cc44c6340e7e9d1f68d3840e7ab4559989fbce92b4950174593c38d05268224235ba404f0878775cab2a616b6dcad9c23e + languageName: node + linkType: hard + +"buffer@npm:^4.3.0": + version: 4.9.2 + resolution: "buffer@npm:4.9.2" + dependencies: + base64-js: ^1.0.2 + ieee754: ^1.1.4 + isarray: ^1.0.0 + checksum: 8801bc1ba08539f3be70eee307a8b9db3d40f6afbfd3cf623ab7ef41dffff1d0a31de0addbe1e66e0ca5f7193eeb667bfb1ecad3647f8f1b0750de07c13295c3 + languageName: node + linkType: hard + +"buffer@npm:^5.5.0": + version: 5.7.1 + resolution: "buffer@npm:5.7.1" + dependencies: + base64-js: ^1.3.1 + ieee754: ^1.1.13 + checksum: e2cf8429e1c4c7b8cbd30834ac09bd61da46ce35f5c22a78e6c2f04497d6d25541b16881e30a019c6fd3154150650ccee27a308eff3e26229d788bbdeb08ab84 + languageName: node + linkType: hard + +"buffer@npm:^6.0.3": + version: 6.0.3 + resolution: "buffer@npm:6.0.3" + dependencies: + base64-js: ^1.3.1 + ieee754: ^1.2.1 + checksum: 5ad23293d9a731e4318e420025800b42bf0d264004c0286c8cc010af7a270c7a0f6522e84f54b9ad65cbd6db20b8badbfd8d2ebf4f80fa03dab093b89e68c3f9 + languageName: node + linkType: hard + +"buildcheck@npm:~0.0.6": + version: 0.0.6 + resolution: "buildcheck@npm:0.0.6" + checksum: ad61759dc98d62e931df2c9f54ccac7b522e600c6e13bdcfdc2c9a872a818648c87765ee209c850f022174da4dd7c6a450c00357c5391705d26b9c5807c2a076 + languageName: node + linkType: hard + +"builtin-status-codes@npm:^3.0.0": + version: 3.0.0 + resolution: "builtin-status-codes@npm:3.0.0" + checksum: 1119429cf4b0d57bf76b248ad6f529167d343156ebbcc4d4e4ad600484f6bc63002595cbb61b67ad03ce55cd1d3c4711c03bbf198bf24653b8392420482f3773 + languageName: node + linkType: hard + +"bundle-name@npm:^4.1.0": + version: 4.1.0 + resolution: "bundle-name@npm:4.1.0" + dependencies: + run-applescript: ^7.0.0 + checksum: 1d966c8d2dbf4d9d394e53b724ac756c2414c45c01340b37743621f59cc565a435024b394ddcb62b9b335d1c9a31f4640eb648c3fec7f97ee74dc0694c9beb6c + languageName: node + linkType: hard + +"busboy@npm:^1.0.0, busboy@npm:^1.6.0": + version: 1.6.0 + resolution: "busboy@npm:1.6.0" + dependencies: + streamsearch: ^1.1.0 + checksum: 32801e2c0164e12106bf236291a00795c3c4e4b709ae02132883fe8478ba2ae23743b11c5735a0aae8afe65ac4b6ca4568b91f0d9fed1fdbc32ede824a73746e + languageName: node + linkType: hard + +"byline@npm:^5.0.0": + version: 5.0.0 + resolution: "byline@npm:5.0.0" + checksum: 737ca83e8eda2976728dae62e68bc733aea095fab08db4c6f12d3cee3cf45b6f97dce45d1f6b6ff9c2c947736d10074985b4425b31ce04afa1985a4ef3d334a7 + languageName: node + linkType: hard + +"bytes@npm:3.1.2": + version: 3.1.2 + resolution: "bytes@npm:3.1.2" + checksum: e4bcd3948d289c5127591fbedf10c0b639ccbf00243504e4e127374a15c3bc8eed0d28d4aaab08ff6f1cf2abc0cce6ba3085ed32f4f90e82a5683ce0014e1b6e + languageName: node + linkType: hard + +"cacache@npm:^16.1.0": + version: 16.1.3 + resolution: "cacache@npm:16.1.3" + dependencies: + "@npmcli/fs": ^2.1.0 + "@npmcli/move-file": ^2.0.0 + chownr: ^2.0.0 + fs-minipass: ^2.1.0 + glob: ^8.0.1 + infer-owner: ^1.0.4 + lru-cache: ^7.7.1 + minipass: ^3.1.6 + minipass-collect: ^1.0.2 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + mkdirp: ^1.0.4 + p-map: ^4.0.0 + promise-inflight: ^1.0.1 + rimraf: ^3.0.2 + ssri: ^9.0.0 + tar: ^6.1.11 + unique-filename: ^2.0.0 + checksum: d91409e6e57d7d9a3a25e5dcc589c84e75b178ae8ea7de05cbf6b783f77a5fae938f6e8fda6f5257ed70000be27a681e1e44829251bfffe4c10216002f8f14e6 + languageName: node + linkType: hard + +"cacache@npm:^18.0.0": + version: 18.0.4 + resolution: "cacache@npm:18.0.4" + dependencies: + "@npmcli/fs": ^3.1.0 + fs-minipass: ^3.0.0 + glob: ^10.2.2 + lru-cache: ^10.0.1 + minipass: ^7.0.3 + minipass-collect: ^2.0.1 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + p-map: ^4.0.0 + ssri: ^10.0.0 + tar: ^6.1.11 + unique-filename: ^3.0.0 + checksum: b7422c113b4ec750f33beeca0f426a0024c28e3172f332218f48f963e5b970647fa1ac05679fe5bb448832c51efea9fda4456b9a95c3a1af1105fe6c1833cde2 + languageName: node + linkType: hard + +"cacache@npm:^19.0.1": + version: 19.0.1 + resolution: "cacache@npm:19.0.1" + dependencies: + "@npmcli/fs": ^4.0.0 + fs-minipass: ^3.0.0 + glob: ^10.2.2 + lru-cache: ^10.0.1 + minipass: ^7.0.3 + minipass-collect: ^2.0.1 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + p-map: ^7.0.2 + ssri: ^12.0.0 + tar: ^7.4.3 + unique-filename: ^4.0.0 + checksum: e95684717de6881b4cdaa949fa7574e3171946421cd8291769dd3d2417dbf7abf4aa557d1f968cca83dcbc95bed2a281072b09abfc977c942413146ef7ed4525 + languageName: node + linkType: hard + +"cache-content-type@npm:^1.0.0": + version: 1.0.1 + resolution: "cache-content-type@npm:1.0.1" + dependencies: + mime-types: ^2.1.18 + ylru: ^1.2.0 + checksum: 18db4d59452669ccbfd7146a1510a37eb28e9eccf18ca7a4eb603dff2edc5cccdca7498fc3042a2978f76f11151fba486eb9eb69d9afa3fb124957870aef4fd3 + languageName: node + linkType: hard + +"cacheable-lookup@npm:^6.0.0": + version: 6.1.0 + resolution: "cacheable-lookup@npm:6.1.0" + checksum: 4e37afe897219b1035335b0765106a2c970ffa930497b43cac5000b860f3b17f48d004187279fae97e2e4cbf6a3693709b6d64af65279c7d6c8453321d36d118 + languageName: node + linkType: hard + +"call-bind-apply-helpers@npm:^1.0.0, call-bind-apply-helpers@npm:^1.0.1": + version: 1.0.1 + resolution: "call-bind-apply-helpers@npm:1.0.1" + dependencies: + es-errors: ^1.3.0 + function-bind: ^1.1.2 + checksum: 3c55343261bb387c58a4762d15ad9d42053659a62681ec5eb50690c6b52a4a666302a01d557133ce6533e8bd04530ee3b209f23dd06c9577a1925556f8fcccdf + languageName: node + linkType: hard + +"call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.7, call-bind@npm:^1.0.8": + version: 1.0.8 + resolution: "call-bind@npm:1.0.8" + dependencies: + call-bind-apply-helpers: ^1.0.0 + es-define-property: ^1.0.0 + get-intrinsic: ^1.2.4 + set-function-length: ^1.2.2 + checksum: aa2899bce917a5392fd73bd32e71799c37c0b7ab454e0ed13af7f6727549091182aade8bbb7b55f304a5bc436d543241c14090fb8a3137e9875e23f444f4f5a9 + languageName: node + linkType: hard + +"call-bound@npm:^1.0.2, call-bound@npm:^1.0.3": + version: 1.0.3 + resolution: "call-bound@npm:1.0.3" + dependencies: + call-bind-apply-helpers: ^1.0.1 + get-intrinsic: ^1.2.6 + checksum: a93bbe0f2d0a2d6c144a4349ccd0593d5d0d5d9309b69101710644af8964286420062f2cc3114dca120b9bc8cc07507952d4b1b3ea7672e0d7f6f1675efedb32 + languageName: node + linkType: hard + +"call-me-maybe@npm:^1.0.1": + version: 1.0.2 + resolution: "call-me-maybe@npm:1.0.2" + checksum: 42ff2d0bed5b207e3f0122589162eaaa47ba618f79ad2382fe0ba14d9e49fbf901099a6227440acc5946f86a4953e8aa2d242b330b0a5de4d090bb18f8935cae + languageName: node + linkType: hard + +"callsites@npm:^3.0.0": + version: 3.1.0 + resolution: "callsites@npm:3.1.0" + checksum: 072d17b6abb459c2ba96598918b55868af677154bec7e73d222ef95a8fdb9bbf7dae96a8421085cdad8cd190d86653b5b6dc55a4484f2e5b2e27d5e0c3fc15b3 + languageName: node + linkType: hard + +"camel-case@npm:^4.1.2": + version: 4.1.2 + resolution: "camel-case@npm:4.1.2" + dependencies: + pascal-case: ^3.1.2 + tslib: ^2.0.3 + checksum: bcbd25cd253b3cbc69be3f535750137dbf2beb70f093bdc575f73f800acc8443d34fd52ab8f0a2413c34f1e8203139ffc88428d8863e4dfe530cfb257a379ad6 + languageName: node + linkType: hard + +"camelcase@npm:5.0.0": + version: 5.0.0 + resolution: "camelcase@npm:5.0.0" + checksum: 8bfe920e0472d79d34f0279da1391f155bcce7fc74c99b49dafae4f787396040a34f4023da837ab0b4372e63224b460f9524b495906863c38876faea9da53705 + languageName: node + linkType: hard + +"camelcase@npm:^5.3.1": + version: 5.3.1 + resolution: "camelcase@npm:5.3.1" + checksum: e6effce26b9404e3c0f301498184f243811c30dfe6d0b9051863bd8e4034d09c8c2923794f280d6827e5aa055f6c434115ff97864a16a963366fb35fd673024b + languageName: node + linkType: hard + +"camelcase@npm:^6.2.0": + version: 6.3.0 + resolution: "camelcase@npm:6.3.0" + checksum: 8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d + languageName: node + linkType: hard + +"caniuse-api@npm:^3.0.0": + version: 3.0.0 + resolution: "caniuse-api@npm:3.0.0" + dependencies: + browserslist: ^4.0.0 + caniuse-lite: ^1.0.0 + lodash.memoize: ^4.1.2 + lodash.uniq: ^4.5.0 + checksum: db2a229383b20d0529b6b589dde99d7b6cb56ba371366f58cbbfa2929c9f42c01f873e2b6ef641d4eda9f0b4118de77dbb2805814670bdad4234bf08e720b0b4 + languageName: node + linkType: hard + +"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001688": + version: 1.0.30001690 + resolution: "caniuse-lite@npm:1.0.30001690" + checksum: f2c1b595f15d8de4d9ccd155d61ac9f00ac62f1515870505a0186266fd52aef169fcddc90d8a4814e52b77107244806466fadc2c216662f23f1022a430e735ee + languageName: node + linkType: hard + +"canvas@npm:^2.11.2": + version: 2.11.2 + resolution: "canvas@npm:2.11.2" + dependencies: + "@mapbox/node-pre-gyp": ^1.0.0 + nan: ^2.17.0 + node-gyp: latest + simple-get: ^3.0.3 + checksum: 61e554aef80022841dc836964534082ec21435928498032562089dfb7736215f039c7d99ee546b0cf10780232d9bf310950f8b4d489dc394e0fb6f6adfc97994 + languageName: node + linkType: hard + +"caseless@npm:~0.12.0": + version: 0.12.0 + resolution: "caseless@npm:0.12.0" + checksum: b43bd4c440aa1e8ee6baefee8063b4850fd0d7b378f6aabc796c9ec8cb26d27fb30b46885350777d9bd079c5256c0e1329ad0dc7c2817e0bb466810ebb353751 + languageName: node + linkType: hard + +"ccount@npm:^2.0.0": + version: 2.0.1 + resolution: "ccount@npm:2.0.1" + checksum: 48193dada54c9e260e0acf57fc16171a225305548f9ad20d5471e0f7a8c026aedd8747091dccb0d900cde7df4e4ddbd235df0d8de4a64c71b12f0d3303eeafd4 + languageName: node + linkType: hard + +"chalk@npm:2.4.2, chalk@npm:^2.3.2, chalk@npm:^2.4.2": + version: 2.4.2 + resolution: "chalk@npm:2.4.2" + dependencies: + ansi-styles: ^3.2.1 + escape-string-regexp: ^1.0.5 + supports-color: ^5.3.0 + checksum: ec3661d38fe77f681200f878edbd9448821924e0f93a9cefc0e26a33b145f1027a2084bf19967160d11e1f03bfe4eaffcabf5493b89098b2782c3fe0b03d80c2 + languageName: node + linkType: hard + +"chalk@npm:3.0.0, chalk@npm:^3.0.0": + version: 3.0.0 + resolution: "chalk@npm:3.0.0" + dependencies: + ansi-styles: ^4.1.0 + supports-color: ^7.1.0 + checksum: 8e3ddf3981c4da405ddbd7d9c8d91944ddf6e33d6837756979f7840a29272a69a5189ecae0ff84006750d6d1e92368d413335eab4db5476db6e6703a1d1e0505 + languageName: node + linkType: hard + +"chalk@npm:4.1.2, chalk@npm:^4.0.0, chalk@npm:^4.1.0, chalk@npm:^4.1.1, chalk@npm:^4.1.2": + version: 4.1.2 + resolution: "chalk@npm:4.1.2" + dependencies: + ansi-styles: ^4.1.0 + supports-color: ^7.1.0 + checksum: fe75c9d5c76a7a98d45495b91b2172fa3b7a09e0cc9370e5c8feb1c567b85c4288e2b3fded7cfdd7359ac28d6b3844feb8b82b8686842e93d23c827c417e83fc + languageName: node + linkType: hard + +"char-regex@npm:^1.0.2": + version: 1.0.2 + resolution: "char-regex@npm:1.0.2" + checksum: b563e4b6039b15213114626621e7a3d12f31008bdce20f9c741d69987f62aeaace7ec30f6018890ad77b2e9b4d95324c9f5acfca58a9441e3b1dcdd1e2525d17 + languageName: node + linkType: hard + +"character-entities-legacy@npm:^1.0.0": + version: 1.1.4 + resolution: "character-entities-legacy@npm:1.1.4" + checksum: fe03a82c154414da3a0c8ab3188e4237ec68006cbcd681cf23c7cfb9502a0e76cd30ab69a2e50857ca10d984d57de3b307680fff5328ccd427f400e559c3a811 + languageName: node + linkType: hard + +"character-entities@npm:^1.0.0": + version: 1.2.4 + resolution: "character-entities@npm:1.2.4" + checksum: e1545716571ead57beac008433c1ff69517cd8ca5b336889321c5b8ff4a99c29b65589a701e9c086cda8a5e346a67295e2684f6c7ea96819fe85cbf49bf8686d + languageName: node + linkType: hard + +"character-entities@npm:^2.0.0": + version: 2.0.2 + resolution: "character-entities@npm:2.0.2" + checksum: cf1643814023697f725e47328fcec17923b8f1799102a8a79c1514e894815651794a2bffd84bb1b3a4b124b050154e4529ed6e81f7c8068a734aecf07a6d3def + languageName: node + linkType: hard + +"character-reference-invalid@npm:^1.0.0": + version: 1.1.4 + resolution: "character-reference-invalid@npm:1.1.4" + checksum: 20274574c70e05e2f81135f3b93285536bc8ff70f37f0809b0d17791a832838f1e49938382899ed4cb444e5bbd4314ca1415231344ba29f4222ce2ccf24fea0b + languageName: node + linkType: hard + +"chardet@npm:^0.7.0": + version: 0.7.0 + resolution: "chardet@npm:0.7.0" + checksum: 6fd5da1f5d18ff5712c1e0aed41da200d7c51c28f11b36ee3c7b483f3696dabc08927fc6b227735eb8f0e1215c9a8abd8154637f3eff8cada5959df7f58b024d + languageName: node + linkType: hard + +"check-more-types@npm:2.24.0": + version: 2.24.0 + resolution: "check-more-types@npm:2.24.0" + checksum: b09080ec3404d20a4b0ead828994b2e5913236ef44ed3033a27062af0004cf7d2091fbde4b396bf13b7ce02fb018bc9960b48305e6ab2304cd82d73ed7a51ef4 + languageName: node + linkType: hard + +"check-types@npm:^11.2.3": + version: 11.2.3 + resolution: "check-types@npm:11.2.3" + checksum: f99ff09ae65e63cfcfa40a1275c0a70d8c43ffbf9ac35095f3bf030cc70361c92e075a9975a1144329e50b4fe4620be6bedb4568c18abc96071a3e23aed3ed8e + languageName: node + linkType: hard + +"chokidar@npm:^3.3.1, chokidar@npm:^3.4.2, chokidar@npm:^3.5.2, chokidar@npm:^3.5.3, chokidar@npm:^3.6.0": + version: 3.6.0 + resolution: "chokidar@npm:3.6.0" + dependencies: + anymatch: ~3.1.2 + braces: ~3.0.2 + fsevents: ~2.3.2 + glob-parent: ~5.1.2 + is-binary-path: ~2.1.0 + is-glob: ~4.0.1 + normalize-path: ~3.0.0 + readdirp: ~3.6.0 + dependenciesMeta: + fsevents: + optional: true + checksum: d2f29f499705dcd4f6f3bbed79a9ce2388cf530460122eed3b9c48efeab7a4e28739c6551fd15bec9245c6b9eeca7a32baa64694d64d9b6faeb74ddb8c4a413d + languageName: node + linkType: hard + +"chownr@npm:^1.1.1": + version: 1.1.4 + resolution: "chownr@npm:1.1.4" + checksum: 115648f8eb38bac5e41c3857f3e663f9c39ed6480d1349977c4d96c95a47266fcacc5a5aabf3cb6c481e22d72f41992827db47301851766c4fd77ac21a4f081d + languageName: node + linkType: hard + +"chownr@npm:^2.0.0": + version: 2.0.0 + resolution: "chownr@npm:2.0.0" + checksum: c57cf9dd0791e2f18a5ee9c1a299ae6e801ff58fee96dc8bfd0dcb4738a6ce58dd252a3605b1c93c6418fe4f9d5093b28ffbf4d66648cb2a9c67eaef9679be2f + languageName: node + linkType: hard + +"chownr@npm:^3.0.0": + version: 3.0.0 + resolution: "chownr@npm:3.0.0" + checksum: fd73a4bab48b79e66903fe1cafbdc208956f41ea4f856df883d0c7277b7ab29fd33ee65f93b2ec9192fc0169238f2f8307b7735d27c155821d886b84aa97aa8d + languageName: node + linkType: hard + +"chrome-trace-event@npm:^1.0.2": + version: 1.0.4 + resolution: "chrome-trace-event@npm:1.0.4" + checksum: fcbbd9dd0cd5b48444319007cc0c15870fd8612cc0df320908aa9d5e8a244084d48571eb28bf3c58c19327d2c5838f354c2d89fac3956d8e992273437401ac19 + languageName: node + linkType: hard + +"ci-info@npm:^3.2.0, ci-info@npm:^3.7.0": + version: 3.9.0 + resolution: "ci-info@npm:3.9.0" + checksum: 6b19dc9b2966d1f8c2041a838217299718f15d6c4b63ae36e4674edd2bee48f780e94761286a56aa59eb305a85fbea4ddffb7630ec063e7ec7e7e5ad42549a87 + languageName: node + linkType: hard + +"cidr-regex@npm:^3.1.1": + version: 3.1.1 + resolution: "cidr-regex@npm:3.1.1" + dependencies: + ip-regex: ^4.1.0 + checksum: ef9306d086928ee82b3f841b3bdab6e072230f3623a57cf19e06174946f2cbfeb70ca52bc106b127db27a628b9e84fb39284f5851003898ffdb957fe330478ee + languageName: node + linkType: hard + +"cipher-base@npm:^1.0.0, cipher-base@npm:^1.0.1, cipher-base@npm:^1.0.3": + version: 1.0.6 + resolution: "cipher-base@npm:1.0.6" + dependencies: + inherits: ^2.0.4 + safe-buffer: ^5.2.1 + checksum: 64a1738a8583163cf096bc85321a69ef3075bb0873f34cf89dc705e62b9eee058dd6b2e5c672f774ede0b6bdbe56fe7b710e0d38c4f08a2f355d8ab828f05c6f + languageName: node + linkType: hard + +"cjs-module-lexer@npm:^1.0.0": + version: 1.4.1 + resolution: "cjs-module-lexer@npm:1.4.1" + checksum: 2556807a99aec1f9daac60741af96cd613a707f343174ae7967da46402c91dced411bf830d209f2e93be4cecea46fc75cecf1f17c799d7d8a9e1dd6204bfcd22 + languageName: node + linkType: hard + +"classnames@npm:^2.2.6, classnames@npm:^2.3.1, classnames@npm:^2.5.1": + version: 2.5.1 + resolution: "classnames@npm:2.5.1" + checksum: da424a8a6f3a96a2e87d01a432ba19315503294ac7e025f9fece656db6b6a0f7b5003bb1fbb51cbb0d9624d964f1b9bb35a51c73af9b2434c7b292c42231c1e5 + languageName: node + linkType: hard + +"clean-css@npm:^5.2.2": + version: 5.3.3 + resolution: "clean-css@npm:5.3.3" + dependencies: + source-map: ~0.6.0 + checksum: 941987c14860dd7d346d5cf121a82fd2caf8344160b1565c5387f7ccca4bbcaf885bace961be37c4f4713ce2d8c488dd89483c1add47bb779790edbfdcc79cbc + languageName: node + linkType: hard + +"clean-git-ref@npm:^2.0.1": + version: 2.0.1 + resolution: "clean-git-ref@npm:2.0.1" + checksum: b25f585ed47040ea5d699d40a2bb84d1f35afd651f3fcc05fb077224358ffd3d7509fc9edbfc4570f1fc732c987e03ac7d8ec31524ac503ac35c53cb1f5e3bf9 + languageName: node + linkType: hard + +"clean-stack@npm:^2.0.0": + version: 2.2.0 + resolution: "clean-stack@npm:2.2.0" + checksum: 2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68 + languageName: node + linkType: hard + +"cli-cursor@npm:^3.1.0": + version: 3.1.0 + resolution: "cli-cursor@npm:3.1.0" + dependencies: + restore-cursor: ^3.1.0 + checksum: 2692784c6cd2fd85cfdbd11f53aea73a463a6d64a77c3e098b2b4697a20443f430c220629e1ca3b195ea5ac4a97a74c2ee411f3807abf6df2b66211fec0c0a29 + languageName: node + linkType: hard + +"cli-spinners@npm:^2.5.0": + version: 2.9.2 + resolution: "cli-spinners@npm:2.9.2" + checksum: 1bd588289b28432e4676cb5d40505cfe3e53f2e4e10fbe05c8a710a154d6fe0ce7836844b00d6858f740f2ffe67cdc36e0fce9c7b6a8430e80e6388d5aa4956c + languageName: node + linkType: hard + +"cli-width@npm:^3.0.0": + version: 3.0.0 + resolution: "cli-width@npm:3.0.0" + checksum: 4c94af3769367a70e11ed69aa6095f1c600c0ff510f3921ab4045af961820d57c0233acfa8b6396037391f31b4c397e1f614d234294f979ff61430a6c166c3f6 + languageName: node + linkType: hard + +"client-only@npm:^0.0.1": + version: 0.0.1 + resolution: "client-only@npm:0.0.1" + checksum: 0c16bf660dadb90610553c1d8946a7fdfb81d624adea073b8440b7d795d5b5b08beb3c950c6a2cf16279365a3265158a236876d92bce16423c485c322d7dfaf8 + languageName: node + linkType: hard + +"cliui@npm:7.0.4, cliui@npm:^7.0.2": + version: 7.0.4 + resolution: "cliui@npm:7.0.4" + dependencies: + string-width: ^4.2.0 + strip-ansi: ^6.0.0 + wrap-ansi: ^7.0.0 + checksum: ce2e8f578a4813806788ac399b9e866297740eecd4ad1823c27fd344d78b22c5f8597d548adbcc46f0573e43e21e751f39446c5a5e804a12aace402b7a315d7f + languageName: node + linkType: hard + +"cliui@npm:^8.0.1": + version: 8.0.1 + resolution: "cliui@npm:8.0.1" + dependencies: + string-width: ^4.2.0 + strip-ansi: ^6.0.1 + wrap-ansi: ^7.0.0 + checksum: 79648b3b0045f2e285b76fb2e24e207c6db44323581e421c3acbd0e86454cba1b37aea976ab50195a49e7384b871e6dfb2247ad7dec53c02454ac6497394cb56 + languageName: node + linkType: hard + +"clone@npm:2.x": + version: 2.1.2 + resolution: "clone@npm:2.1.2" + checksum: aaf106e9bc025b21333e2f4c12da539b568db4925c0501a1bf4070836c9e848c892fa22c35548ce0d1132b08bbbfa17a00144fe58fccdab6fa900fec4250f67d + languageName: node + linkType: hard + +"clone@npm:^1.0.2": + version: 1.0.4 + resolution: "clone@npm:1.0.4" + checksum: d06418b7335897209e77bdd430d04f882189582e67bd1f75a04565f3f07f5b3f119a9d670c943b6697d0afb100f03b866b3b8a1f91d4d02d72c4ecf2bb64b5dd + languageName: node + linkType: hard + +"clsx@npm:^1.0.2, clsx@npm:^1.0.4, clsx@npm:^1.1.1, clsx@npm:^1.2.1": + version: 1.2.1 + resolution: "clsx@npm:1.2.1" + checksum: 30befca8019b2eb7dbad38cff6266cf543091dae2825c856a62a8ccf2c3ab9c2907c4d12b288b73101196767f66812365400a227581484a05f968b0307cfaf12 + languageName: node + linkType: hard + +"clsx@npm:^2.1.0, clsx@npm:^2.1.1": + version: 2.1.1 + resolution: "clsx@npm:2.1.1" + checksum: acd3e1ab9d8a433ecb3cc2f6a05ab95fe50b4a3cfc5ba47abb6cbf3754585fcb87b84e90c822a1f256c4198e3b41c7f6c391577ffc8678ad587fc0976b24fd57 + languageName: node + linkType: hard + +"cluster-key-slot@npm:1.1.2, cluster-key-slot@npm:^1.1.0, cluster-key-slot@npm:^1.1.2": + version: 1.1.2 + resolution: "cluster-key-slot@npm:1.1.2" + checksum: be0ad2d262502adc998597e83f9ded1b80f827f0452127c5a37b22dfca36bab8edf393f7b25bb626006fb9fb2436106939ede6d2d6ecf4229b96a47f27edd681 + languageName: node + linkType: hard + +"co@npm:^4.6.0": + version: 4.6.0 + resolution: "co@npm:4.6.0" + checksum: 5210d9223010eb95b29df06a91116f2cf7c8e0748a9013ed853b53f362ea0e822f1e5bb054fb3cefc645239a4cf966af1f6133a3b43f40d591f3b68ed6cf0510 + languageName: node + linkType: hard + +"code-block-writer@npm:^13.0.1": + version: 13.0.3 + resolution: "code-block-writer@npm:13.0.3" + checksum: 8e234f0ec2db9625d5efb9f05bdae79da6559bb4d9df94a6aa79a89a7b5ae25093b70d309fc5122840c9c07995cb14b4dd3f98a30f8878e3a3372e177df79454 + languageName: node + linkType: hard + +"codemirror-graphql@npm:^2.0.11, codemirror-graphql@npm:^2.0.13": + version: 2.2.0 + resolution: "codemirror-graphql@npm:2.2.0" + dependencies: + "@types/codemirror": ^0.0.90 + graphql-language-service: 5.3.0 + peerDependencies: + "@codemirror/language": 6.0.0 + codemirror: ^5.65.3 + graphql: ^15.5.0 || ^16.0.0 || ^17.0.0 + checksum: 74640931a744e50f3e8432e9f794da28f09911e80ed8db69ba261c283814639008b4ef97261e7c285d91b913124e3aca4e9c20ae613b48dc002559478884ca46 + languageName: node + linkType: hard + +"codemirror@npm:^5.65.3": + version: 5.65.18 + resolution: "codemirror@npm:5.65.18" + checksum: 950015d587e0790cceae157423bbc70bf1da8256050c8f6739fe967045b050e22c63b332de6388ed6d9526d253a834806ace76c875006fc8078e2c15c9f275a7 + languageName: node + linkType: hard + +"codemirror@npm:^6.0.0": + version: 6.0.1 + resolution: "codemirror@npm:6.0.1" + dependencies: + "@codemirror/autocomplete": ^6.0.0 + "@codemirror/commands": ^6.0.0 + "@codemirror/language": ^6.0.0 + "@codemirror/lint": ^6.0.0 + "@codemirror/search": ^6.0.0 + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.0.0 + checksum: 1a78f7077ac5801bdbff162aa0c61bf2b974603c7e9a477198c3ce50c789af674a061d7c293c58b73807eda345c2b5228c38ad2aabb9319d552d5486f785cbef + languageName: node + linkType: hard + +"codeowners-utils@npm:^1.0.2": + version: 1.0.2 + resolution: "codeowners-utils@npm:1.0.2" + dependencies: + cross-spawn: ^7.0.2 + find-up: ^4.1.0 + ignore: ^5.1.4 + locate-path: ^5.0.0 + checksum: 1e1c1f271ad4d4b4b25f6d19fc61f177f010bfb95de9af26662bb09c2f4f5572c1f3c8e9552aff15924f1c97058812bd5b5064d1eea721cc70e17490dae3fb02 + languageName: node + linkType: hard + +"collect-v8-coverage@npm:^1.0.0": + version: 1.0.2 + resolution: "collect-v8-coverage@npm:1.0.2" + checksum: c10f41c39ab84629d16f9f6137bc8a63d332244383fc368caf2d2052b5e04c20cd1fd70f66fcf4e2422b84c8226598b776d39d5f2d2a51867cc1ed5d1982b4da + languageName: node + linkType: hard + +"color-convert@npm:^1.9.0, color-convert@npm:^1.9.3": + version: 1.9.3 + resolution: "color-convert@npm:1.9.3" + dependencies: + color-name: 1.1.3 + checksum: fd7a64a17cde98fb923b1dd05c5f2e6f7aefda1b60d67e8d449f9328b4e53b228a428fd38bfeaeb2db2ff6b6503a776a996150b80cdf224062af08a5c8a3a203 + languageName: node + linkType: hard + +"color-convert@npm:^2.0.1": + version: 2.0.1 + resolution: "color-convert@npm:2.0.1" + dependencies: + color-name: ~1.1.4 + checksum: 79e6bdb9fd479a205c71d89574fccfb22bd9053bd98c6c4d870d65c132e5e904e6034978e55b43d69fcaa7433af2016ee203ce76eeba9cfa554b373e7f7db336 + languageName: node + linkType: hard + +"color-name@npm:1.1.3": + version: 1.1.3 + resolution: "color-name@npm:1.1.3" + checksum: 09c5d3e33d2105850153b14466501f2bfb30324a2f76568a408763a3b7433b0e50e5b4ab1947868e65cb101bb7cb75029553f2c333b6d4b8138a73fcc133d69d + languageName: node + linkType: hard + +"color-name@npm:^1.0.0, color-name@npm:^1.1.4, color-name@npm:~1.1.4": + version: 1.1.4 + resolution: "color-name@npm:1.1.4" + checksum: b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610 + languageName: node + linkType: hard + +"color-string@npm:^1.6.0": + version: 1.9.1 + resolution: "color-string@npm:1.9.1" + dependencies: + color-name: ^1.0.0 + simple-swizzle: ^0.2.2 + checksum: c13fe7cff7885f603f49105827d621ce87f4571d78ba28ef4a3f1a104304748f620615e6bf065ecd2145d0d9dad83a3553f52bb25ede7239d18e9f81622f1cc5 + languageName: node + linkType: hard + +"color-support@npm:^1.1.2, color-support@npm:^1.1.3": + version: 1.1.3 + resolution: "color-support@npm:1.1.3" + bin: + color-support: bin.js + checksum: 9b7356817670b9a13a26ca5af1c21615463b500783b739b7634a0c2047c16cef4b2865d7576875c31c3cddf9dd621fa19285e628f20198b233a5cfdda6d0793b + languageName: node + linkType: hard + +"color@npm:^3.1.3": + version: 3.2.1 + resolution: "color@npm:3.2.1" + dependencies: + color-convert: ^1.9.3 + color-string: ^1.6.0 + checksum: f81220e8b774d35865c2561be921f5652117638dcda7ca4029262046e37fc2444ac7bbfdd110cf1fd9c074a4ee5eda8f85944ffbdda26186b602dd9bb05f6400 + languageName: node + linkType: hard + +"colord@npm:^2.9.1": + version: 2.9.3 + resolution: "colord@npm:2.9.3" + checksum: 95d909bfbcfd8d5605cbb5af56f2d1ce2b323990258fd7c0d2eb0e6d3bb177254d7fb8213758db56bb4ede708964f78c6b992b326615f81a18a6aaf11d64c650 + languageName: node + linkType: hard + +"colorette@npm:2.0.19": + version: 2.0.19 + resolution: "colorette@npm:2.0.19" + checksum: 888cf5493f781e5fcf54ce4d49e9d7d698f96ea2b2ef67906834bb319a392c667f9ec69f4a10e268d2946d13a9503d2d19b3abaaaf174e3451bfe91fb9d82427 + languageName: node + linkType: hard + +"colorette@npm:^2.0.10": + version: 2.0.20 + resolution: "colorette@npm:2.0.20" + checksum: 0c016fea2b91b733eb9f4bcdb580018f52c0bc0979443dad930e5037a968237ac53d9beb98e218d2e9235834f8eebce7f8e080422d6194e957454255bde71d3d + languageName: node + linkType: hard + +"colorspace@npm:1.1.x": + version: 1.1.4 + resolution: "colorspace@npm:1.1.4" + dependencies: + color: ^3.1.3 + text-hex: 1.0.x + checksum: bb3934ef3c417e961e6d03d7ca60ea6e175947029bfadfcdb65109b01881a1c0ecf9c2b0b59abcd0ee4a0d7c1eae93beed01b0e65848936472270a0b341ebce8 + languageName: node + linkType: hard + +"combined-stream@npm:^1.0.6, combined-stream@npm:^1.0.8, combined-stream@npm:~1.0.6": + version: 1.0.8 + resolution: "combined-stream@npm:1.0.8" + dependencies: + delayed-stream: ~1.0.0 + checksum: 49fa4aeb4916567e33ea81d088f6584749fc90c7abec76fd516bf1c5aa5c79f3584b5ba3de6b86d26ddd64bae5329c4c7479343250cfe71c75bb366eae53bb7c + languageName: node + linkType: hard + +"comma-separated-tokens@npm:^1.0.0": + version: 1.0.8 + resolution: "comma-separated-tokens@npm:1.0.8" + checksum: 0adcb07174fa4d08cf0f5c8e3aec40a36b5ff0c2c720e5e23f50fe02e6789d1d00a67036c80e0c1e1539f41d3e7f0101b074039dd833b4e4a59031b659d6ca0d + languageName: node + linkType: hard + +"comma-separated-tokens@npm:^2.0.0": + version: 2.0.3 + resolution: "comma-separated-tokens@npm:2.0.3" + checksum: e3bf9e0332a5c45f49b90e79bcdb4a7a85f28d6a6f0876a94f1bb9b2bfbdbbb9292aac50e1e742d8c0db1e62a0229a106f57917e2d067fca951d81737651700d + languageName: node + linkType: hard + +"command-exists@npm:^1.2.9": + version: 1.2.9 + resolution: "command-exists@npm:1.2.9" + checksum: 729ae3d88a2058c93c58840f30341b7f82688a573019535d198b57a4d8cb0135ced0ad7f52b591e5b28a90feb2c675080ce916e56254a0f7c15cb2395277cac3 + languageName: node + linkType: hard + +"commander@npm:7, commander@npm:^7.2.0": + version: 7.2.0 + resolution: "commander@npm:7.2.0" + checksum: 53501cbeee61d5157546c0bef0fedb6cdfc763a882136284bed9a07225f09a14b82d2a84e7637edfd1a679fb35ed9502fd58ef1d091e6287f60d790147f68ddc + languageName: node + linkType: hard + +"commander@npm:8.3.0, commander@npm:^8.3.0": + version: 8.3.0 + resolution: "commander@npm:8.3.0" + checksum: 0f82321821fc27b83bd409510bb9deeebcfa799ff0bf5d102128b500b7af22872c0c92cb6a0ebc5a4cf19c6b550fba9cedfa7329d18c6442a625f851377bacf0 + languageName: node + linkType: hard + +"commander@npm:^10.0.0": + version: 10.0.1 + resolution: "commander@npm:10.0.1" + checksum: 436901d64a818295803c1996cd856621a74f30b9f9e28a588e726b2b1670665bccd7c1a77007ebf328729f0139838a88a19265858a0fa7a8728c4656796db948 + languageName: node + linkType: hard + +"commander@npm:^12.0.0": + version: 12.1.0 + resolution: "commander@npm:12.1.0" + checksum: 68e9818b00fc1ed9cdab9eb16905551c2b768a317ae69a5e3c43924c2b20ac9bb65b27e1cab36aeda7b6496376d4da908996ba2c0b5d79463e0fb1e77935d514 + languageName: node + linkType: hard + +"commander@npm:^2.19.0, commander@npm:^2.20.0": + version: 2.20.3 + resolution: "commander@npm:2.20.3" + checksum: ab8c07884e42c3a8dbc5dd9592c606176c7eb5c1ca5ff274bcf907039b2c41de3626f684ea75ccf4d361ba004bbaff1f577d5384c155f3871e456bdf27becf9e + languageName: node + linkType: hard + +"commander@npm:^4.0.0, commander@npm:^4.1.1": + version: 4.1.1 + resolution: "commander@npm:4.1.1" + checksum: d7b9913ff92cae20cb577a4ac6fcc121bd6223319e54a40f51a14740a681ad5c574fd29a57da478a5f234a6fa6c52cbf0b7c641353e03c648b1ae85ba670b977 + languageName: node + linkType: hard + +"commander@npm:^5.1.0": + version: 5.1.0 + resolution: "commander@npm:5.1.0" + checksum: 0b7fec1712fbcc6230fcb161d8d73b4730fa91a21dc089515489402ad78810547683f058e2a9835929c212fead1d6a6ade70db28bbb03edbc2829a9ab7d69447 + languageName: node + linkType: hard + +"common-tags@npm:^1.8.0": + version: 1.8.2 + resolution: "common-tags@npm:1.8.2" + checksum: 767a6255a84bbc47df49a60ab583053bb29a7d9687066a18500a516188a062c4e4cd52de341f22de0b07062e699b1b8fe3cfa1cb55b241cb9301aeb4f45b4dff + languageName: node + linkType: hard + +"commondir@npm:^1.0.1": + version: 1.0.1 + resolution: "commondir@npm:1.0.1" + checksum: 59715f2fc456a73f68826285718503340b9f0dd89bfffc42749906c5cf3d4277ef11ef1cca0350d0e79204f00f1f6d83851ececc9095dc88512a697ac0b9bdcb + languageName: node + linkType: hard + +"compare-versions@npm:4.1.4": + version: 4.1.4 + resolution: "compare-versions@npm:4.1.4" + checksum: c1617544b79c2f36a1d543c50efd0da1a994040294c8923218080bc0df46da83ca414e3378282e93cab073744995124946417d130d8987e8efb5d1a73c0c4ba6 + languageName: node + linkType: hard + +"component-emitter@npm:^1.3.0": + version: 1.3.1 + resolution: "component-emitter@npm:1.3.1" + checksum: 94550aa462c7bd5a61c1bc480e28554aa306066930152d1b1844a0dd3845d4e5db7e261ddec62ae184913b3e59b55a2ad84093b9d3596a8f17c341514d6c483d + languageName: node + linkType: hard + +"compress-commons@npm:^6.0.2": + version: 6.0.2 + resolution: "compress-commons@npm:6.0.2" + dependencies: + crc-32: ^1.2.0 + crc32-stream: ^6.0.0 + is-stream: ^2.0.1 + normalize-path: ^3.0.0 + readable-stream: ^4.0.0 + checksum: 37d79a54f91344ecde352588e0a128f28ce619b085acd4f887defd76978a0640e3454a42c7dcadb0191bb3f971724ae4b1f9d6ef9620034aa0427382099ac946 + languageName: node + linkType: hard + +"compressible@npm:~2.0.18": + version: 2.0.18 + resolution: "compressible@npm:2.0.18" + dependencies: + mime-db: ">= 1.43.0 < 2" + checksum: 58321a85b375d39230405654721353f709d0c1442129e9a17081771b816302a012471a9b8f4864c7dbe02eef7f2aaac3c614795197092262e94b409c9be108f0 + languageName: node + linkType: hard + +"compression@npm:^1.7.4": + version: 1.7.5 + resolution: "compression@npm:1.7.5" + dependencies: + bytes: 3.1.2 + compressible: ~2.0.18 + debug: 2.6.9 + negotiator: ~0.6.4 + on-headers: ~1.0.2 + safe-buffer: 5.2.1 + vary: ~1.1.2 + checksum: d624b5562492518eee82c4f1381ea36f69f1f10b4283bfc2dcafd7d4d7eeed17c3f0e8f2951798594b7064db7ac5a6198df34816bde2d56bb7c75ce1570880e9 + languageName: node + linkType: hard + +"compute-gcd@npm:^1.2.1": + version: 1.2.1 + resolution: "compute-gcd@npm:1.2.1" + dependencies: + validate.io-array: ^1.0.3 + validate.io-function: ^1.0.2 + validate.io-integer-array: ^1.0.0 + checksum: 51cf33b75f7c8db5142fcb99a9d84a40260993fed8e02a7ab443834186c3ab99b3fd20b30ad9075a6a9d959d69df6da74dd3be8a59c78d9f2fe780ebda8242e1 + languageName: node + linkType: hard + +"compute-lcm@npm:^1.1.2": + version: 1.1.2 + resolution: "compute-lcm@npm:1.1.2" + dependencies: + compute-gcd: ^1.2.1 + validate.io-array: ^1.0.3 + validate.io-function: ^1.0.2 + validate.io-integer-array: ^1.0.0 + checksum: d499ab57dcb48e8d0fd233b99844a06d1cc56115602c920c586e998ebba60293731f5b6976e8a1e83ae6cbfe86716f62d9432e8d94913fed8bd8352f447dc917 + languageName: node + linkType: hard + +"concat-map@npm:0.0.1": + version: 0.0.1 + resolution: "concat-map@npm:0.0.1" + checksum: 902a9f5d8967a3e2faf138d5cb784b9979bad2e6db5357c5b21c568df4ebe62bcb15108af1b2253744844eb964fc023fbd9afbbbb6ddd0bcc204c6fb5b7bf3af + languageName: node + linkType: hard + +"concat-stream@npm:^1.5.2": + version: 1.6.2 + resolution: "concat-stream@npm:1.6.2" + dependencies: + buffer-from: ^1.0.0 + inherits: ^2.0.3 + readable-stream: ^2.2.2 + typedarray: ^0.0.6 + checksum: 1ef77032cb4459dcd5187bd710d6fc962b067b64ec6a505810de3d2b8cc0605638551b42f8ec91edf6fcd26141b32ef19ad749239b58fae3aba99187adc32285 + languageName: node + linkType: hard + +"concat-stream@npm:^2.0.0": + version: 2.0.0 + resolution: "concat-stream@npm:2.0.0" + dependencies: + buffer-from: ^1.0.0 + inherits: ^2.0.3 + readable-stream: ^3.0.2 + typedarray: ^0.0.6 + checksum: d7f75d48f0ecd356c1545d87e22f57b488172811b1181d96021c7c4b14ab8855f5313280263dca44bb06e5222f274d047da3e290a38841ef87b59719bde967c7 + languageName: node + linkType: hard + +"concat-with-sourcemaps@npm:^1.1.0": + version: 1.1.0 + resolution: "concat-with-sourcemaps@npm:1.1.0" + dependencies: + source-map: ^0.6.1 + checksum: 57faa6f4a6f38a1846a58f96b2745ec8435755e0021f069e89085c651d091b78d9bc20807ea76c38c85021acca80dc2fa4cedda666aade169b602604215d25b9 + languageName: node + linkType: hard + +"concurrently@npm:6.5.1": + version: 6.5.1 + resolution: "concurrently@npm:6.5.1" + dependencies: + chalk: ^4.1.0 + date-fns: ^2.16.1 + lodash: ^4.17.21 + rxjs: ^6.6.3 + spawn-command: ^0.0.2-1 + supports-color: ^8.1.0 + tree-kill: ^1.2.2 + yargs: ^16.2.0 + bin: + concurrently: bin/concurrently.js + checksum: 3f4d89b464fa5c9fb6f9489b46594c30ba54eff6ff10ab3cb5f30f64b74c83be664623a0f0cc731a3cb3f057a1f4a3292f7d3470c012a292c44aca31f214a3fa + languageName: node + linkType: hard + +"concurrently@npm:^8.2.2": + version: 8.2.2 + resolution: "concurrently@npm:8.2.2" + dependencies: + chalk: ^4.1.2 + date-fns: ^2.30.0 + lodash: ^4.17.21 + rxjs: ^7.8.1 + shell-quote: ^1.8.1 + spawn-command: 0.0.2 + supports-color: ^8.1.1 + tree-kill: ^1.2.2 + yargs: ^17.7.2 + bin: + conc: dist/bin/concurrently.js + concurrently: dist/bin/concurrently.js + checksum: 8ac774df06869773438f1bf91025180c52d5b53139bc86cf47659136c0d97461d0579c515d848d1e945d4e3e0cafe646b2ea18af8d74259b46abddcfe39b2c6c + languageName: node + linkType: hard + +"connect-history-api-fallback@npm:^2.0.0": + version: 2.0.0 + resolution: "connect-history-api-fallback@npm:2.0.0" + checksum: dc5368690f4a5c413889792f8df70d5941ca9da44523cde3f87af0745faee5ee16afb8195434550f0504726642734f2683d6c07f8b460f828a12c45fbd4c9a68 + languageName: node + linkType: hard + +"connect-session-knex@npm:^4.0.0": + version: 4.0.2 + resolution: "connect-session-knex@npm:4.0.2" + dependencies: + bluebird: ^3.7.2 + knex: 3 + checksum: da4e097aee7737a2c087ec8f8a5e43962132d7968b009fbf2e65bf10a4aa07efa1305f6e5e2025256d5b872d7118b7d53e970beec07f4901e6216942132062f8 + languageName: node + linkType: hard + +"connect@npm:^3.7.0": + version: 3.7.0 + resolution: "connect@npm:3.7.0" + dependencies: + debug: 2.6.9 + finalhandler: 1.1.2 + parseurl: ~1.3.3 + utils-merge: 1.0.1 + checksum: 96e1c4effcf219b065c7823e57351c94366d2e2a6952fa95e8212bffb35c86f1d5a3f9f6c5796d4cd3a5fdda628368b1c3cc44bf19c66cfd68fe9f9cab9177e2 + languageName: node + linkType: hard + +"consola@npm:^2.15.0": + version: 2.15.3 + resolution: "consola@npm:2.15.3" + checksum: 8ef7a09b703ec67ac5c389a372a33b6dc97eda6c9876443a60d76a3076eea0259e7f67a4e54fd5a52f97df73690822d090cf8b7e102b5761348afef7c6d03e28 + languageName: node + linkType: hard + +"console-browserify@npm:^1.1.0": + version: 1.2.0 + resolution: "console-browserify@npm:1.2.0" + checksum: 226591eeff8ed68e451dffb924c1fb750c654d54b9059b3b261d360f369d1f8f70650adecf2c7136656236a4bfeb55c39281b5d8a55d792ebbb99efd3d848d52 + languageName: node + linkType: hard + +"console-control-strings@npm:^1.0.0, console-control-strings@npm:^1.1.0": + version: 1.1.0 + resolution: "console-control-strings@npm:1.1.0" + checksum: 8755d76787f94e6cf79ce4666f0c5519906d7f5b02d4b884cf41e11dcd759ed69c57da0670afd9236d229a46e0f9cf519db0cd829c6dca820bb5a5c3def584ed + languageName: node + linkType: hard + +"console.table@npm:0.10.0": + version: 0.10.0 + resolution: "console.table@npm:0.10.0" + dependencies: + easy-table: 1.1.0 + checksum: 4c1460e3105a5f7df5bfa372844104a20e487fc0fccc5821c169a39def3249759554fc132621074ad6695664a1a8d558dd385c0e7f290acb2eaca51466474bb9 + languageName: node + linkType: hard + +"constants-browserify@npm:^1.0.0": + version: 1.0.0 + resolution: "constants-browserify@npm:1.0.0" + checksum: f7ac8c6d0b6e4e0c77340a1d47a3574e25abd580bfd99ad707b26ff7618596cf1a5e5ce9caf44715e9e01d4a5d12cb3b4edaf1176f34c19adb2874815a56e64f + languageName: node + linkType: hard + +"content-disposition@npm:0.5.4, content-disposition@npm:~0.5.2": + version: 0.5.4 + resolution: "content-disposition@npm:0.5.4" + dependencies: + safe-buffer: 5.2.1 + checksum: afb9d545e296a5171d7574fcad634b2fdf698875f4006a9dd04a3e1333880c5c0c98d47b560d01216fb6505a54a2ba6a843ee3a02ec86d7e911e8315255f56c3 + languageName: node + linkType: hard + +"content-type@npm:^1.0.4, content-type@npm:^1.0.5, content-type@npm:~1.0.4, content-type@npm:~1.0.5": + version: 1.0.5 + resolution: "content-type@npm:1.0.5" + checksum: 566271e0a251642254cde0f845f9dd4f9856e52d988f4eb0d0dcffbb7a1f8ec98de7a5215fc628f3bce30fe2fb6fd2bc064b562d721658c59b544e2d34ea2766 + languageName: node + linkType: hard + +"convert-source-map@npm:^1.5.0": + version: 1.9.0 + resolution: "convert-source-map@npm:1.9.0" + checksum: dc55a1f28ddd0e9485ef13565f8f756b342f9a46c4ae18b843fe3c30c675d058d6a4823eff86d472f187b176f0adf51ea7b69ea38be34be4a63cbbf91b0593c8 + languageName: node + linkType: hard + +"convert-source-map@npm:^2.0.0": + version: 2.0.0 + resolution: "convert-source-map@npm:2.0.0" + checksum: 63ae9933be5a2b8d4509daca5124e20c14d023c820258e484e32dc324d34c2754e71297c94a05784064ad27615037ef677e3f0c00469fb55f409d2bb21261035 + languageName: node + linkType: hard + +"cookie-parser@npm:^1.4.5": + version: 1.4.7 + resolution: "cookie-parser@npm:1.4.7" + dependencies: + cookie: 0.7.2 + cookie-signature: 1.0.6 + checksum: 243fa13f217e793d20a57675e6552beea08c5989fcc68495d543997a31646875335e0e82d687b42dcfd466df57891d22bae7f5ba6ab33b7705ed2dd6eb989105 + languageName: node + linkType: hard + +"cookie-signature@npm:1.0.6": + version: 1.0.6 + resolution: "cookie-signature@npm:1.0.6" + checksum: f4e1b0a98a27a0e6e66fd7ea4e4e9d8e038f624058371bf4499cfcd8f3980be9a121486995202ba3fca74fbed93a407d6d54d43a43f96fd28d0bd7a06761591a + languageName: node + linkType: hard + +"cookie-signature@npm:1.0.7": + version: 1.0.7 + resolution: "cookie-signature@npm:1.0.7" + checksum: 1a62808cd30d15fb43b70e19829b64d04b0802d8ef00275b57d152de4ae6a3208ca05c197b6668d104c4d9de389e53ccc2d3bc6bcaaffd9602461417d8c40710 + languageName: node + linkType: hard + +"cookie@npm:0.7.1": + version: 0.7.1 + resolution: "cookie@npm:0.7.1" + checksum: cec5e425549b3650eb5c3498a9ba3cde0b9cd419e3b36e4b92739d30b4d89e0b678b98c1ddc209ce7cf958cd3215671fd6ac47aec21f10c2a0cc68abd399d8a7 + languageName: node + linkType: hard + +"cookie@npm:0.7.2, cookie@npm:^0.7.0, cookie@npm:~0.7.2": + version: 0.7.2 + resolution: "cookie@npm:0.7.2" + checksum: 9bf8555e33530affd571ea37b615ccad9b9a34febbf2c950c86787088eb00a8973690833b0f8ebd6b69b753c62669ea60cec89178c1fb007bf0749abed74f93e + languageName: node + linkType: hard + +"cookie@npm:^0.4.2": + version: 0.4.2 + resolution: "cookie@npm:0.4.2" + checksum: a00833c998bedf8e787b4c342defe5fa419abd96b32f4464f718b91022586b8f1bafbddd499288e75c037642493c83083da426c6a9080d309e3bd90fd11baa9b + languageName: node + linkType: hard + +"cookie@npm:^0.6.0": + version: 0.6.0 + resolution: "cookie@npm:0.6.0" + checksum: f56a7d32a07db5458e79c726b77e3c2eff655c36792f2b6c58d351fb5f61531e5b1ab7f46987150136e366c65213cbe31729e02a3eaed630c3bf7334635fb410 + languageName: node + linkType: hard + +"cookiejar@npm:^2.1.4": + version: 2.1.4 + resolution: "cookiejar@npm:2.1.4" + checksum: c4442111963077dc0e5672359956d6556a195d31cbb35b528356ce5f184922b99ac48245ac05ed86cf993f7df157c56da10ab3efdadfed79778a0d9b1b092d5b + languageName: node + linkType: hard + +"cookies@npm:~0.9.0": + version: 0.9.1 + resolution: "cookies@npm:0.9.1" + dependencies: + depd: ~2.0.0 + keygrip: ~1.1.0 + checksum: 213e4d14847b582fbd8a003203d3621a4b9fa792a315c37954e89332d38fac5bcc34ba92ef316ad6d5fe28f0187aaa115927fbbe2080744ad1707a93b4313247 + languageName: node + linkType: hard + +"copy-to-clipboard@npm:^3.2.0, copy-to-clipboard@npm:^3.3.1": + version: 3.3.3 + resolution: "copy-to-clipboard@npm:3.3.3" + dependencies: + toggle-selection: ^1.0.6 + checksum: e0a325e39b7615108e6c1c8ac110ae7b829cdc4ee3278b1df6a0e4228c490442cc86444cd643e2da344fbc424b3aab8909e2fec82f8bc75e7e5b190b7c24eecf + languageName: node + linkType: hard + +"core-js-compat@npm:^3.38.0, core-js-compat@npm:^3.38.1": + version: 3.39.0 + resolution: "core-js-compat@npm:3.39.0" + dependencies: + browserslist: ^4.24.2 + checksum: 2d7d087c3271d711d03a55203d4756f6288317a1ce35cdc8bafaf1833ef21fd67a92a50cff8dcf7df1325ac63720906ab3cf514c85b238c95f65fca1040f6ad6 + languageName: node + linkType: hard + +"core-js-pure@npm:^3.23.3, core-js-pure@npm:^3.30.2": + version: 3.39.0 + resolution: "core-js-pure@npm:3.39.0" + checksum: cdcb1eec4eb9308fcf5cfe18a95322c388b05c11e66b5b0ac296a08f8f2106b458ecfe8aca0155d62ed2c5e150485b68073937e7b0a563fbc287563c4475a7c1 + languageName: node + linkType: hard + +"core-js@npm:^2.4.0, core-js@npm:^2.5.0": + version: 2.6.12 + resolution: "core-js@npm:2.6.12" + checksum: 44fa9934a85f8c78d61e0c8b7b22436330471ffe59ec5076fe7f324d6e8cf7f824b14b1c81ca73608b13bdb0fef035bd820989bf059767ad6fa13123bb8bd016 + languageName: node + linkType: hard + +"core-js@npm:^3.6.5": + version: 3.39.0 + resolution: "core-js@npm:3.39.0" + checksum: 7a3670e9a2a89e0a049daa288d742d09f6e16d27a8945c5e2ef6fc45dc57e5c4bc5db589da05947486f54ae978d14cf27bd3fb1db0b9907000a611e8af37355b + languageName: node + linkType: hard + +"core-util-is@npm:1.0.2": + version: 1.0.2 + resolution: "core-util-is@npm:1.0.2" + checksum: 7a4c925b497a2c91421e25bf76d6d8190f0b2359a9200dbeed136e63b2931d6294d3b1893eda378883ed363cd950f44a12a401384c609839ea616befb7927dab + languageName: node + linkType: hard + +"core-util-is@npm:~1.0.0": + version: 1.0.3 + resolution: "core-util-is@npm:1.0.3" + checksum: 9de8597363a8e9b9952491ebe18167e3b36e7707569eed0ebf14f8bba773611376466ae34575bca8cfe3c767890c859c74056084738f09d4e4a6f902b2ad7d99 + languageName: node + linkType: hard + +"cors-gate@npm:^1.1.3": + version: 1.1.3 + resolution: "cors-gate@npm:1.1.3" + checksum: 8480e24ccc77a0a150c3cb555ae07fc4e2fa0034a2585c0c91efa3c44b91936d31abf1c5a87b09726253b491e0b66ed491face942502bbc38f87bb309f931fc6 + languageName: node + linkType: hard + +"cors@npm:^2.8.4, cors@npm:^2.8.5": + version: 2.8.5 + resolution: "cors@npm:2.8.5" + dependencies: + object-assign: ^4 + vary: ^1 + checksum: ced838404ccd184f61ab4fdc5847035b681c90db7ac17e428f3d81d69e2989d2b680cc254da0e2554f5ed4f8a341820a1ce3d1c16b499f6e2f47a1b9b07b5006 + languageName: node + linkType: hard + +"cosmiconfig@npm:^6.0.0": + version: 6.0.0 + resolution: "cosmiconfig@npm:6.0.0" + dependencies: + "@types/parse-json": ^4.0.0 + import-fresh: ^3.1.0 + parse-json: ^5.0.0 + path-type: ^4.0.0 + yaml: ^1.7.2 + checksum: 8eed7c854b91643ecb820767d0deb038b50780ecc3d53b0b19e03ed8aabed4ae77271198d1ae3d49c3b110867edf679f5faad924820a8d1774144a87cb6f98fc + languageName: node + linkType: hard + +"cosmiconfig@npm:^7.0.0, cosmiconfig@npm:^7.0.1": + version: 7.1.0 + resolution: "cosmiconfig@npm:7.1.0" + dependencies: + "@types/parse-json": ^4.0.0 + import-fresh: ^3.2.1 + parse-json: ^5.0.0 + path-type: ^4.0.0 + yaml: ^1.10.0 + checksum: c53bf7befc1591b2651a22414a5e786cd5f2eeaa87f3678a3d49d6069835a9d8d1aef223728e98aa8fec9a95bf831120d245096db12abe019fecb51f5696c96f + languageName: node + linkType: hard + +"cosmiconfig@npm:^8.1.0, cosmiconfig@npm:^8.2.0": + version: 8.3.6 + resolution: "cosmiconfig@npm:8.3.6" + dependencies: + import-fresh: ^3.3.0 + js-yaml: ^4.1.0 + parse-json: ^5.2.0 + path-type: ^4.0.0 + peerDependencies: + typescript: ">=4.9.5" + peerDependenciesMeta: + typescript: + optional: true + checksum: dc339ebea427898c9e03bf01b56ba7afbac07fc7d2a2d5a15d6e9c14de98275a9565da949375aee1809591c152c0a3877bb86dbeaf74d5bd5aaa79955ad9e7a0 + languageName: node + linkType: hard + +"cpu-features@npm:~0.0.10": + version: 0.0.10 + resolution: "cpu-features@npm:0.0.10" + dependencies: + buildcheck: ~0.0.6 + nan: ^2.19.0 + node-gyp: latest + checksum: ab17e25cea0b642bdcfd163d3d872be4cc7d821e854d41048557799e990d672ee1cc7bd1d4e7c4de0309b1683d4c001d36ba8569b5035d1e7e2ff2d681f681d7 + languageName: node + linkType: hard + +"crc-32@npm:^1.2.0": + version: 1.2.2 + resolution: "crc-32@npm:1.2.2" + bin: + crc32: bin/crc32.njs + checksum: ad2d0ad0cbd465b75dcaeeff0600f8195b686816ab5f3ba4c6e052a07f728c3e70df2e3ca9fd3d4484dc4ba70586e161ca5a2334ec8bf5a41bf022a6103ff243 + languageName: node + linkType: hard + +"crc32-stream@npm:^6.0.0": + version: 6.0.0 + resolution: "crc32-stream@npm:6.0.0" + dependencies: + crc-32: ^1.2.0 + readable-stream: ^4.0.0 + checksum: e6edc2f81bc387daef6d18b2ac18c2ffcb01b554d3b5c7d8d29b177505aafffba574658fdd23922767e8dab1183d1962026c98c17e17fb272794c33293ef607c + languageName: node + linkType: hard + +"create-ecdh@npm:^4.0.4": + version: 4.0.4 + resolution: "create-ecdh@npm:4.0.4" + dependencies: + bn.js: ^4.1.0 + elliptic: ^6.5.3 + checksum: 0dd7fca9711d09e152375b79acf1e3f306d1a25ba87b8ff14c2fd8e68b83aafe0a7dd6c4e540c9ffbdd227a5fa1ad9b81eca1f233c38bb47770597ba247e614b + languageName: node + linkType: hard + +"create-hash@npm:^1.1.0, create-hash@npm:^1.1.2, create-hash@npm:^1.2.0": + version: 1.2.0 + resolution: "create-hash@npm:1.2.0" + dependencies: + cipher-base: ^1.0.1 + inherits: ^2.0.1 + md5.js: ^1.3.4 + ripemd160: ^2.0.1 + sha.js: ^2.4.0 + checksum: 02a6ae3bb9cd4afee3fabd846c1d8426a0e6b495560a977ba46120c473cb283be6aa1cace76b5f927cf4e499c6146fb798253e48e83d522feba807d6b722eaa9 + languageName: node + linkType: hard + +"create-hmac@npm:^1.1.4, create-hmac@npm:^1.1.7": + version: 1.1.7 + resolution: "create-hmac@npm:1.1.7" + dependencies: + cipher-base: ^1.0.3 + create-hash: ^1.1.0 + inherits: ^2.0.1 + ripemd160: ^2.0.0 + safe-buffer: ^5.0.1 + sha.js: ^2.4.8 + checksum: ba12bb2257b585a0396108c72830e85f882ab659c3320c83584b1037f8ab72415095167ced80dc4ce8e446a8ecc4b2acf36d87befe0707d73b26cf9dc77440ed + languageName: node + linkType: hard + +"create-jest@npm:^29.7.0": + version: 29.7.0 + resolution: "create-jest@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + chalk: ^4.0.0 + exit: ^0.1.2 + graceful-fs: ^4.2.9 + jest-config: ^29.7.0 + jest-util: ^29.7.0 + prompts: ^2.0.1 + bin: + create-jest: bin/create-jest.js + checksum: 1427d49458adcd88547ef6fa39041e1fe9033a661293aa8d2c3aa1b4967cb5bf4f0c00436c7a61816558f28ba2ba81a94d5c962e8022ea9a883978fc8e1f2945 + languageName: node + linkType: hard + +"create-require@npm:^1.1.0": + version: 1.1.1 + resolution: "create-require@npm:1.1.1" + checksum: a9a1503d4390d8b59ad86f4607de7870b39cad43d929813599a23714831e81c520bddf61bcdd1f8e30f05fd3a2b71ae8538e946eb2786dc65c2bbc520f692eff + languageName: node + linkType: hard + +"crelt@npm:^1.0.5": + version: 1.0.6 + resolution: "crelt@npm:1.0.6" + checksum: dad842093371ad702afbc0531bfca2b0a8dd920b23a42f26e66dabbed9aad9acd5b9030496359545ef3937c3aced0fd4ac39f7a2d280a23ddf9eb7fdcb94a69f + languageName: node + linkType: hard + +"cron-parser@npm:^4.2.0": + version: 4.9.0 + resolution: "cron-parser@npm:4.9.0" + dependencies: + luxon: ^3.2.1 + checksum: 3cf248fc5cae6c19ec7124962b1cd84b76f02b9bc4f58976b3bd07624db3ef10aaf1548efcc2d2dcdab0dad4f12029d640a55ecce05ea5e1596af9db585502cf + languageName: node + linkType: hard + +"cron@npm:^3.0.0": + version: 3.3.1 + resolution: "cron@npm:3.3.1" + dependencies: + "@types/luxon": ~3.4.0 + luxon: ~3.5.0 + checksum: 069e521afd492a7d19234fc3478be32075a1c89fca729f2a3d2f9b7158880c0951e7e1515c8398c36f5ea04155d18186220c980e75623848e80bcee63218f5bc + languageName: node + linkType: hard + +"cronstrue@npm:^2.2.0, cronstrue@npm:^2.32.0": + version: 2.52.0 + resolution: "cronstrue@npm:2.52.0" + bin: + cronstrue: bin/cli.js + checksum: bfe4d8a58d74ba4a987ea6fe65917529451c648e2abe072d22a6ad4c750f4a7ae9d01321c999594b59cb138990ca43537505e759c23811bbffa606956fff5c55 + languageName: node + linkType: hard + +"cross-env@npm:^7.0.0": + version: 7.0.3 + resolution: "cross-env@npm:7.0.3" + dependencies: + cross-spawn: ^7.0.1 + bin: + cross-env: src/bin/cross-env.js + cross-env-shell: src/bin/cross-env-shell.js + checksum: 26f2f3ea2ab32617f57effb70d329c2070d2f5630adc800985d8b30b56e8bf7f5f439dd3a0358b79cee6f930afc23cf8e23515f17ccfb30092c6b62c6b630a79 + languageName: node + linkType: hard + +"cross-fetch@npm:4.0.0, cross-fetch@npm:^4.0.0": + version: 4.0.0 + resolution: "cross-fetch@npm:4.0.0" + dependencies: + node-fetch: ^2.6.12 + checksum: ecca4f37ffa0e8283e7a8a590926b66713a7ef7892757aa36c2d20ffa27b0ac5c60dcf453119c809abe5923fc0bae3702a4d896bfb406ef1077b0d0018213e24 + languageName: node + linkType: hard + +"cross-fetch@npm:^3.1.5": + version: 3.1.8 + resolution: "cross-fetch@npm:3.1.8" + dependencies: + node-fetch: ^2.6.12 + checksum: 78f993fa099eaaa041122ab037fe9503ecbbcb9daef234d1d2e0b9230a983f64d645d088c464e21a247b825a08dc444a6e7064adfa93536d3a9454b4745b3632 + languageName: node + linkType: hard + +"cross-inspect@npm:1.0.1": + version: 1.0.1 + resolution: "cross-inspect@npm:1.0.1" + dependencies: + tslib: ^2.4.0 + checksum: 7c1e02e0a9670b62416a3ea1df7ae880fdad3aa0a857de8932c4e5f8acd71298c7e3db9da8e9da603f5692cd1879938f5e72e34a9f5d1345987bef656d117fc1 + languageName: node + linkType: hard + +"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.1, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3, cross-spawn@npm:^7.0.5": + version: 7.0.6 + resolution: "cross-spawn@npm:7.0.6" + dependencies: + path-key: ^3.1.0 + shebang-command: ^2.0.0 + which: ^2.0.1 + checksum: 8d306efacaf6f3f60e0224c287664093fa9185680b2d195852ba9a863f85d02dcc737094c6e512175f8ee0161f9b87c73c6826034c2422e39de7d6569cf4503b + languageName: node + linkType: hard + +"crypto-browserify@npm:^3.11.0": + version: 3.12.1 + resolution: "crypto-browserify@npm:3.12.1" + dependencies: + browserify-cipher: ^1.0.1 + browserify-sign: ^4.2.3 + create-ecdh: ^4.0.4 + create-hash: ^1.2.0 + create-hmac: ^1.1.7 + diffie-hellman: ^5.0.3 + hash-base: ~3.0.4 + inherits: ^2.0.4 + pbkdf2: ^3.1.2 + public-encrypt: ^4.0.3 + randombytes: ^2.1.0 + randomfill: ^1.0.4 + checksum: 4e643dd5acfff80fbe2cc567feb75a22d726cc4df34772c988f326976c3c1ee1f8a611a33498dab11568cff3e134f0bd44a0e1f4c216585e5877ab5327cdb6fc + languageName: node + linkType: hard + +"css-box-model@npm:^1.2.0": + version: 1.2.1 + resolution: "css-box-model@npm:1.2.1" + dependencies: + tiny-invariant: ^1.0.6 + checksum: 4d113f26fed6b9150e2c314502d00dabe06f12ae43a01a7e9b6e57f3de49b4281dbb0dc46a1158a7349618f8f34d9250af57cb43d7337e9485e73e6b821e470e + languageName: node + linkType: hard + +"css-declaration-sorter@npm:^6.3.1": + version: 6.4.1 + resolution: "css-declaration-sorter@npm:6.4.1" + peerDependencies: + postcss: ^8.0.9 + checksum: cbdc9e0d481011b1a28fd5b60d4eb55fe204391d31a0b1b490b2cecf4baa85810f9b8c48adab4df644f4718104ed3ed72c64a9745e3216173767bf4aeca7f9b8 + languageName: node + linkType: hard + +"css-in-js-utils@npm:^3.1.0": + version: 3.1.0 + resolution: "css-in-js-utils@npm:3.1.0" + dependencies: + hyphenate-style-name: ^1.0.3 + checksum: 066318e918c04a5e5bce46b38fe81052ea6ac051bcc6d3c369a1d59ceb1546cb2b6086901ab5d22be084122ee3732169996a3dfb04d3406eaee205af77aec61b + languageName: node + linkType: hard + +"css-loader@npm:^6.5.1": + version: 6.11.0 + resolution: "css-loader@npm:6.11.0" + dependencies: + icss-utils: ^5.1.0 + postcss: ^8.4.33 + postcss-modules-extract-imports: ^3.1.0 + postcss-modules-local-by-default: ^4.0.5 + postcss-modules-scope: ^3.2.0 + postcss-modules-values: ^4.0.0 + postcss-value-parser: ^4.2.0 + semver: ^7.5.4 + peerDependencies: + "@rspack/core": 0.x || 1.x + webpack: ^5.0.0 + peerDependenciesMeta: + "@rspack/core": + optional: true + webpack: + optional: true + checksum: 5c8d35975a7121334905394e88e28f05df72f037dbed2fb8fec4be5f0b313ae73a13894ba791867d4a4190c35896da84a7fd0c54fb426db55d85ba5e714edbe3 + languageName: node + linkType: hard + +"css-select@npm:^4.1.3": + version: 4.3.0 + resolution: "css-select@npm:4.3.0" + dependencies: + boolbase: ^1.0.0 + css-what: ^6.0.1 + domhandler: ^4.3.1 + domutils: ^2.8.0 + nth-check: ^2.0.1 + checksum: d6202736839194dd7f910320032e7cfc40372f025e4bf21ca5bf6eb0a33264f322f50ba9c0adc35dadd342d3d6fae5ca244779a4873afbfa76561e343f2058e0 + languageName: node + linkType: hard + +"css-tree@npm:^1.1.2, css-tree@npm:^1.1.3": + version: 1.1.3 + resolution: "css-tree@npm:1.1.3" + dependencies: + mdn-data: 2.0.14 + source-map: ^0.6.1 + checksum: 79f9b81803991b6977b7fcb1588799270438274d89066ce08f117f5cdb5e20019b446d766c61506dd772c839df84caa16042d6076f20c97187f5abe3b50e7d1f + languageName: node + linkType: hard + +"css-vendor@npm:^2.0.8": + version: 2.0.8 + resolution: "css-vendor@npm:2.0.8" + dependencies: + "@babel/runtime": ^7.8.3 + is-in-browser: ^1.0.2 + checksum: 647cd4ea5e401c65c59376255aa2b708e92bf84fba9ce2b3ff5ecb94bf51d74ac374052b1cf9956ef7419b8ebf07fcea9a7683d2d2459127b2ca747ab5b98745 + languageName: node + linkType: hard + +"css-what@npm:^6.0.1": + version: 6.1.0 + resolution: "css-what@npm:6.1.0" + checksum: b975e547e1e90b79625918f84e67db5d33d896e6de846c9b584094e529f0c63e2ab85ee33b9daffd05bff3a146a1916bec664e18bb76dd5f66cbff9fc13b2bbe + languageName: node + linkType: hard + +"css.escape@npm:1.5.1, css.escape@npm:^1.5.1": + version: 1.5.1 + resolution: "css.escape@npm:1.5.1" + checksum: f6d38088d870a961794a2580b2b2af1027731bb43261cfdce14f19238a88664b351cc8978abc20f06cc6bbde725699dec8deb6fe9816b139fc3f2af28719e774 + languageName: node + linkType: hard + +"cssesc@npm:^3.0.0": + version: 3.0.0 + resolution: "cssesc@npm:3.0.0" + bin: + cssesc: bin/cssesc + checksum: f8c4ababffbc5e2ddf2fa9957dda1ee4af6048e22aeda1869d0d00843223c1b13ad3f5d88b51caa46c994225eacb636b764eb807a8883e2fb6f99b4f4e8c48b2 + languageName: node + linkType: hard + +"cssfontparser@npm:^1.2.1": + version: 1.2.1 + resolution: "cssfontparser@npm:1.2.1" + checksum: 952d487cddab591fb944f2a4c326a7736bc963784a6d92b6ad4051f3bf5ee49a732eff62e29a52ff085197cb07f5bd66525a2245ded7fd356113ac81be9238b9 + languageName: node + linkType: hard + +"cssnano-preset-default@npm:^5.2.14": + version: 5.2.14 + resolution: "cssnano-preset-default@npm:5.2.14" + dependencies: + css-declaration-sorter: ^6.3.1 + cssnano-utils: ^3.1.0 + postcss-calc: ^8.2.3 + postcss-colormin: ^5.3.1 + postcss-convert-values: ^5.1.3 + postcss-discard-comments: ^5.1.2 + postcss-discard-duplicates: ^5.1.0 + postcss-discard-empty: ^5.1.1 + postcss-discard-overridden: ^5.1.0 + postcss-merge-longhand: ^5.1.7 + postcss-merge-rules: ^5.1.4 + postcss-minify-font-values: ^5.1.0 + postcss-minify-gradients: ^5.1.1 + postcss-minify-params: ^5.1.4 + postcss-minify-selectors: ^5.2.1 + postcss-normalize-charset: ^5.1.0 + postcss-normalize-display-values: ^5.1.0 + postcss-normalize-positions: ^5.1.1 + postcss-normalize-repeat-style: ^5.1.1 + postcss-normalize-string: ^5.1.0 + postcss-normalize-timing-functions: ^5.1.0 + postcss-normalize-unicode: ^5.1.1 + postcss-normalize-url: ^5.1.0 + postcss-normalize-whitespace: ^5.1.1 + postcss-ordered-values: ^5.1.3 + postcss-reduce-initial: ^5.1.2 + postcss-reduce-transforms: ^5.1.0 + postcss-svgo: ^5.1.0 + postcss-unique-selectors: ^5.1.1 + peerDependencies: + postcss: ^8.2.15 + checksum: d3bbbe3d50c6174afb28d0bdb65b511fdab33952ec84810aef58b87189f3891c34aaa8b6a6101acd5314f8acded839b43513e39a75f91a698ddc985a1b1d9e95 + languageName: node + linkType: hard + +"cssnano-utils@npm:^3.1.0": + version: 3.1.0 + resolution: "cssnano-utils@npm:3.1.0" + peerDependencies: + postcss: ^8.2.15 + checksum: 975c84ce9174cf23bb1da1e9faed8421954607e9ea76440cd3bb0c1bea7e17e490d800fca5ae2812d1d9e9d5524eef23ede0a3f52497d7ccc628e5d7321536f2 + languageName: node + linkType: hard + +"cssnano@npm:^5.0.1": + version: 5.1.15 + resolution: "cssnano@npm:5.1.15" + dependencies: + cssnano-preset-default: ^5.2.14 + lilconfig: ^2.0.3 + yaml: ^1.10.2 + peerDependencies: + postcss: ^8.2.15 + checksum: ca9e1922178617c66c2f1548824b2c7af2ecf69cc3a187fc96bf8d29251c2e84d9e4966c69cf64a2a6a057a37dff7d6d057bc8a2a0957e6ea382e452ae9d0bbb + languageName: node + linkType: hard + +"csso@npm:^4.2.0": + version: 4.2.0 + resolution: "csso@npm:4.2.0" + dependencies: + css-tree: ^1.1.2 + checksum: 380ba9663da3bcea58dee358a0d8c4468bb6539be3c439dc266ac41c047217f52fd698fb7e4b6b6ccdfb8cf53ef4ceed8cc8ceccb8dfca2aa628319826b5b998 + languageName: node + linkType: hard + +"cssom@npm:^0.4.4": + version: 0.4.4 + resolution: "cssom@npm:0.4.4" + checksum: e3bc1076e7ee4213d4fef05e7ae03bfa83dc05f32611d8edc341f4ecc3d9647b89c8245474c7dd2cdcdb797a27c462e99da7ad00a34399694559f763478ff53f + languageName: node + linkType: hard + +"cssom@npm:^0.5.0": + version: 0.5.0 + resolution: "cssom@npm:0.5.0" + checksum: 823471aa30091c59e0a305927c30e7768939b6af70405808f8d2ce1ca778cddcb24722717392438329d1691f9a87cb0183b64b8d779b56a961546d54854fde01 + languageName: node + linkType: hard + +"cssom@npm:~0.3.6": + version: 0.3.8 + resolution: "cssom@npm:0.3.8" + checksum: 24beb3087c76c0d52dd458be9ee1fbc80ac771478a9baef35dd258cdeb527c68eb43204dd439692bb2b1ae5272fa5f2946d10946edab0d04f1078f85e06bc7f6 + languageName: node + linkType: hard + +"cssstyle@npm:^2.3.0": + version: 2.3.0 + resolution: "cssstyle@npm:2.3.0" + dependencies: + cssom: ~0.3.6 + checksum: 5f05e6fd2e3df0b44695c2f08b9ef38b011862b274e320665176467c0725e44a53e341bc4959a41176e83b66064ab786262e7380fd1cabeae6efee0d255bb4e3 + languageName: node + linkType: hard + +"csstype@npm:3.0.10": + version: 3.0.10 + resolution: "csstype@npm:3.0.10" + checksum: 20a8fa324f2b33ddf94aa7507d1b6ab3daa6f3cc308888dc50126585d7952f2471de69b2dbe0635d1fdc31223fef8e070842691877e725caf456e2378685a631 + languageName: node + linkType: hard + +"csstype@npm:^2.5.2": + version: 2.6.21 + resolution: "csstype@npm:2.6.21" + checksum: 2ce8bc832375146eccdf6115a1f8565a27015b74cce197c35103b4494955e9516b246140425ad24103864076aa3e1257ac9bab25a06c8d931dd87a6428c9dccf + languageName: node + linkType: hard + +"csstype@npm:^3.0.2, csstype@npm:^3.1.2, csstype@npm:^3.1.3": + version: 3.1.3 + resolution: "csstype@npm:3.1.3" + checksum: 8db785cc92d259102725b3c694ec0c823f5619a84741b5c7991b8ad135dfaa66093038a1cc63e03361a6cd28d122be48f2106ae72334e067dd619a51f49eddf7 + languageName: node + linkType: hard + +"ctrlc-windows@npm:^2.1.0": + version: 2.1.0 + resolution: "ctrlc-windows@npm:2.1.0" + checksum: 0f0582ba9516290d3e90ea7b91710f8b9b110e1ed29b7c84ebd44c16368b2553722b86a17226120ca3ea0ef679ac3596f48104cc113cfb7c3d07260f6c92e38b + languageName: node + linkType: hard + +"cytoscape@npm:3.30.2": + version: 3.30.2 + resolution: "cytoscape@npm:3.30.2" + checksum: 45ec8f256b6bb59d505bf92f937d86d2547c62cd45e02e7e873320f321d39bb57261aad0dad06d0903f2af50decb367aa0a05193043da5332dc6feb37dce888c + languageName: node + linkType: hard + +"d3-array@npm:2 - 3, d3-array@npm:2.10.0 - 3, d3-array@npm:2.5.0 - 3, d3-array@npm:3, d3-array@npm:^3.1.6, d3-array@npm:^3.2.0": + version: 3.2.4 + resolution: "d3-array@npm:3.2.4" + dependencies: + internmap: 1 - 2 + checksum: a5976a6d6205f69208478bb44920dd7ce3e788c9dceb86b304dbe401a4bfb42ecc8b04c20facde486e9adcb488b5d1800d49393a3f81a23902b68158e12cddd0 + languageName: node + linkType: hard + +"d3-axis@npm:3": + version: 3.0.0 + resolution: "d3-axis@npm:3.0.0" + checksum: 227ddaa6d4bad083539c1ec245e2228b4620cca941997a8a650cb0af239375dc20271993127eedac66f0543f331027aca09385e1e16eed023f93eac937cddf0b + languageName: node + linkType: hard + +"d3-brush@npm:3": + version: 3.0.0 + resolution: "d3-brush@npm:3.0.0" + dependencies: + d3-dispatch: 1 - 3 + d3-drag: 2 - 3 + d3-interpolate: 1 - 3 + d3-selection: 3 + d3-transition: 3 + checksum: 1d042167769a02ac76271c71e90376d7184206e489552b7022a8ec2860209fe269db55e0a3430f3dcbe13b6fec2ff65b1adeaccba3218991b38e022390df72e3 + languageName: node + linkType: hard + +"d3-chord@npm:3": + version: 3.0.1 + resolution: "d3-chord@npm:3.0.1" + dependencies: + d3-path: 1 - 3 + checksum: ddf35d41675e0f8738600a8a2f05bf0858def413438c12cba357c5802ecc1014c80a658acbbee63cbad2a8c747912efb2358455d93e59906fe37469f1dc6b78b + languageName: node + linkType: hard + +"d3-color@npm:1 - 3, d3-color@npm:3": + version: 3.1.0 + resolution: "d3-color@npm:3.1.0" + checksum: 4931fbfda5d7c4b5cfa283a13c91a954f86e3b69d75ce588d06cde6c3628cebfc3af2069ccf225e982e8987c612aa7948b3932163ce15eb3c11cd7c003f3ee3b + languageName: node + linkType: hard + +"d3-contour@npm:4": + version: 4.0.2 + resolution: "d3-contour@npm:4.0.2" + dependencies: + d3-array: ^3.2.0 + checksum: 56aa082c1acf62a45b61c8d29fdd307041785aa17d9a07de7d1d848633769887a33fb6823888afa383f31c460d0f21d24756593e84e334ddb92d774214d32f1b + languageName: node + linkType: hard + +"d3-delaunay@npm:6": + version: 6.0.4 + resolution: "d3-delaunay@npm:6.0.4" + dependencies: + delaunator: 5 + checksum: ce6d267d5ef21a8aeadfe4606329fc80a22ab6e7748d47bc220bcc396ee8be84b77a5473033954c5ac4aa522d265ddc45d4165d30fe4787dd60a15ea66b9bbb4 + languageName: node + linkType: hard + +"d3-dispatch@npm:1 - 3, d3-dispatch@npm:3": + version: 3.0.1 + resolution: "d3-dispatch@npm:3.0.1" + checksum: fdfd4a230f46463e28e5b22a45dd76d03be9345b605e1b5dc7d18bd7ebf504e6c00ae123fd6d03e23d9e2711e01f0e14ea89cd0632545b9f0c00b924ba4be223 + languageName: node + linkType: hard + +"d3-dispatch@npm:1, d3-dispatch@npm:^1.0.3": + version: 1.0.6 + resolution: "d3-dispatch@npm:1.0.6" + checksum: b4ecb016b6dda8b99aa4263b2d0a0c7b12e7dea93e4b0ce3013c94dca4d360d9ba00f5bdc15dc944cc4543af8e341067bd628f061f7b8deb642257e2ac90d06c + languageName: node + linkType: hard + +"d3-drag@npm:2 - 3, d3-drag@npm:3": + version: 3.0.0 + resolution: "d3-drag@npm:3.0.0" + dependencies: + d3-dispatch: 1 - 3 + d3-selection: 3 + checksum: d297231e60ecd633b0d076a63b4052b436ddeb48b5a3a11ff68c7e41a6774565473a6b064c5e9256e88eca6439a917ab9cea76032c52d944ddbf4fd289e31111 + languageName: node + linkType: hard + +"d3-drag@npm:^1.0.4": + version: 1.2.5 + resolution: "d3-drag@npm:1.2.5" + dependencies: + d3-dispatch: 1 + d3-selection: 1 + checksum: 6e86e89aa8d511979eea1b5326709c05c2a3c2d43a93a82ed6b6f98528b2ab03b2f58f5e4f66582f2f1c0ae44f9c19f6f4f857249eb66aabc46e4942295fa0a7 + languageName: node + linkType: hard + +"d3-dsv@npm:1 - 3, d3-dsv@npm:3": + version: 3.0.1 + resolution: "d3-dsv@npm:3.0.1" + dependencies: + commander: 7 + iconv-lite: 0.6 + rw: 1 + bin: + csv2json: bin/dsv2json.js + csv2tsv: bin/dsv2dsv.js + dsv2dsv: bin/dsv2dsv.js + dsv2json: bin/dsv2json.js + json2csv: bin/json2dsv.js + json2dsv: bin/json2dsv.js + json2tsv: bin/json2dsv.js + tsv2csv: bin/dsv2dsv.js + tsv2json: bin/dsv2json.js + checksum: 5fc0723647269d5dccd181d74f2265920ab368a2868b0b4f55ffa2fecdfb7814390ea28622cd61ee5d9594ab262879509059544e9f815c54fe76fbfb4ffa4c8a + languageName: node + linkType: hard + +"d3-ease@npm:1 - 3, d3-ease@npm:3, d3-ease@npm:^3.0.1": + version: 3.0.1 + resolution: "d3-ease@npm:3.0.1" + checksum: 06e2ee5326d1e3545eab4e2c0f84046a123dcd3b612e68858219aa034da1160333d9ce3da20a1d3486d98cb5c2a06f7d233eee1bc19ce42d1533458bd85dedcd + languageName: node + linkType: hard + +"d3-fetch@npm:3": + version: 3.0.1 + resolution: "d3-fetch@npm:3.0.1" + dependencies: + d3-dsv: 1 - 3 + checksum: 382dcea06549ef82c8d0b719e5dc1d96286352579e3b51b20f71437f5800323315b09cf7dcfd4e1f60a41e1204deb01758470cea257d2285a7abd9dcec806984 + languageName: node + linkType: hard + +"d3-force@npm:3": + version: 3.0.0 + resolution: "d3-force@npm:3.0.0" + dependencies: + d3-dispatch: 1 - 3 + d3-quadtree: 1 - 3 + d3-timer: 1 - 3 + checksum: 6c7e96438cab62fa32aeadb0ade3297b62b51f81b1b38b0a60a5ec9fd627d74090c1189654d92df2250775f31b06812342f089f1d5947de9960a635ee3581def + languageName: node + linkType: hard + +"d3-format@npm:1 - 3, d3-format@npm:3, d3-format@npm:^3.1.0": + version: 3.1.0 + resolution: "d3-format@npm:3.1.0" + checksum: f345ec3b8ad3cab19bff5dead395bd9f5590628eb97a389b1dd89f0b204c7c4fc1d9520f13231c2c7cf14b7c9a8cf10f8ef15bde2befbab41454a569bd706ca2 + languageName: node + linkType: hard + +"d3-geo@npm:3": + version: 3.1.1 + resolution: "d3-geo@npm:3.1.1" + dependencies: + d3-array: 2.5.0 - 3 + checksum: 3cc4bb50af5d2d4858d2df1729a1777b7fd361854079d9faab1166186c988d2cba0d11911da0c4598d5e22fae91d79113ed262a9f98cabdbc6dbf7c30e5c0363 + languageName: node + linkType: hard + +"d3-hierarchy@npm:3": + version: 3.1.2 + resolution: "d3-hierarchy@npm:3.1.2" + checksum: 0fd946a8c5fd4686d43d3e11bbfc2037a145fda29d2261ccd0e36f70b66af6d7638e2c0c7112124d63fc3d3127197a00a6aecf676bd5bd392a94d7235a214263 + languageName: node + linkType: hard + +"d3-interpolate@npm:1 - 3, d3-interpolate@npm:1.2.0 - 3, d3-interpolate@npm:3, d3-interpolate@npm:^3.0.1": + version: 3.0.1 + resolution: "d3-interpolate@npm:3.0.1" + dependencies: + d3-color: 1 - 3 + checksum: a42ba314e295e95e5365eff0f604834e67e4a3b3c7102458781c477bd67e9b24b6bb9d8e41ff5521050a3f2c7c0c4bbbb6e187fd586daa3980943095b267e78b + languageName: node + linkType: hard + +"d3-path@npm:1": + version: 1.0.9 + resolution: "d3-path@npm:1.0.9" + checksum: d4382573baf9509a143f40944baeff9fead136926aed6872f7ead5b3555d68925f8a37935841dd51f1d70b65a294fe35c065b0906fb6e42109295f6598fc16d0 + languageName: node + linkType: hard + +"d3-path@npm:1 - 3, d3-path@npm:3, d3-path@npm:^3.1.0": + version: 3.1.0 + resolution: "d3-path@npm:3.1.0" + checksum: 2306f1bd9191e1eac895ec13e3064f732a85f243d6e627d242a313f9777756838a2215ea11562f0c7630c7c3b16a19ec1fe0948b1c82f3317fac55882f6ee5d8 + languageName: node + linkType: hard + +"d3-polygon@npm:3": + version: 3.0.1 + resolution: "d3-polygon@npm:3.0.1" + checksum: 0b85c532517895544683849768a2c377cee3801ef8ccf3fa9693c8871dd21a0c1a2a0fc75ff54192f0ba2c562b0da2bc27f5bf959dfafc7fa23573b574865d2c + languageName: node + linkType: hard + +"d3-quadtree@npm:1 - 3, d3-quadtree@npm:3": + version: 3.0.1 + resolution: "d3-quadtree@npm:3.0.1" + checksum: 5469d462763811475f34a7294d984f3eb100515b0585ca5b249656f6b1a6e99b20056a2d2e463cc9944b888896d2b1d07859c50f9c0cf23438df9cd2e3146066 + languageName: node + linkType: hard + +"d3-random@npm:3": + version: 3.0.1 + resolution: "d3-random@npm:3.0.1" + checksum: a70ad8d1cabe399ebeb2e482703121ac8946a3b336830b518da6848b9fdd48a111990fc041dc716f16885a72176ffa2898f2a250ca3d363ecdba5ef92b18e131 + languageName: node + linkType: hard + +"d3-scale-chromatic@npm:3": + version: 3.1.0 + resolution: "d3-scale-chromatic@npm:3.1.0" + dependencies: + d3-color: 1 - 3 + d3-interpolate: 1 - 3 + checksum: ab6324bd8e1f708e731e02ab44e09741efda2b174cea1d8ca21e4a87546295e99856bc44e2fd3890f228849c96bccfbcf922328f95be6a7df117453eb5cf22c9 + languageName: node + linkType: hard + +"d3-scale@npm:4, d3-scale@npm:^4.0.2": + version: 4.0.2 + resolution: "d3-scale@npm:4.0.2" + dependencies: + d3-array: 2.10.0 - 3 + d3-format: 1 - 3 + d3-interpolate: 1.2.0 - 3 + d3-time: 2.1.1 - 3 + d3-time-format: 2 - 4 + checksum: a9c770d283162c3bd11477c3d9d485d07f8db2071665f1a4ad23eec3e515e2cefbd369059ec677c9ac849877d1a765494e90e92051d4f21111aa56791c98729e + languageName: node + linkType: hard + +"d3-selection@npm:1": + version: 1.4.2 + resolution: "d3-selection@npm:1.4.2" + checksum: 2484b392259b087a98f546f2610e6a11c90f38dae6b6b20a3fc85171038fcab4c72e702788b1960a4fece88bed2e36f268096358b5b48d3c7f0d35cfbe305da6 + languageName: node + linkType: hard + +"d3-selection@npm:2 - 3, d3-selection@npm:3, d3-selection@npm:^3.0.0": + version: 3.0.0 + resolution: "d3-selection@npm:3.0.0" + checksum: f4e60e133309115b99f5b36a79ae0a19d71ee6e2d5e3c7216ef3e75ebd2cb1e778c2ed2fa4c01bef35e0dcbd96c5428f5bd6ca2184fe2957ed582fde6841cbc5 + languageName: node + linkType: hard + +"d3-shape@npm:3, d3-shape@npm:^3.0.0, d3-shape@npm:^3.1.0": + version: 3.2.0 + resolution: "d3-shape@npm:3.2.0" + dependencies: + d3-path: ^3.1.0 + checksum: de2af5fc9a93036a7b68581ca0bfc4aca2d5a328aa7ba7064c11aedd44d24f310c20c40157cb654359d4c15c3ef369f95ee53d71221017276e34172c7b719cfa + languageName: node + linkType: hard + +"d3-shape@npm:^1.3.5": + version: 1.3.7 + resolution: "d3-shape@npm:1.3.7" + dependencies: + d3-path: 1 + checksum: 46566a3ab64a25023653bf59d64e81e9e6c987e95be985d81c5cedabae5838bd55f4a201a6b69069ca862eb63594cd263cac9034afc2b0e5664dfe286c866129 + languageName: node + linkType: hard + +"d3-time-format@npm:2 - 4, d3-time-format@npm:4": + version: 4.1.0 + resolution: "d3-time-format@npm:4.1.0" + dependencies: + d3-time: 1 - 3 + checksum: 7342bce28355378152bbd4db4e275405439cabba082d9cd01946d40581140481c8328456d91740b0fe513c51ec4a467f4471ffa390c7e0e30ea30e9ec98fcdf4 + languageName: node + linkType: hard + +"d3-time@npm:1 - 3, d3-time@npm:2.1.1 - 3, d3-time@npm:3, d3-time@npm:^3.0.0": + version: 3.1.0 + resolution: "d3-time@npm:3.1.0" + dependencies: + d3-array: 2 - 3 + checksum: 613b435352a78d9f31b7f68540788186d8c331b63feca60ad21c88e9db1989fe888f97f242322ebd6365e45ec3fb206a4324cd4ca0dfffa1d9b5feb856ba00a7 + languageName: node + linkType: hard + +"d3-timer@npm:1 - 3, d3-timer@npm:3, d3-timer@npm:^3.0.1": + version: 3.0.1 + resolution: "d3-timer@npm:3.0.1" + checksum: 1cfddf86d7bca22f73f2c427f52dfa35c49f50d64e187eb788dcad6e927625c636aa18ae4edd44d084eb9d1f81d8ca4ec305dae7f733c15846a824575b789d73 + languageName: node + linkType: hard + +"d3-timer@npm:^1.0.5": + version: 1.0.10 + resolution: "d3-timer@npm:1.0.10" + checksum: f7040953672deb2dfa03830ace80dbbcb212f80890218eba15dcca6f33f74102d943023ccc2a563295195cd8c63639bb2410ef1691c8fecff4a114fdf5c666f4 + languageName: node + linkType: hard + +"d3-transition@npm:2 - 3, d3-transition@npm:3": + version: 3.0.1 + resolution: "d3-transition@npm:3.0.1" + dependencies: + d3-color: 1 - 3 + d3-dispatch: 1 - 3 + d3-ease: 1 - 3 + d3-interpolate: 1 - 3 + d3-timer: 1 - 3 + peerDependencies: + d3-selection: 2 - 3 + checksum: cb1e6e018c3abf0502fe9ff7b631ad058efb197b5e14b973a410d3935aead6e3c07c67d726cfab258e4936ef2667c2c3d1cd2037feb0765f0b4e1d3b8788c0ea + languageName: node + linkType: hard + +"d3-zoom@npm:3, d3-zoom@npm:^3.0.0": + version: 3.0.0 + resolution: "d3-zoom@npm:3.0.0" + dependencies: + d3-dispatch: 1 - 3 + d3-drag: 2 - 3 + d3-interpolate: 1 - 3 + d3-selection: 2 - 3 + d3-transition: 2 - 3 + checksum: 8056e3527281cfd1ccbcbc458408f86973b0583e9dac00e51204026d1d36803ca437f970b5736f02fafed9f2b78f145f72a5dbc66397e02d4d95d4c594b8ff54 + languageName: node + linkType: hard + +"d3@npm:^7.8.0": + version: 7.9.0 + resolution: "d3@npm:7.9.0" + dependencies: + d3-array: 3 + d3-axis: 3 + d3-brush: 3 + d3-chord: 3 + d3-color: 3 + d3-contour: 4 + d3-delaunay: 6 + d3-dispatch: 3 + d3-drag: 3 + d3-dsv: 3 + d3-ease: 3 + d3-fetch: 3 + d3-force: 3 + d3-format: 3 + d3-geo: 3 + d3-hierarchy: 3 + d3-interpolate: 3 + d3-path: 3 + d3-polygon: 3 + d3-quadtree: 3 + d3-random: 3 + d3-scale: 4 + d3-scale-chromatic: 3 + d3-selection: 3 + d3-shape: 3 + d3-time: 3 + d3-time-format: 4 + d3-timer: 3 + d3-transition: 3 + d3-zoom: 3 + checksum: 1c0e9135f1fb78aa32b187fafc8b56ae6346102bd0e4e5e5a5339611a51e6038adbaa293fae373994228100eddd87320e930b1be922baeadc07c9fd43d26d99b + languageName: node + linkType: hard + +"dagre@npm:0.8.2": + version: 0.8.2 + resolution: "dagre@npm:0.8.2" + dependencies: + graphlib: ^2.1.5 + lodash: ^4.17.4 + checksum: 5a0446354610d423152badf34d0870a23382a8d224e158522840513dc095bf60fbc45132f9093a5bb348597be9967a46a21f3729af1a6d8d4d98d73ed8825fa4 + languageName: node + linkType: hard + +"dagre@npm:^0.8.5": + version: 0.8.5 + resolution: "dagre@npm:0.8.5" + dependencies: + graphlib: ^2.1.8 + lodash: ^4.17.15 + checksum: b9fabd425466d7b662381c2e457b1adda996bc4169aa60121d4de50250d83a6bb4b77d559e2f887c9c564caea781c2a377fd4de2a76c15f8f04ec3d086ca95f9 + languageName: node + linkType: hard + +"damerau-levenshtein@npm:^1.0.8": + version: 1.0.8 + resolution: "damerau-levenshtein@npm:1.0.8" + checksum: d240b7757544460ae0586a341a53110ab0a61126570ef2d8c731e3eab3f0cb6e488e2609e6a69b46727635de49be20b071688698744417ff1b6c1d7ccd03e0de + languageName: node + linkType: hard + +"dashdash@npm:^1.12.0": + version: 1.14.1 + resolution: "dashdash@npm:1.14.1" + dependencies: + assert-plus: ^1.0.0 + checksum: 3634c249570f7f34e3d34f866c93f866c5b417f0dd616275decae08147dcdf8fccfaa5947380ccfb0473998ea3a8057c0b4cd90c875740ee685d0624b2983598 + languageName: node + linkType: hard + +"data-uri-to-buffer@npm:^6.0.2": + version: 6.0.2 + resolution: "data-uri-to-buffer@npm:6.0.2" + checksum: 8b6927c33f9b54037f442856be0aa20e5fd49fa6c9c8ceece408dc306445d593ad72d207d57037c529ce65f413b421da800c6827b1dbefb607b8056f17123a61 + languageName: node + linkType: hard + +"data-urls@npm:^2.0.0": + version: 2.0.0 + resolution: "data-urls@npm:2.0.0" + dependencies: + abab: ^2.0.3 + whatwg-mimetype: ^2.3.0 + whatwg-url: ^8.0.0 + checksum: 97caf828aac25e25e04ba6869db0f99c75e6859bb5b424ada28d3e7841941ebf08ddff3c1b1bb4585986bd507a5d54c2a716853ea6cb98af877400e637393e71 + languageName: node + linkType: hard + +"data-urls@npm:^3.0.2": + version: 3.0.2 + resolution: "data-urls@npm:3.0.2" + dependencies: + abab: ^2.0.6 + whatwg-mimetype: ^3.0.0 + whatwg-url: ^11.0.0 + checksum: 033fc3dd0fba6d24bc9a024ddcf9923691dd24f90a3d26f6545d6a2f71ec6956f93462f2cdf2183cc46f10dc01ed3bcb36731a8208456eb1a08147e571fe2a76 + languageName: node + linkType: hard + +"data-view-buffer@npm:^1.0.1": + version: 1.0.2 + resolution: "data-view-buffer@npm:1.0.2" + dependencies: + call-bound: ^1.0.3 + es-errors: ^1.3.0 + is-data-view: ^1.0.2 + checksum: 1e1cd509c3037ac0f8ba320da3d1f8bf1a9f09b0be09394b5e40781b8cc15ff9834967ba7c9f843a425b34f9fe14ce44cf055af6662c44263424c1eb8d65659b + languageName: node + linkType: hard + +"data-view-byte-length@npm:^1.0.1": + version: 1.0.2 + resolution: "data-view-byte-length@npm:1.0.2" + dependencies: + call-bound: ^1.0.3 + es-errors: ^1.3.0 + is-data-view: ^1.0.2 + checksum: 3600c91ced1cfa935f19ef2abae11029e01738de8d229354d3b2a172bf0d7e4ed08ff8f53294b715569fdf72dfeaa96aa7652f479c0f60570878d88e7e8bddf6 + languageName: node + linkType: hard + +"data-view-byte-offset@npm:^1.0.0": + version: 1.0.1 + resolution: "data-view-byte-offset@npm:1.0.1" + dependencies: + call-bound: ^1.0.2 + es-errors: ^1.3.0 + is-data-view: ^1.0.1 + checksum: 8dd492cd51d19970876626b5b5169fbb67ca31ec1d1d3238ee6a71820ca8b80cafb141c485999db1ee1ef02f2cc3b99424c5eda8d59e852d9ebb79ab290eb5ee + languageName: node + linkType: hard + +"dataloader@npm:^2.0.0, dataloader@npm:^2.2.3": + version: 2.2.3 + resolution: "dataloader@npm:2.2.3" + checksum: cc272181f6cad0ea20511c0a0d270cbc1df960a3526ab24941bbeb2cb7120499a598fe2cd41b4818527367acf7bc1be0723b6e5034637db4759a396c904b78a6 + languageName: node + linkType: hard + +"date-fns@npm:^2.16.1, date-fns@npm:^2.30.0": + version: 2.30.0 + resolution: "date-fns@npm:2.30.0" + dependencies: + "@babel/runtime": ^7.21.0 + checksum: f7be01523282e9bb06c0cd2693d34f245247a29098527d4420628966a2d9aad154bd0e90a6b1cf66d37adcb769cd108cf8a7bd49d76db0fb119af5cdd13644f4 + languageName: node + linkType: hard + +"date-format@npm:^4.0.14": + version: 4.0.14 + resolution: "date-format@npm:4.0.14" + checksum: dfe5139df6af5759b9dd3c007b899b3f60d45a9240ffeee6314ab74e6ab52e9b519a44ccf285888bdd6b626c66ee9b4c8a523075fa1140617b5beb1cbb9b18d1 + languageName: node + linkType: hard + +"dateformat@npm:^3.0.3": + version: 3.0.3 + resolution: "dateformat@npm:3.0.3" + checksum: ca4911148abb09887bd9bdcd632c399b06f3ecad709a18eb594d289a1031982f441e08e281db77ffebcb2cbcbfa1ac578a7cbfbf8743f41009aa5adc1846ed34 + languageName: node + linkType: hard + +"debounce-promise@npm:^3.1.2": + version: 3.1.2 + resolution: "debounce-promise@npm:3.1.2" + checksum: 29bac4524c423cc852319d7455363909ea3d933a3b9e3eb1149d963cffc34c475fe37219d0bafc61af566500b5d663cba579bbad7ee4023bef06f8394ed900ad + languageName: node + linkType: hard + +"debounce@npm:^1.2.0": + version: 1.2.1 + resolution: "debounce@npm:1.2.1" + checksum: 682a89506d9e54fb109526f4da255c5546102fbb8e3ae75eef3b04effaf5d4853756aee97475cd4650641869794e44f410eeb20ace2b18ea592287ab2038519e + languageName: node + linkType: hard + +"debug@npm:2.6.9, debug@npm:^2.6.0": + version: 2.6.9 + resolution: "debug@npm:2.6.9" + dependencies: + ms: 2.0.0 + checksum: d2f51589ca66df60bf36e1fa6e4386b318c3f1e06772280eea5b1ae9fd3d05e9c2b7fd8a7d862457d00853c75b00451aa2d7459b924629ee385287a650f58fe6 + languageName: node + linkType: hard + +"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4, debug@npm:^4.3.5, debug@npm:^4.3.6": + version: 4.4.0 + resolution: "debug@npm:4.4.0" + dependencies: + ms: ^2.1.3 + peerDependenciesMeta: + supports-color: + optional: true + checksum: fb42df878dd0e22816fc56e1fdca9da73caa85212fbe40c868b1295a6878f9101ae684f4eeef516c13acfc700f5ea07f1136954f43d4cd2d477a811144136479 + languageName: node + linkType: hard + +"debug@npm:4.3.4": + version: 4.3.4 + resolution: "debug@npm:4.3.4" + dependencies: + ms: 2.1.2 + peerDependenciesMeta: + supports-color: + optional: true + checksum: 3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708 + languageName: node + linkType: hard + +"debug@npm:4.3.7": + version: 4.3.7 + resolution: "debug@npm:4.3.7" + dependencies: + ms: ^2.1.3 + peerDependenciesMeta: + supports-color: + optional: true + checksum: 822d74e209cd910ef0802d261b150314bbcf36c582ccdbb3e70f0894823c17e49a50d3e66d96b633524263975ca16b6a833f3e3b7e030c157169a5fabac63160 + languageName: node + linkType: hard + +"debug@npm:^3.2.7": + version: 3.2.7 + resolution: "debug@npm:3.2.7" + dependencies: + ms: ^2.1.1 + checksum: b3d8c5940799914d30314b7c3304a43305fd0715581a919dacb8b3176d024a782062368405b47491516d2091d6462d4d11f2f4974a405048094f8bfebfa3071c + languageName: node + linkType: hard + +"decimal.js@npm:^10.2.1, decimal.js@npm:^10.4.2": + version: 10.4.3 + resolution: "decimal.js@npm:10.4.3" + checksum: 796404dcfa9d1dbfdc48870229d57f788b48c21c603c3f6554a1c17c10195fc1024de338b0cf9e1efe0c7c167eeb18f04548979bcc5fdfabebb7cc0ae3287bae + languageName: node + linkType: hard + +"decode-named-character-reference@npm:^1.0.0": + version: 1.0.2 + resolution: "decode-named-character-reference@npm:1.0.2" + dependencies: + character-entities: ^2.0.0 + checksum: f4c71d3b93105f20076052f9cb1523a22a9c796b8296cd35eef1ca54239c78d182c136a848b83ff8da2071e3ae2b1d300bf29d00650a6d6e675438cc31b11d78 + languageName: node + linkType: hard + +"decompress-response@npm:^4.2.0": + version: 4.2.1 + resolution: "decompress-response@npm:4.2.1" + dependencies: + mimic-response: ^2.0.0 + checksum: 4e783ca4dfe9417354d61349750fe05236f565a4415a6ca20983a311be2371debaedd9104c0b0e7b36e5f167aeaae04f84f1a0b3f8be4162f1d7d15598b8fdba + languageName: node + linkType: hard + +"decompress-response@npm:^6.0.0": + version: 6.0.0 + resolution: "decompress-response@npm:6.0.0" + dependencies: + mimic-response: ^3.1.0 + checksum: d377cf47e02d805e283866c3f50d3d21578b779731e8c5072d6ce8c13cc31493db1c2f6784da9d1d5250822120cefa44f1deab112d5981015f2e17444b763812 + languageName: node + linkType: hard + +"dedent@npm:^1.0.0": + version: 1.5.3 + resolution: "dedent@npm:1.5.3" + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + checksum: 045b595557b2a8ea2eb9b0b4623d764e9a87326486fe2b61191b4342ed93dc01245644d8a09f3108a50c0ee7965f1eedd92e4a3a503ed89ea8e810566ea27f9a + languageName: node + linkType: hard + +"deep-equal@npm:^2.0.5": + version: 2.2.3 + resolution: "deep-equal@npm:2.2.3" + dependencies: + array-buffer-byte-length: ^1.0.0 + call-bind: ^1.0.5 + es-get-iterator: ^1.1.3 + get-intrinsic: ^1.2.2 + is-arguments: ^1.1.1 + is-array-buffer: ^3.0.2 + is-date-object: ^1.0.5 + is-regex: ^1.1.4 + is-shared-array-buffer: ^1.0.2 + isarray: ^2.0.5 + object-is: ^1.1.5 + object-keys: ^1.1.1 + object.assign: ^4.1.4 + regexp.prototype.flags: ^1.5.1 + side-channel: ^1.0.4 + which-boxed-primitive: ^1.0.2 + which-collection: ^1.0.1 + which-typed-array: ^1.1.13 + checksum: ee8852f23e4d20a5626c13b02f415ba443a1b30b4b3d39eaf366d59c4a85e6545d7ec917db44d476a85ae5a86064f7e5f7af7479f38f113995ba869f3a1ddc53 + languageName: node + linkType: hard + +"deep-equal@npm:~1.0.1": + version: 1.0.1 + resolution: "deep-equal@npm:1.0.1" + checksum: 5af8cbfcebf190491878a498caccc7dc9592f8ebd1685b976eacc3825619d222b5e929923163b92c4f414494e2b884f7ebf00c022e8198e8292deb70dd9785f4 + languageName: node + linkType: hard + +"deep-extend@npm:0.6.0, deep-extend@npm:^0.6.0": + version: 0.6.0 + resolution: "deep-extend@npm:0.6.0" + checksum: 7be7e5a8d468d6b10e6a67c3de828f55001b6eb515d014f7aeb9066ce36bd5717161eb47d6a0f7bed8a9083935b465bc163ee2581c8b128d29bf61092fdf57a7 + languageName: node + linkType: hard + +"deep-freeze@npm:0.0.1": + version: 0.0.1 + resolution: "deep-freeze@npm:0.0.1" + checksum: 1e43c98e44c7849382d9f896e679d48a1b5bf40993f7cc858e3730ef4e2ba387b9b7b7fe722cac34febe7f6a564cd242c27bbc319e8df793c2a287f21e5ba038 + languageName: node + linkType: hard + +"deep-is@npm:^0.1.3, deep-is@npm:~0.1.3": + version: 0.1.4 + resolution: "deep-is@npm:0.1.4" + checksum: edb65dd0d7d1b9c40b2f50219aef30e116cedd6fc79290e740972c132c09106d2e80aa0bc8826673dd5a00222d4179c84b36a790eef63a4c4bca75a37ef90804 + languageName: node + linkType: hard + +"deepmerge@npm:^4.2.2, deepmerge@npm:^4.3.1, deepmerge@npm:~4.3.0": + version: 4.3.1 + resolution: "deepmerge@npm:4.3.1" + checksum: 2024c6a980a1b7128084170c4cf56b0fd58a63f2da1660dcfe977415f27b17dbe5888668b59d0b063753f3220719d5e400b7f113609489c90160bb9a5518d052 + languageName: node + linkType: hard + +"default-browser-id@npm:^5.0.0": + version: 5.0.0 + resolution: "default-browser-id@npm:5.0.0" + checksum: 185bfaecec2c75fa423544af722a3469b20704c8d1942794a86e4364fe7d9e8e9f63241a5b769d61c8151993bc65833a5b959026fa1ccea343b3db0a33aa6deb + languageName: node + linkType: hard + +"default-browser@npm:^5.2.1": + version: 5.2.1 + resolution: "default-browser@npm:5.2.1" + dependencies: + bundle-name: ^4.1.0 + default-browser-id: ^5.0.0 + checksum: afab7eff7b7f5f7a94d9114d1ec67273d3fbc539edf8c0f80019879d53aa71e867303c6f6d7cffeb10a6f3cfb59d4f963dba3f9c96830b4540cc7339a1bf9840 + languageName: node + linkType: hard + +"defaults@npm:^1.0.3": + version: 1.0.4 + resolution: "defaults@npm:1.0.4" + dependencies: + clone: ^1.0.2 + checksum: 3a88b7a587fc076b84e60affad8b85245c01f60f38fc1d259e7ac1d89eb9ce6abb19e27215de46b98568dd5bc48471730b327637e6f20b0f1bc85cf00440c80a + languageName: node + linkType: hard + +"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.4": + version: 1.1.4 + resolution: "define-data-property@npm:1.1.4" + dependencies: + es-define-property: ^1.0.0 + es-errors: ^1.3.0 + gopd: ^1.0.1 + checksum: 8068ee6cab694d409ac25936eb861eea704b7763f7f342adbdfe337fc27c78d7ae0eff2364b2917b58c508d723c7a074326d068eef2e45c4edcd85cf94d0313b + languageName: node + linkType: hard + +"define-lazy-prop@npm:^2.0.0": + version: 2.0.0 + resolution: "define-lazy-prop@npm:2.0.0" + checksum: 0115fdb065e0490918ba271d7339c42453d209d4cb619dfe635870d906731eff3e1ade8028bb461ea27ce8264ec5e22c6980612d332895977e89c1bbc80fcee2 + languageName: node + linkType: hard + +"define-lazy-prop@npm:^3.0.0": + version: 3.0.0 + resolution: "define-lazy-prop@npm:3.0.0" + checksum: 54884f94caac0791bf6395a3ec530ce901cf71c47b0196b8754f3fd17edb6c0e80149c1214429d851873bb0d689dbe08dcedbb2306dc45c8534a5934723851b6 + languageName: node + linkType: hard + +"define-properties@npm:^1.1.3, define-properties@npm:^1.2.1": + version: 1.2.1 + resolution: "define-properties@npm:1.2.1" + dependencies: + define-data-property: ^1.0.1 + has-property-descriptors: ^1.0.0 + object-keys: ^1.1.1 + checksum: b4ccd00597dd46cb2d4a379398f5b19fca84a16f3374e2249201992f36b30f6835949a9429669ee6b41b6e837205a163eadd745e472069e70dfc10f03e5fcc12 + languageName: node + linkType: hard + +"degenerator@npm:^5.0.0": + version: 5.0.1 + resolution: "degenerator@npm:5.0.1" + dependencies: + ast-types: ^0.13.4 + escodegen: ^2.1.0 + esprima: ^4.0.1 + checksum: a64fa39cdf6c2edd75188157d32338ee9de7193d7dbb2aeb4acb1eb30fa4a15ed80ba8dae9bd4d7b085472cf174a5baf81adb761aaa8e326771392c922084152 + languageName: node + linkType: hard + +"delaunator@npm:5": + version: 5.0.1 + resolution: "delaunator@npm:5.0.1" + dependencies: + robust-predicates: ^3.0.2 + checksum: 69ee43ec649b4a13b7f33c8a027fb3e8dfcb09266af324286118da757e04d3d39df619b905dca41421405c311317ccf632ecfa93db44519bacec3303c57c5a0b + languageName: node + linkType: hard + +"delaunator@npm:^4.0.0": + version: 4.0.1 + resolution: "delaunator@npm:4.0.1" + checksum: a49f1c23edbcb79079a13577d32fcd46d0db30879c8484f742a0d840923085f2f3de35a9bfbb96eadd12201ffb7c3adf45b0f528d08b71cb547c5f8068b5d61b + languageName: node + linkType: hard + +"delaunay-find@npm:0.0.6": + version: 0.0.6 + resolution: "delaunay-find@npm:0.0.6" + dependencies: + delaunator: ^4.0.0 + checksum: 072e197a4317dd06ff8349dfa6731f62d322c7ba4697d4a323da7798676f5c429c4ac691ae5207f7c7da567eca7c71dada896206cbd7995e6e9d145101734c31 + languageName: node + linkType: hard + +"delayed-stream@npm:~1.0.0": + version: 1.0.0 + resolution: "delayed-stream@npm:1.0.0" + checksum: 46fe6e83e2cb1d85ba50bd52803c68be9bd953282fa7096f51fc29edd5d67ff84ff753c51966061e5ba7cb5e47ef6d36a91924eddb7f3f3483b1c560f77a0020 + languageName: node + linkType: hard + +"delegates@npm:^1.0.0": + version: 1.0.0 + resolution: "delegates@npm:1.0.0" + checksum: a51744d9b53c164ba9c0492471a1a2ffa0b6727451bdc89e31627fdf4adda9d51277cfcbfb20f0a6f08ccb3c436f341df3e92631a3440226d93a8971724771fd + languageName: node + linkType: hard + +"denque@npm:^2.1.0": + version: 2.1.0 + resolution: "denque@npm:2.1.0" + checksum: 1d4ae1d05e59ac3a3481e7b478293f4b4c813819342273f3d5b826c7ffa9753c520919ba264f377e09108d24ec6cf0ec0ac729a5686cbb8f32d797126c5dae74 + languageName: node + linkType: hard + +"depd@npm:2.0.0, depd@npm:^2.0.0, depd@npm:~2.0.0": + version: 2.0.0 + resolution: "depd@npm:2.0.0" + checksum: abbe19c768c97ee2eed6282d8ce3031126662252c58d711f646921c9623f9052e3e1906443066beec1095832f534e57c523b7333f8e7e0d93051ab6baef5ab3a + languageName: node + linkType: hard + +"depd@npm:~1.1.2": + version: 1.1.2 + resolution: "depd@npm:1.1.2" + checksum: 6b406620d269619852885ce15965272b829df6f409724415e0002c8632ab6a8c0a08ec1f0bd2add05dc7bd7507606f7e2cc034fa24224ab829580040b835ecd9 + languageName: node + linkType: hard + +"dependency-graph@npm:0.11.0, dependency-graph@npm:~0.11.0": + version: 0.11.0 + resolution: "dependency-graph@npm:0.11.0" + checksum: 477204beaa9be69e642bc31ffe7a8c383d0cf48fa27acbc91c5df01431ab913e65c154213d2ef83d034c98d77280743ec85e5da018a97a18dd43d3c0b78b28cd + languageName: node + linkType: hard + +"deprecation@npm:^2.0.0, deprecation@npm:^2.3.1": + version: 2.3.1 + resolution: "deprecation@npm:2.3.1" + checksum: f56a05e182c2c195071385455956b0c4106fe14e36245b00c689ceef8e8ab639235176a96977ba7c74afb173317fac2e0ec6ec7a1c6d1e6eaa401c586c714132 + languageName: node + linkType: hard + +"dequal@npm:^2.0.0, dequal@npm:^2.0.3": + version: 2.0.3 + resolution: "dequal@npm:2.0.3" + checksum: 8679b850e1a3d0ebbc46ee780d5df7b478c23f335887464023a631d1b9af051ad4a6595a44220f9ff8ff95a8ddccf019b5ad778a976fd7bbf77383d36f412f90 + languageName: node + linkType: hard + +"des.js@npm:^1.0.0, des.js@npm:^1.1.0": + version: 1.1.0 + resolution: "des.js@npm:1.1.0" + dependencies: + inherits: ^2.0.1 + minimalistic-assert: ^1.0.0 + checksum: 0e9c1584b70d31e20f20a613fc9ef60fbc6a147dfec9e448a168794a4b97ac04d8dc47ea008f1fa93b0f8aaf7c1ead632a5e59ce1913a6079d2d244c9f5ebe33 + languageName: node + linkType: hard + +"destroy@npm:1.2.0, destroy@npm:^1.0.4": + version: 1.2.0 + resolution: "destroy@npm:1.2.0" + checksum: 0acb300b7478a08b92d810ab229d5afe0d2f4399272045ab22affa0d99dbaf12637659411530a6fcd597a9bdac718fc94373a61a95b4651bbc7b83684a565e38 + languageName: node + linkType: hard + +"destroyable-server@npm:^1.0.2": + version: 1.0.2 + resolution: "destroyable-server@npm:1.0.2" + dependencies: + "@types/node": "*" + checksum: 81fd70b9132d43c3633a7a819adfe1fc68b52a55154ff8a36f42f4655e7b71b8468559888caadfd324c1aa824f0d236796a8f356e8a00e7438649e647ea654b2 + languageName: node + linkType: hard + +"detect-indent@npm:^6.0.0": + version: 6.1.0 + resolution: "detect-indent@npm:6.1.0" + checksum: ab953a73c72dbd4e8fc68e4ed4bfd92c97eb6c43734af3900add963fd3a9316f3bc0578b018b24198d4c31a358571eff5f0656e81a1f3b9ad5c547d58b2d093d + languageName: node + linkType: hard + +"detect-libc@npm:^2.0.0": + version: 2.0.3 + resolution: "detect-libc@npm:2.0.3" + checksum: 2ba6a939ae55f189aea996ac67afceb650413c7a34726ee92c40fb0deb2400d57ef94631a8a3f052055eea7efb0f99a9b5e6ce923415daa3e68221f963cfc27d + languageName: node + linkType: hard + +"detect-newline@npm:^3.0.0": + version: 3.1.0 + resolution: "detect-newline@npm:3.1.0" + checksum: ae6cd429c41ad01b164c59ea36f264a2c479598e61cba7c99da24175a7ab80ddf066420f2bec9a1c57a6bead411b4655ff15ad7d281c000a89791f48cbe939e7 + languageName: node + linkType: hard + +"detect-node-es@npm:^1.1.0": + version: 1.1.0 + resolution: "detect-node-es@npm:1.1.0" + checksum: e46307d7264644975b71c104b9f028ed1d3d34b83a15b8a22373640ce5ea630e5640b1078b8ea15f202b54641da71e4aa7597093bd4b91f113db520a26a37449 + languageName: node + linkType: hard + +"detect-node@npm:^2.0.4": + version: 2.1.0 + resolution: "detect-node@npm:2.1.0" + checksum: 832184ec458353e41533ac9c622f16c19f7c02d8b10c303dfd3a756f56be93e903616c0bb2d4226183c9351c15fc0b3dba41a17a2308262afabcfa3776e6ae6e + languageName: node + linkType: hard + +"detect-port-alt@npm:^1.1.6": + version: 1.1.6 + resolution: "detect-port-alt@npm:1.1.6" + dependencies: + address: ^1.0.1 + debug: ^2.6.0 + bin: + detect: ./bin/detect-port + detect-port: ./bin/detect-port + checksum: 9dc37b1fa4a9dd6d4889e1045849b8d841232b598d1ca888bf712f4035b07a17cf6d537465a0d7323250048d3a5a0540e3b7cf89457efc222f96f77e2c40d16a + languageName: node + linkType: hard + +"dezalgo@npm:^1.0.4": + version: 1.0.4 + resolution: "dezalgo@npm:1.0.4" + dependencies: + asap: ^2.0.0 + wrappy: 1 + checksum: 895389c6aead740d2ab5da4d3466d20fa30f738010a4d3f4dcccc9fc645ca31c9d10b7e1804ae489b1eb02c7986f9f1f34ba132d409b043082a86d9a4e745624 + languageName: node + linkType: hard + +"diff-match-patch@npm:^1.0.5": + version: 1.0.5 + resolution: "diff-match-patch@npm:1.0.5" + checksum: 841522d01b09cccbc4e4402cf61514a81b906349a7d97b67222390f2d35cf5df277cb23959eeed212d5e46afb5629cebab41b87918672c5a05c11c73688630e3 + languageName: node + linkType: hard + +"diff-sequences@npm:^29.6.3": + version: 29.6.3 + resolution: "diff-sequences@npm:29.6.3" + checksum: f4914158e1f2276343d98ff5b31fc004e7304f5470bf0f1adb2ac6955d85a531a6458d33e87667f98f6ae52ebd3891bb47d420bb48a5bd8b7a27ee25b20e33aa + languageName: node + linkType: hard + +"diff3@npm:0.0.3": + version: 0.0.3 + resolution: "diff3@npm:0.0.3" + checksum: 28d883f1057b9873dfcb38cd2750337e6b32bf184bb1c0fb3292efeb83c597f1ce9b8f508bdd0d623a58b9ca1c917b1f297b90cb7fce3a62b26b0dde496f70e6 + languageName: node + linkType: hard + +"diff@npm:^4.0.1": + version: 4.0.2 + resolution: "diff@npm:4.0.2" + checksum: f2c09b0ce4e6b301c221addd83bf3f454c0bc00caa3dd837cf6c127d6edf7223aa2bbe3b688feea110b7f262adbfc845b757c44c8a9f8c0c5b15d8fa9ce9d20d + languageName: node + linkType: hard + +"diff@npm:^5.0.0": + version: 5.2.0 + resolution: "diff@npm:5.2.0" + checksum: 12b63ca9c36c72bafa3effa77121f0581b4015df18bc16bac1f8e263597735649f1a173c26f7eba17fb4162b073fee61788abe49610e6c70a2641fe1895443fd + languageName: node + linkType: hard + +"diffie-hellman@npm:^5.0.3": + version: 5.0.3 + resolution: "diffie-hellman@npm:5.0.3" + dependencies: + bn.js: ^4.1.0 + miller-rabin: ^4.0.0 + randombytes: ^2.0.0 + checksum: 0e620f322170c41076e70181dd1c24e23b08b47dbb92a22a644f3b89b6d3834b0f8ee19e37916164e5eb1ee26d2aa836d6129f92723995267250a0b541811065 + languageName: node + linkType: hard + +"dir-glob@npm:^3.0.1": + version: 3.0.1 + resolution: "dir-glob@npm:3.0.1" + dependencies: + path-type: ^4.0.0 + checksum: fa05e18324510d7283f55862f3161c6759a3f2f8dbce491a2fc14c8324c498286c54282c1f0e933cb930da8419b30679389499b919122952a4f8592362ef4615 + languageName: node + linkType: hard + +"discontinuous-range@npm:1.0.0": + version: 1.0.0 + resolution: "discontinuous-range@npm:1.0.0" + checksum: 8ee88d7082445b6eadc7c03bebe6dc978f96760c45e9f65d16ca66174d9e086a9e3855ee16acf65625e1a07a846a17de674f02a5964a6aebe5963662baf8b5c8 + languageName: node + linkType: hard + +"dns-packet@npm:^5.2.2": + version: 5.6.1 + resolution: "dns-packet@npm:5.6.1" + dependencies: + "@leichtgewicht/ip-codec": ^2.0.1 + checksum: 64c06457f0c6e143f7a0946e0aeb8de1c5f752217cfa143ef527467c00a6d78db1835cfdb6bb68333d9f9a4963cf23f410439b5262a8935cce1236f45e344b81 + languageName: node + linkType: hard + +"docker-compose@npm:^0.24.8": + version: 0.24.8 + resolution: "docker-compose@npm:0.24.8" + dependencies: + yaml: ^2.2.2 + checksum: 48f3564c46490f1f51899a144deb546b61450a76bffddb378379ac7702aa34b055e0237e0dc77507df94d7ad6f1f7daeeac27730230bce9aafe2e35efeda6b45 + languageName: node + linkType: hard + +"docker-modem@npm:^3.0.0": + version: 3.0.8 + resolution: "docker-modem@npm:3.0.8" + dependencies: + debug: ^4.1.1 + readable-stream: ^3.5.0 + split-ca: ^1.0.1 + ssh2: ^1.11.0 + checksum: e3675c9b1ad800be8fb1cb9c5621fbef20a75bfedcd6e01b69808eadd7f0165681e4e30d1700897b788a67dbf4769964fcccd19c3d66f6d2499bb7aede6b34df + languageName: node + linkType: hard + +"docker-modem@npm:^5.0.3": + version: 5.0.3 + resolution: "docker-modem@npm:5.0.3" + dependencies: + debug: ^4.1.1 + readable-stream: ^3.5.0 + split-ca: ^1.0.1 + ssh2: ^1.15.0 + checksum: 68f4948591622860ca95c10a01cae7f53ff2b2e8435b73b901698083b24ceb24208da12c1db2c47f073d48bc2f64a274cbf30e3c73979734f6fb3fbdf5bdb72e + languageName: node + linkType: hard + +"dockerode@npm:^3.3.5": + version: 3.3.5 + resolution: "dockerode@npm:3.3.5" + dependencies: + "@balena/dockerignore": ^1.0.2 + docker-modem: ^3.0.0 + tar-fs: ~2.0.1 + checksum: 7f6650422b07fa7ea9d5801f04b1a432634446b5fe37b995b8302b953b64e93abf1bb4596c2fb574ba47aafee685ef2ab959cc86c9654add5a26d09541bbbcc6 + languageName: node + linkType: hard + +"dockerode@npm:^4.0.0": + version: 4.0.2 + resolution: "dockerode@npm:4.0.2" + dependencies: + "@balena/dockerignore": ^1.0.2 + docker-modem: ^5.0.3 + tar-fs: ~2.0.1 + checksum: 4d36633d04ac5f662b0322d2fa4fe51fb1dd5a45f00b07379196ee5ff5dae13688a9ec1adf1edeaefab5eb22f3ae2219f62026241555a8bcf7edb396bbb5a92f + languageName: node + linkType: hard + +"doctrine@npm:^2.1.0": + version: 2.1.0 + resolution: "doctrine@npm:2.1.0" + dependencies: + esutils: ^2.0.2 + checksum: a45e277f7feaed309fe658ace1ff286c6e2002ac515af0aaf37145b8baa96e49899638c7cd47dccf84c3d32abfc113246625b3ac8f552d1046072adee13b0dc8 + languageName: node + linkType: hard + +"doctrine@npm:^3.0.0": + version: 3.0.0 + resolution: "doctrine@npm:3.0.0" + dependencies: + esutils: ^2.0.2 + checksum: fd7673ca77fe26cd5cba38d816bc72d641f500f1f9b25b83e8ce28827fe2da7ad583a8da26ab6af85f834138cf8dae9f69b0cd6ab925f52ddab1754db44d99ce + languageName: node + linkType: hard + +"dom-accessibility-api@npm:^0.5.9": + version: 0.5.16 + resolution: "dom-accessibility-api@npm:0.5.16" + checksum: 005eb283caef57fc1adec4d5df4dd49189b628f2f575af45decb210e04d634459e3f1ee64f18b41e2dcf200c844bc1d9279d80807e686a30d69a4756151ad248 + languageName: node + linkType: hard + +"dom-accessibility-api@npm:^0.6.3": + version: 0.6.3 + resolution: "dom-accessibility-api@npm:0.6.3" + checksum: c325b5144bb406df23f4affecffc117dbaec9af03daad9ee6b510c5be647b14d28ef0a4ea5ca06d696d8ab40bb777e5fed98b985976fdef9d8790178fa1d573f + languageName: node + linkType: hard + +"dom-converter@npm:^0.2.0": + version: 0.2.0 + resolution: "dom-converter@npm:0.2.0" + dependencies: + utila: ~0.4 + checksum: ea52fe303f5392e48dea563abef0e6fb3a478b8dbe3c599e99bb5d53981c6c38fc4944e56bb92a8ead6bb989d10b7914722ae11febbd2fd0910e33b9fc4aaa77 + languageName: node + linkType: hard + +"dom-helpers@npm:^5.0.1": + version: 5.2.1 + resolution: "dom-helpers@npm:5.2.1" + dependencies: + "@babel/runtime": ^7.8.7 + csstype: ^3.0.2 + checksum: 863ba9e086f7093df3376b43e74ce4422571d404fc9828bf2c56140963d5edf0e56160f9b2f3bb61b282c07f8fc8134f023c98fd684bddcb12daf7b0f14d951c + languageName: node + linkType: hard + +"dom-serializer@npm:^1.0.1": + version: 1.4.1 + resolution: "dom-serializer@npm:1.4.1" + dependencies: + domelementtype: ^2.0.1 + domhandler: ^4.2.0 + entities: ^2.0.0 + checksum: fbb0b01f87a8a2d18e6e5a388ad0f7ec4a5c05c06d219377da1abc7bb0f674d804f4a8a94e3f71ff15f6cb7dcfc75704a54b261db672b9b3ab03da6b758b0b22 + languageName: node + linkType: hard + +"domain-browser@npm:^1.1.1": + version: 1.2.0 + resolution: "domain-browser@npm:1.2.0" + checksum: 8f1235c7f49326fb762f4675795246a6295e7dd566b4697abec24afdba2460daa7dfbd1a73d31efbf5606b3b7deadb06ce47cf06f0a476e706153d62a4ff2b90 + languageName: node + linkType: hard + +"domelementtype@npm:^2.0.1, domelementtype@npm:^2.2.0": + version: 2.3.0 + resolution: "domelementtype@npm:2.3.0" + checksum: ee837a318ff702622f383409d1f5b25dd1024b692ef64d3096ff702e26339f8e345820f29a68bcdcea8cfee3531776b3382651232fbeae95612d6f0a75efb4f6 + languageName: node + linkType: hard + +"domexception@npm:^2.0.1": + version: 2.0.1 + resolution: "domexception@npm:2.0.1" + dependencies: + webidl-conversions: ^5.0.0 + checksum: d638e9cb05c52999f1b2eb87c374b03311ea5b1d69c2f875bc92da73e17db60c12142b45c950228642ff7f845c536b65305483350d080df59003a653da80b691 + languageName: node + linkType: hard + +"domexception@npm:^4.0.0": + version: 4.0.0 + resolution: "domexception@npm:4.0.0" + dependencies: + webidl-conversions: ^7.0.0 + checksum: ddbc1268edf33a8ba02ccc596735ede80375ee0cf124b30d2f05df5b464ba78ef4f49889b6391df4a04954e63d42d5631c7fcf8b1c4f12bc531252977a5f13d5 + languageName: node + linkType: hard + +"domhandler@npm:^4.0.0, domhandler@npm:^4.2.0, domhandler@npm:^4.3.1": + version: 4.3.1 + resolution: "domhandler@npm:4.3.1" + dependencies: + domelementtype: ^2.2.0 + checksum: 4c665ceed016e1911bf7d1dadc09dc888090b64dee7851cccd2fcf5442747ec39c647bb1cb8c8919f8bbdd0f0c625a6bafeeed4b2d656bbecdbae893f43ffaaa + languageName: node + linkType: hard + +"dompurify@npm:=3.1.6": + version: 3.1.6 + resolution: "dompurify@npm:3.1.6" + checksum: cc4fc4ccd9261fbceb2a1627a985c70af231274a26ddd3f643fd0616a0a44099bd9e4480940ce3655612063be4a1fe9f5e9309967526f8c0a99f931602323866 + languageName: node + linkType: hard + +"dompurify@npm:^2.2.7": + version: 2.5.8 + resolution: "dompurify@npm:2.5.8" + checksum: 8d7acd42bfc75d3dd9030d61201e346fffc4fd5f62e491a446564f0d5e0ffc1635712ccf7781302b00c4fefe412a030b5434c9e803605d81343e923b088cde7e + languageName: node + linkType: hard + +"dompurify@npm:^3.0.0": + version: 3.2.3 + resolution: "dompurify@npm:3.2.3" + dependencies: + "@types/trusted-types": ^2.0.7 + dependenciesMeta: + "@types/trusted-types": + optional: true + checksum: cd66ae8b22e1cfe5bc207b95fc119ce62f9a56eb313a9a1af6262d789d84e7bd27e29f26ed80110d108670dacb9527cb96ddf48a1da89126a37ec8b48702279a + languageName: node + linkType: hard + +"domutils@npm:^2.5.2, domutils@npm:^2.8.0": + version: 2.8.0 + resolution: "domutils@npm:2.8.0" + dependencies: + dom-serializer: ^1.0.1 + domelementtype: ^2.2.0 + domhandler: ^4.2.0 + checksum: abf7434315283e9aadc2a24bac0e00eab07ae4313b40cc239f89d84d7315ebdfd2fb1b5bf750a96bc1b4403d7237c7b2ebf60459be394d625ead4ca89b934391 + languageName: node + linkType: hard + +"dot-case@npm:^3.0.4": + version: 3.0.4 + resolution: "dot-case@npm:3.0.4" + dependencies: + no-case: ^3.0.4 + tslib: ^2.0.3 + checksum: a65e3519414856df0228b9f645332f974f2bf5433370f544a681122eab59e66038fc3349b4be1cdc47152779dac71a5864f1ccda2f745e767c46e9c6543b1169 + languageName: node + linkType: hard + +"drange@npm:^1.0.2": + version: 1.1.1 + resolution: "drange@npm:1.1.1" + checksum: 7e6ed639f9ab4d826e79717e2b0685a7ab02ecd39dac6483305dcc43ea2a27dc78b538e10adaba35c086efab216ef1f53f22bc402abfd0d29454b1c5f48fecd1 + languageName: node + linkType: hard + +"dset@npm:^3.1.2": + version: 3.1.4 + resolution: "dset@npm:3.1.4" + checksum: 9a7677e9ffd3c13ad850f7cf367aa94b39984006510e84c3c09b7b88bba0a5b3b7196d85a99d0c4cae4e47d67bdeca43dc1834a41d80f31bcdc86dd26121ecec + languageName: node + linkType: hard + +"dunder-proto@npm:^1.0.0, dunder-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "dunder-proto@npm:1.0.1" + dependencies: + call-bind-apply-helpers: ^1.0.1 + es-errors: ^1.3.0 + gopd: ^1.2.0 + checksum: 149207e36f07bd4941921b0ca929e3a28f1da7bd6b6ff8ff7f4e2f2e460675af4576eeba359c635723dc189b64cdd4787e0255897d5b135ccc5d15cb8685fc90 + languageName: node + linkType: hard + +"duplexer@npm:^0.1.2, duplexer@npm:~0.1.1": + version: 0.1.2 + resolution: "duplexer@npm:0.1.2" + checksum: 62ba61a830c56801db28ff6305c7d289b6dc9f859054e8c982abd8ee0b0a14d2e9a8e7d086ffee12e868d43e2bbe8a964be55ddbd8c8957714c87373c7a4f9b0 + languageName: node + linkType: hard + +"duplexify@npm:^3.5.1": + version: 3.7.1 + resolution: "duplexify@npm:3.7.1" + dependencies: + end-of-stream: ^1.0.0 + inherits: ^2.0.1 + readable-stream: ^2.0.0 + stream-shift: ^1.0.0 + checksum: 3c2ed2223d956a5da713dae12ba8295acb61d9acd966ccbba938090d04f4574ca4dca75cca089b5077c2d7e66101f32e6ea9b36a78ca213eff574e7a8b8accf2 + languageName: node + linkType: hard + +"duplexify@npm:^4.0.0, duplexify@npm:^4.1.3": + version: 4.1.3 + resolution: "duplexify@npm:4.1.3" + dependencies: + end-of-stream: ^1.4.1 + inherits: ^2.0.3 + readable-stream: ^3.1.1 + stream-shift: ^1.0.2 + checksum: 9636a027345de3dd3c801594d01a7c73d9ce260019538beb1ee650bba7544e72f40a4d4902b52e1ab283dc32a06f210d42748773af02ff15e3064a9659deab7f + languageName: node + linkType: hard + +"eastasianwidth@npm:^0.2.0": + version: 0.2.0 + resolution: "eastasianwidth@npm:0.2.0" + checksum: 7d00d7cd8e49b9afa762a813faac332dee781932d6f2c848dc348939c4253f1d4564341b7af1d041853bc3f32c2ef141b58e0a4d9862c17a7f08f68df1e0f1ed + languageName: node + linkType: hard + +"easy-table@npm:1.1.0": + version: 1.1.0 + resolution: "easy-table@npm:1.1.0" + dependencies: + wcwidth: ">=1.0.1" + dependenciesMeta: + wcwidth: + optional: true + checksum: 49b960fefe5670076773824386f22070dce185ebc0a99542035496700cc39a0b9346f65fd4307f5fe3dbbe7e6d9c4b59966e77e32f915e0fe71de71c3d0efcf7 + languageName: node + linkType: hard + +"easy-table@npm:1.2.0": + version: 1.2.0 + resolution: "easy-table@npm:1.2.0" + dependencies: + ansi-regex: ^5.0.1 + wcwidth: ^1.0.1 + dependenciesMeta: + wcwidth: + optional: true + checksum: 66961b19751a68d2d30ce9b74ef750c374cc3112bbcac3d1ed5a939e43c035ecf6b1954098df2d5b05f1e853ab2b67de893794390dcbf0abe1f157fddeb52174 + languageName: node + linkType: hard + +"ebnf@npm:^1.9.1": + version: 1.9.1 + resolution: "ebnf@npm:1.9.1" + bin: + ebnf: dist/bin.js + checksum: a361ac739a4981a75e15cd16e0dd0ee944977caa680e689240d5d8cda0cae75d869e5889b7457c0c201687206d6ee47bae3b247a20f851c3a2db457ed480cb87 + languageName: node + linkType: hard + +"ecc-jsbn@npm:~0.1.1": + version: 0.1.2 + resolution: "ecc-jsbn@npm:0.1.2" + dependencies: + jsbn: ~0.1.0 + safer-buffer: ^2.1.0 + checksum: 22fef4b6203e5f31d425f5b711eb389e4c6c2723402e389af394f8411b76a488fa414d309d866e2b577ce3e8462d344205545c88a8143cc21752a5172818888a + languageName: node + linkType: hard + +"ecdsa-sig-formatter@npm:1.0.11, ecdsa-sig-formatter@npm:^1.0.11": + version: 1.0.11 + resolution: "ecdsa-sig-formatter@npm:1.0.11" + dependencies: + safe-buffer: ^5.0.1 + checksum: 207f9ab1c2669b8e65540bce29506134613dd5f122cccf1e6a560f4d63f2732d427d938f8481df175505aad94583bcb32c688737bb39a6df0625f903d6d93c03 + languageName: node + linkType: hard + +"ee-first@npm:1.1.1": + version: 1.1.1 + resolution: "ee-first@npm:1.1.1" + checksum: 1b4cac778d64ce3b582a7e26b218afe07e207a0f9bfe13cc7395a6d307849cfe361e65033c3251e00c27dd060cab43014c2d6b2647676135e18b77d2d05b3f4f + languageName: node + linkType: hard + +"electron-to-chromium@npm:^1.5.73": + version: 1.5.75 + resolution: "electron-to-chromium@npm:1.5.75" + checksum: 72e24a908efb29a9da8fbdb55b5a31369615b3d0c95c801679f0a51c26e222a13a5ca219180a2dbb7a85da2017b8b16bc2e79fa71293dbe81d0b6fadaf7755dc + languageName: node + linkType: hard + +"elliptic@npm:^6.5.3, elliptic@npm:^6.5.5": + version: 6.6.1 + resolution: "elliptic@npm:6.6.1" + dependencies: + bn.js: ^4.11.9 + brorand: ^1.1.0 + hash.js: ^1.0.0 + hmac-drbg: ^1.0.1 + inherits: ^2.0.4 + minimalistic-assert: ^1.0.1 + minimalistic-crypto-utils: ^1.0.1 + checksum: 27b14a52f68bbbc0720da259f712cb73e953f6d2047958cd02fb0d0ade2e83849dc39fb4af630889c67df8817e24237428cf59c4f4c07700f755b401149a7375 + languageName: node + linkType: hard + +"emittery@npm:^0.13.1": + version: 0.13.1 + resolution: "emittery@npm:0.13.1" + checksum: 2b089ab6306f38feaabf4f6f02792f9ec85fc054fda79f44f6790e61bbf6bc4e1616afb9b232e0c5ec5289a8a452f79bfa6d905a6fd64e94b49981f0934001c6 + languageName: node + linkType: hard + +"emoji-regex@npm:^8.0.0": + version: 8.0.0 + resolution: "emoji-regex@npm:8.0.0" + checksum: d4c5c39d5a9868b5fa152f00cada8a936868fd3367f33f71be515ecee4c803132d11b31a6222b2571b1e5f7e13890156a94880345594d0ce7e3c9895f560f192 + languageName: node + linkType: hard + +"emoji-regex@npm:^9.2.2": + version: 9.2.2 + resolution: "emoji-regex@npm:9.2.2" + checksum: 8487182da74aabd810ac6d6f1994111dfc0e331b01271ae01ec1eb0ad7b5ecc2bbbbd2f053c05cb55a1ac30449527d819bbfbf0e3de1023db308cbcb47f86601 + languageName: node + linkType: hard + +"emojis-list@npm:^3.0.0": + version: 3.0.0 + resolution: "emojis-list@npm:3.0.0" + checksum: ddaaa02542e1e9436c03970eeed445f4ed29a5337dfba0fe0c38dfdd2af5da2429c2a0821304e8a8d1cadf27fdd5b22ff793571fa803ae16852a6975c65e8e70 + languageName: node + linkType: hard + +"enabled@npm:2.0.x": + version: 2.0.0 + resolution: "enabled@npm:2.0.0" + checksum: 9d256d89f4e8a46ff988c6a79b22fa814b4ffd82826c4fdacd9b42e9b9465709d3b748866d0ab4d442dfc6002d81de7f7b384146ccd1681f6a7f868d2acca063 + languageName: node + linkType: hard + +"encodeurl@npm:^1.0.2, encodeurl@npm:~1.0.2": + version: 1.0.2 + resolution: "encodeurl@npm:1.0.2" + checksum: e50e3d508cdd9c4565ba72d2012e65038e5d71bdc9198cb125beb6237b5b1ade6c0d343998da9e170fb2eae52c1bed37d4d6d98a46ea423a0cddbed5ac3f780c + languageName: node + linkType: hard + +"encodeurl@npm:~2.0.0": + version: 2.0.0 + resolution: "encodeurl@npm:2.0.0" + checksum: abf5cd51b78082cf8af7be6785813c33b6df2068ce5191a40ca8b1afe6a86f9230af9a9ce694a5ce4665955e5c1120871826df9c128a642e09c58d592e2807fe + languageName: node + linkType: hard + +"encoding@npm:^0.1.13": + version: 0.1.13 + resolution: "encoding@npm:0.1.13" + dependencies: + iconv-lite: ^0.6.2 + checksum: bb98632f8ffa823996e508ce6a58ffcf5856330fde839ae42c9e1f436cc3b5cc651d4aeae72222916545428e54fd0f6aa8862fd8d25bdbcc4589f1e3f3715e7f + languageName: node + linkType: hard + +"end-of-stream@npm:^1.0.0, end-of-stream@npm:^1.1.0, end-of-stream@npm:^1.4.1": + version: 1.4.4 + resolution: "end-of-stream@npm:1.4.4" + dependencies: + once: ^1.4.0 + checksum: 530a5a5a1e517e962854a31693dbb5c0b2fc40b46dad2a56a2deec656ca040631124f4795823acc68238147805f8b021abbe221f4afed5ef3c8e8efc2024908b + languageName: node + linkType: hard + +"enhanced-resolve@npm:^5.17.1": + version: 5.18.0 + resolution: "enhanced-resolve@npm:5.18.0" + dependencies: + graceful-fs: ^4.2.4 + tapable: ^2.2.0 + checksum: 77c6b11f0d19f21f52214e5a2c0dfb7070decb4045572f44be4cacf92b4be5e2c1d9a4c044a226d1003ca9daf9b71d498d256e7520ff5060f23d0284f814d392 + languageName: node + linkType: hard + +"enquirer@npm:^2.4.1": + version: 2.4.1 + resolution: "enquirer@npm:2.4.1" + dependencies: + ansi-colors: ^4.1.1 + strip-ansi: ^6.0.1 + checksum: f080f11a74209647dbf347a7c6a83c8a47ae1ebf1e75073a808bc1088eb780aa54075bfecd1bcdb3e3c724520edb8e6ee05da031529436b421b71066fcc48cb5 + languageName: node + linkType: hard + +"entities@npm:^2.0.0": + version: 2.2.0 + resolution: "entities@npm:2.2.0" + checksum: 19010dacaf0912c895ea262b4f6128574f9ccf8d4b3b65c7e8334ad0079b3706376360e28d8843ff50a78aabcb8f08f0a32dbfacdc77e47ed77ca08b713669b3 + languageName: node + linkType: hard + +"entities@npm:^4.4.0, entities@npm:^4.5.0": + version: 4.5.0 + resolution: "entities@npm:4.5.0" + checksum: 853f8ebd5b425d350bffa97dd6958143179a5938352ccae092c62d1267c4e392a039be1bae7d51b6e4ffad25f51f9617531fedf5237f15df302ccfb452cbf2d7 + languageName: node + linkType: hard + +"entities@npm:~2.1.0": + version: 2.1.0 + resolution: "entities@npm:2.1.0" + checksum: a10a877e489586a3f6a691fe49bf3fc4e58f06c8e80522f08214a5150ba457e7017b447d4913a3fa041bda06ee4c92517baa4d8d75373eaa79369e9639225ffd + languageName: node + linkType: hard + +"env-paths@npm:^2.2.0": + version: 2.2.1 + resolution: "env-paths@npm:2.2.1" + checksum: 65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e + languageName: node + linkType: hard + +"err-code@npm:^2.0.2": + version: 2.0.3 + resolution: "err-code@npm:2.0.3" + checksum: 8b7b1be20d2de12d2255c0bc2ca638b7af5171142693299416e6a9339bd7d88fc8d7707d913d78e0993176005405a236b066b45666b27b797252c771156ace54 + languageName: node + linkType: hard + +"error-ex@npm:^1.3.1": + version: 1.3.2 + resolution: "error-ex@npm:1.3.2" + dependencies: + is-arrayish: ^0.2.1 + checksum: c1c2b8b65f9c91b0f9d75f0debaa7ec5b35c266c2cac5de412c1a6de86d4cbae04ae44e510378cb14d032d0645a36925d0186f8bb7367bcc629db256b743a001 + languageName: node + linkType: hard + +"error-stack-parser@npm:^2.0.6": + version: 2.1.4 + resolution: "error-stack-parser@npm:2.1.4" + dependencies: + stackframe: ^1.3.4 + checksum: 3b916d2d14c6682f287c8bfa28e14672f47eafe832701080e420e7cdbaebb2c50293868256a95706ac2330fe078cf5664713158b49bc30d7a5f2ac229ded0e18 + languageName: node + linkType: hard + +"es-abstract@npm:^1.17.5, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3, es-abstract@npm:^1.23.5, es-abstract@npm:^1.23.6": + version: 1.23.6 + resolution: "es-abstract@npm:1.23.6" + dependencies: + array-buffer-byte-length: ^1.0.1 + arraybuffer.prototype.slice: ^1.0.4 + available-typed-arrays: ^1.0.7 + call-bind: ^1.0.8 + call-bound: ^1.0.3 + data-view-buffer: ^1.0.1 + data-view-byte-length: ^1.0.1 + data-view-byte-offset: ^1.0.0 + es-define-property: ^1.0.1 + es-errors: ^1.3.0 + es-object-atoms: ^1.0.0 + es-set-tostringtag: ^2.0.3 + es-to-primitive: ^1.3.0 + function.prototype.name: ^1.1.7 + get-intrinsic: ^1.2.6 + get-symbol-description: ^1.0.2 + globalthis: ^1.0.4 + gopd: ^1.2.0 + has-property-descriptors: ^1.0.2 + has-proto: ^1.2.0 + has-symbols: ^1.1.0 + hasown: ^2.0.2 + internal-slot: ^1.1.0 + is-array-buffer: ^3.0.4 + is-callable: ^1.2.7 + is-data-view: ^1.0.2 + is-negative-zero: ^2.0.3 + is-regex: ^1.2.1 + is-shared-array-buffer: ^1.0.3 + is-string: ^1.1.1 + is-typed-array: ^1.1.13 + is-weakref: ^1.1.0 + math-intrinsics: ^1.0.0 + object-inspect: ^1.13.3 + object-keys: ^1.1.1 + object.assign: ^4.1.5 + regexp.prototype.flags: ^1.5.3 + safe-array-concat: ^1.1.3 + safe-regex-test: ^1.1.0 + string.prototype.trim: ^1.2.10 + string.prototype.trimend: ^1.0.9 + string.prototype.trimstart: ^1.0.8 + typed-array-buffer: ^1.0.2 + typed-array-byte-length: ^1.0.1 + typed-array-byte-offset: ^1.0.3 + typed-array-length: ^1.0.7 + unbox-primitive: ^1.0.2 + which-typed-array: ^1.1.16 + checksum: bc1b5a78ca243a9abd00e30aa84d644957878980e8bad961c9362a58e7790b56f54e146fc1871b15eed406fcd495cf2296a8ffb261370878f36316b62a67bbb4 + languageName: node + linkType: hard + +"es-aggregate-error@npm:^1.0.7": + version: 1.0.13 + resolution: "es-aggregate-error@npm:1.0.13" + dependencies: + define-data-property: ^1.1.4 + define-properties: ^1.2.1 + es-abstract: ^1.23.2 + es-errors: ^1.3.0 + function-bind: ^1.1.2 + globalthis: ^1.0.3 + has-property-descriptors: ^1.0.2 + set-function-name: ^2.0.2 + checksum: f29596a9267220850fd77cc32abec369ffdea8ccc05de3ca387e55cf1711db2d1f6cdd1384f5bb968dbfb3ae8371919e82a61edb7219123caa41b924f31f1821 + languageName: node + linkType: hard + +"es-define-property@npm:^1.0.0, es-define-property@npm:^1.0.1": + version: 1.0.1 + resolution: "es-define-property@npm:1.0.1" + checksum: 0512f4e5d564021c9e3a644437b0155af2679d10d80f21adaf868e64d30efdfbd321631956f20f42d655fedb2e3a027da479fad3fa6048f768eb453a80a5f80a + languageName: node + linkType: hard + +"es-errors@npm:^1.3.0": + version: 1.3.0 + resolution: "es-errors@npm:1.3.0" + checksum: ec1414527a0ccacd7f15f4a3bc66e215f04f595ba23ca75cdae0927af099b5ec865f9f4d33e9d7e86f512f252876ac77d4281a7871531a50678132429b1271b5 + languageName: node + linkType: hard + +"es-get-iterator@npm:^1.1.3": + version: 1.1.3 + resolution: "es-get-iterator@npm:1.1.3" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.1.3 + has-symbols: ^1.0.3 + is-arguments: ^1.1.1 + is-map: ^2.0.2 + is-set: ^2.0.2 + is-string: ^1.0.7 + isarray: ^2.0.5 + stop-iteration-iterator: ^1.0.0 + checksum: 8fa118da42667a01a7c7529f8a8cca514feeff243feec1ce0bb73baaa3514560bd09d2b3438873cf8a5aaec5d52da248131de153b28e2638a061b6e4df13267d + languageName: node + linkType: hard + +"es-iterator-helpers@npm:^1.1.0": + version: 1.2.0 + resolution: "es-iterator-helpers@npm:1.2.0" + dependencies: + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-abstract: ^1.23.3 + es-errors: ^1.3.0 + es-set-tostringtag: ^2.0.3 + function-bind: ^1.1.2 + get-intrinsic: ^1.2.4 + globalthis: ^1.0.4 + gopd: ^1.0.1 + has-property-descriptors: ^1.0.2 + has-proto: ^1.0.3 + has-symbols: ^1.0.3 + internal-slot: ^1.0.7 + iterator.prototype: ^1.1.3 + safe-array-concat: ^1.1.2 + checksum: c5f5ff10d57f956539581aca7a2d8726c5a8a3e49e6285700d74dcd8b64c7a337b9ab5e81b459b079dac745d2fe02e4f6b80a842e3df45d9cfe3f12325fda8c0 + languageName: node + linkType: hard + +"es-module-lexer@npm:^1.2.1, es-module-lexer@npm:^1.3.1": + version: 1.5.4 + resolution: "es-module-lexer@npm:1.5.4" + checksum: a0cf04fb92d052647ac7d818d1913b98d3d3d0f5b9d88f0eafb993436e4c3e2c958599db68839d57f2dfa281fdf0f60e18d448eb78fc292c33c0f25635b6854f + languageName: node + linkType: hard + +"es-object-atoms@npm:^1.0.0": + version: 1.0.0 + resolution: "es-object-atoms@npm:1.0.0" + dependencies: + es-errors: ^1.3.0 + checksum: 26f0ff78ab93b63394e8403c353842b2272836968de4eafe97656adfb8a7c84b9099bf0fe96ed58f4a4cddc860f6e34c77f91649a58a5daa4a9c40b902744e3c + languageName: node + linkType: hard + +"es-set-tostringtag@npm:^2.0.3": + version: 2.0.3 + resolution: "es-set-tostringtag@npm:2.0.3" + dependencies: + get-intrinsic: ^1.2.4 + has-tostringtag: ^1.0.2 + hasown: ^2.0.1 + checksum: 7227fa48a41c0ce83e0377b11130d324ac797390688135b8da5c28994c0165be8b252e15cd1de41e1325e5a5412511586960213e88f9ab4a5e7d028895db5129 + languageName: node + linkType: hard + +"es-shim-unscopables@npm:^1.0.2": + version: 1.0.2 + resolution: "es-shim-unscopables@npm:1.0.2" + dependencies: + hasown: ^2.0.0 + checksum: 432bd527c62065da09ed1d37a3f8e623c423683285e6188108286f4a1e8e164a5bcbfbc0051557c7d14633cd2a41ce24c7048e6bbb66a985413fd32f1be72626 + languageName: node + linkType: hard + +"es-to-primitive@npm:^1.3.0": + version: 1.3.0 + resolution: "es-to-primitive@npm:1.3.0" + dependencies: + is-callable: ^1.2.7 + is-date-object: ^1.0.5 + is-symbol: ^1.0.4 + checksum: 966965880356486cd4d1fe9a523deda2084c81b3702d951212c098f5f2ee93605d1b7c1840062efb48a07d892641c7ed1bc194db563645c0dd2b919cb6d65b93 + languageName: node + linkType: hard + +"es6-error@npm:^4.1.1": + version: 4.1.1 + resolution: "es6-error@npm:4.1.1" + checksum: ae41332a51ec1323da6bbc5d75b7803ccdeddfae17c41b6166ebbafc8e8beb7a7b80b884b7fab1cc80df485860ac3c59d78605e860bb4f8cd816b3d6ade0d010 + languageName: node + linkType: hard + +"esbuild-loader@npm:^4.0.0": + version: 4.2.2 + resolution: "esbuild-loader@npm:4.2.2" + dependencies: + esbuild: ^0.21.0 + get-tsconfig: ^4.7.0 + loader-utils: ^2.0.4 + webpack-sources: ^1.4.3 + peerDependencies: + webpack: ^4.40.0 || ^5.0.0 + checksum: 793d2482693c1c66298f63d7fdb62f2f3e314b006ade1dc3c46b46ade39777c5fba5930c2fa2752636c511997faa08d4a0f5d5b8a734b9046b3626aa6d5ab8e3 + languageName: node + linkType: hard + +"esbuild@npm:^0.21.0": + version: 0.21.5 + resolution: "esbuild@npm:0.21.5" + dependencies: + "@esbuild/aix-ppc64": 0.21.5 + "@esbuild/android-arm": 0.21.5 + "@esbuild/android-arm64": 0.21.5 + "@esbuild/android-x64": 0.21.5 + "@esbuild/darwin-arm64": 0.21.5 + "@esbuild/darwin-x64": 0.21.5 + "@esbuild/freebsd-arm64": 0.21.5 + "@esbuild/freebsd-x64": 0.21.5 + "@esbuild/linux-arm": 0.21.5 + "@esbuild/linux-arm64": 0.21.5 + "@esbuild/linux-ia32": 0.21.5 + "@esbuild/linux-loong64": 0.21.5 + "@esbuild/linux-mips64el": 0.21.5 + "@esbuild/linux-ppc64": 0.21.5 + "@esbuild/linux-riscv64": 0.21.5 + "@esbuild/linux-s390x": 0.21.5 + "@esbuild/linux-x64": 0.21.5 + "@esbuild/netbsd-x64": 0.21.5 + "@esbuild/openbsd-x64": 0.21.5 + "@esbuild/sunos-x64": 0.21.5 + "@esbuild/win32-arm64": 0.21.5 + "@esbuild/win32-ia32": 0.21.5 + "@esbuild/win32-x64": 0.21.5 + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 2911c7b50b23a9df59a7d6d4cdd3a4f85855787f374dce751148dbb13305e0ce7e880dde1608c2ab7a927fc6cec3587b80995f7fc87a64b455f8b70b55fd8ec1 + languageName: node + linkType: hard + +"esbuild@npm:^0.23.0": + version: 0.23.1 + resolution: "esbuild@npm:0.23.1" + dependencies: + "@esbuild/aix-ppc64": 0.23.1 + "@esbuild/android-arm": 0.23.1 + "@esbuild/android-arm64": 0.23.1 + "@esbuild/android-x64": 0.23.1 + "@esbuild/darwin-arm64": 0.23.1 + "@esbuild/darwin-x64": 0.23.1 + "@esbuild/freebsd-arm64": 0.23.1 + "@esbuild/freebsd-x64": 0.23.1 + "@esbuild/linux-arm": 0.23.1 + "@esbuild/linux-arm64": 0.23.1 + "@esbuild/linux-ia32": 0.23.1 + "@esbuild/linux-loong64": 0.23.1 + "@esbuild/linux-mips64el": 0.23.1 + "@esbuild/linux-ppc64": 0.23.1 + "@esbuild/linux-riscv64": 0.23.1 + "@esbuild/linux-s390x": 0.23.1 + "@esbuild/linux-x64": 0.23.1 + "@esbuild/netbsd-x64": 0.23.1 + "@esbuild/openbsd-arm64": 0.23.1 + "@esbuild/openbsd-x64": 0.23.1 + "@esbuild/sunos-x64": 0.23.1 + "@esbuild/win32-arm64": 0.23.1 + "@esbuild/win32-ia32": 0.23.1 + "@esbuild/win32-x64": 0.23.1 + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-arm64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 0413c3b9257327fb598427688b7186ea335bf1693746fe5713cc93c95854d6388b8ed4ad643fddf5b5ace093f7dcd9038dd58e087bf2da1f04dfb4c5571660af + languageName: node + linkType: hard + +"esbuild@npm:^0.24.0": + version: 0.24.1 + resolution: "esbuild@npm:0.24.1" + dependencies: + "@esbuild/aix-ppc64": 0.24.1 + "@esbuild/android-arm": 0.24.1 + "@esbuild/android-arm64": 0.24.1 + "@esbuild/android-x64": 0.24.1 + "@esbuild/darwin-arm64": 0.24.1 + "@esbuild/darwin-x64": 0.24.1 + "@esbuild/freebsd-arm64": 0.24.1 + "@esbuild/freebsd-x64": 0.24.1 + "@esbuild/linux-arm": 0.24.1 + "@esbuild/linux-arm64": 0.24.1 + "@esbuild/linux-ia32": 0.24.1 + "@esbuild/linux-loong64": 0.24.1 + "@esbuild/linux-mips64el": 0.24.1 + "@esbuild/linux-ppc64": 0.24.1 + "@esbuild/linux-riscv64": 0.24.1 + "@esbuild/linux-s390x": 0.24.1 + "@esbuild/linux-x64": 0.24.1 + "@esbuild/netbsd-arm64": 0.24.1 + "@esbuild/netbsd-x64": 0.24.1 + "@esbuild/openbsd-arm64": 0.24.1 + "@esbuild/openbsd-x64": 0.24.1 + "@esbuild/sunos-x64": 0.24.1 + "@esbuild/win32-arm64": 0.24.1 + "@esbuild/win32-ia32": 0.24.1 + "@esbuild/win32-x64": 0.24.1 + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-arm64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-arm64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 99430738df195c00758d7d010fd2482b3b24853a2933810e9d95b5c4f7a93d1106d9fcc259df0326b74321eb3be3238fb0c1e76fbe12b48d02ffc39b0a47672d + languageName: node + linkType: hard + +"escalade@npm:^3.1.1, escalade@npm:^3.2.0": + version: 3.2.0 + resolution: "escalade@npm:3.2.0" + checksum: 47b029c83de01b0d17ad99ed766347b974b0d628e848de404018f3abee728e987da0d2d370ad4574aa3d5b5bfc368754fd085d69a30f8e75903486ec4b5b709e + languageName: node + linkType: hard + +"escape-html@npm:^1.0.3, escape-html@npm:~1.0.3": + version: 1.0.3 + resolution: "escape-html@npm:1.0.3" + checksum: 6213ca9ae00d0ab8bccb6d8d4e0a98e76237b2410302cf7df70aaa6591d509a2a37ce8998008cbecae8fc8ffaadf3fb0229535e6a145f3ce0b211d060decbb24 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^1.0.5": + version: 1.0.5 + resolution: "escape-string-regexp@npm:1.0.5" + checksum: 6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^2.0.0": + version: 2.0.0 + resolution: "escape-string-regexp@npm:2.0.0" + checksum: 9f8a2d5743677c16e85c810e3024d54f0c8dea6424fad3c79ef6666e81dd0846f7437f5e729dfcdac8981bc9e5294c39b4580814d114076b8d36318f46ae4395 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^4.0.0": + version: 4.0.0 + resolution: "escape-string-regexp@npm:4.0.0" + checksum: 98b48897d93060f2322108bf29db0feba7dd774be96cd069458d1453347b25ce8682ecc39859d4bca2203cc0ab19c237bcc71755eff49a0f8d90beadeeba5cc5 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^5.0.0": + version: 5.0.0 + resolution: "escape-string-regexp@npm:5.0.0" + checksum: 20daabe197f3cb198ec28546deebcf24b3dbb1a5a269184381b3116d12f0532e06007f4bc8da25669d6a7f8efb68db0758df4cd981f57bc5b57f521a3e12c59e + languageName: node + linkType: hard + +"escodegen@npm:^1.8.1": + version: 1.14.3 + resolution: "escodegen@npm:1.14.3" + dependencies: + esprima: ^4.0.1 + estraverse: ^4.2.0 + esutils: ^2.0.2 + optionator: ^0.8.1 + source-map: ~0.6.1 + dependenciesMeta: + source-map: + optional: true + bin: + escodegen: bin/escodegen.js + esgenerate: bin/esgenerate.js + checksum: 381cdc4767ecdb221206bbbab021b467bbc2a6f5c9a99c9e6353040080bdd3dfe73d7604ad89a47aca6ea7d58bc635f6bd3fbc8da9a1998e9ddfa8372362ccd0 + languageName: node + linkType: hard + +"escodegen@npm:^2.0.0, escodegen@npm:^2.1.0": + version: 2.1.0 + resolution: "escodegen@npm:2.1.0" + dependencies: + esprima: ^4.0.1 + estraverse: ^5.2.0 + esutils: ^2.0.2 + source-map: ~0.6.1 + dependenciesMeta: + source-map: + optional: true + bin: + escodegen: bin/escodegen.js + esgenerate: bin/esgenerate.js + checksum: 096696407e161305cd05aebb95134ad176708bc5cb13d0dcc89a5fcbb959b8ed757e7f2591a5f8036f8f4952d4a724de0df14cd419e29212729fa6df5ce16bf6 + languageName: node + linkType: hard + +"eslint-config-prettier@npm:^9.0.0": + version: 9.1.0 + resolution: "eslint-config-prettier@npm:9.1.0" + peerDependencies: + eslint: ">=7.0.0" + bin: + eslint-config-prettier: bin/cli.js + checksum: 9229b768c879f500ee54ca05925f31b0c0bafff3d9f5521f98ff05127356de78c81deb9365c86a5ec4efa990cb72b74df8612ae15965b14136044c73e1f6a907 + languageName: node + linkType: hard + +"eslint-formatter-friendly@npm:^7.0.0": + version: 7.0.0 + resolution: "eslint-formatter-friendly@npm:7.0.0" + dependencies: + "@babel/code-frame": 7.0.0 + chalk: 2.4.2 + extend: 3.0.2 + strip-ansi: 5.2.0 + text-table: 0.2.0 + checksum: e318768ac919993a234d38798544c5cf8e40ce05d6f2c028e4d0a4ac5c503a31609590ed67ceb31c98fae899b87950c6c805ad9e8c3a9060776daecda1bf1545 + languageName: node + linkType: hard + +"eslint-import-resolver-node@npm:^0.3.9": + version: 0.3.9 + resolution: "eslint-import-resolver-node@npm:0.3.9" + dependencies: + debug: ^3.2.7 + is-core-module: ^2.13.0 + resolve: ^1.22.4 + checksum: 439b91271236b452d478d0522a44482e8c8540bf9df9bd744062ebb89ab45727a3acd03366a6ba2bdbcde8f9f718bab7fe8db64688aca75acf37e04eafd25e22 + languageName: node + linkType: hard + +"eslint-module-utils@npm:^2.12.0": + version: 2.12.0 + resolution: "eslint-module-utils@npm:2.12.0" + dependencies: + debug: ^3.2.7 + peerDependenciesMeta: + eslint: + optional: true + checksum: be3ac52e0971c6f46daeb1a7e760e45c7c45f820c8cc211799f85f10f04ccbf7afc17039165d56cb2da7f7ca9cec2b3a777013cddf0b976784b37eb9efa24180 + languageName: node + linkType: hard + +"eslint-plugin-deprecation@npm:^2.0.0": + version: 2.0.0 + resolution: "eslint-plugin-deprecation@npm:2.0.0" + dependencies: + "@typescript-eslint/utils": ^6.0.0 + tslib: ^2.3.1 + tsutils: ^3.21.0 + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: ^4.2.4 || ^5.0.0 + checksum: d79611e902ac419a21e51eab582fcdbcf8170aff820c5e5197e7d242e7ca6bda59c0077d88404970c25993017398dd65c96df7d31a833e332d45dd330935324b + languageName: node + linkType: hard + +"eslint-plugin-import@npm:^2.25.4": + version: 2.31.0 + resolution: "eslint-plugin-import@npm:2.31.0" + dependencies: + "@rtsao/scc": ^1.1.0 + array-includes: ^3.1.8 + array.prototype.findlastindex: ^1.2.5 + array.prototype.flat: ^1.3.2 + array.prototype.flatmap: ^1.3.2 + debug: ^3.2.7 + doctrine: ^2.1.0 + eslint-import-resolver-node: ^0.3.9 + eslint-module-utils: ^2.12.0 + hasown: ^2.0.2 + is-core-module: ^2.15.1 + is-glob: ^4.0.3 + minimatch: ^3.1.2 + object.fromentries: ^2.0.8 + object.groupby: ^1.0.3 + object.values: ^1.2.0 + semver: ^6.3.1 + string.prototype.trimend: ^1.0.8 + tsconfig-paths: ^3.15.0 + peerDependencies: + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 + checksum: b1d2ac268b3582ff1af2a72a2c476eae4d250c100f2e335b6e102036e4a35efa530b80ec578dfc36761fabb34a635b9bf5ab071abe9d4404a4bb054fdf22d415 + languageName: node + linkType: hard + +"eslint-plugin-jest@npm:^28.0.0": + version: 28.10.0 + resolution: "eslint-plugin-jest@npm:28.10.0" + dependencies: + "@typescript-eslint/utils": ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependencies: + "@typescript-eslint/eslint-plugin": ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 + jest: "*" + peerDependenciesMeta: + "@typescript-eslint/eslint-plugin": + optional: true + jest: + optional: true + checksum: d7931a891b11019978bc539ec48fbf1bd82a12d61cd7b592185eaafa3086d1b758a40fac498fa120edeb1ca9cca0df915cb851904c1f19287cc9202e10f5d8d7 + languageName: node + linkType: hard + +"eslint-plugin-jsx-a11y@npm:^6.5.1": + version: 6.10.2 + resolution: "eslint-plugin-jsx-a11y@npm:6.10.2" + dependencies: + aria-query: ^5.3.2 + array-includes: ^3.1.8 + array.prototype.flatmap: ^1.3.2 + ast-types-flow: ^0.0.8 + axe-core: ^4.10.0 + axobject-query: ^4.1.0 + damerau-levenshtein: ^1.0.8 + emoji-regex: ^9.2.2 + hasown: ^2.0.2 + jsx-ast-utils: ^3.3.5 + language-tags: ^1.0.9 + minimatch: ^3.1.2 + object.fromentries: ^2.0.8 + safe-regex-test: ^1.0.3 + string.prototype.includes: ^2.0.1 + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 + checksum: 0cc861398fa26ada61ed5703eef5b335495fcb96253263dcd5e399488ff019a2636372021baacc040e3560d1a34bfcd5d5ad9f1754f44cd0509c956f7df94050 + languageName: node + linkType: hard + +"eslint-plugin-react-hooks@npm:^4.3.0": + version: 4.6.2 + resolution: "eslint-plugin-react-hooks@npm:4.6.2" + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + checksum: 395c433610f59577cfcf3f2e42bcb130436c8a0b3777ac64f441d88c5275f4fcfc89094cedab270f2822daf29af1079151a7a6579a8e9ea8cee66540ba0384c4 + languageName: node + linkType: hard + +"eslint-plugin-react@npm:^7.28.0": + version: 7.37.2 + resolution: "eslint-plugin-react@npm:7.37.2" + dependencies: + array-includes: ^3.1.8 + array.prototype.findlast: ^1.2.5 + array.prototype.flatmap: ^1.3.2 + array.prototype.tosorted: ^1.1.4 + doctrine: ^2.1.0 + es-iterator-helpers: ^1.1.0 + estraverse: ^5.3.0 + hasown: ^2.0.2 + jsx-ast-utils: ^2.4.1 || ^3.0.0 + minimatch: ^3.1.2 + object.entries: ^1.1.8 + object.fromentries: ^2.0.8 + object.values: ^1.2.0 + prop-types: ^15.8.1 + resolve: ^2.0.0-next.5 + semver: ^6.3.1 + string.prototype.matchall: ^4.0.11 + string.prototype.repeat: ^1.0.0 + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + checksum: 7f5203afee7fbe3702b27fdd2b9a3c0ccbbb47d0672f58311b9d8a08dea819c9da4a87c15e8bd508f2562f327a9d29ee8bd9cd189bf758d8dc903de5648b0bfa + languageName: node + linkType: hard + +"eslint-plugin-unused-imports@npm:^3.0.0": + version: 3.2.0 + resolution: "eslint-plugin-unused-imports@npm:3.2.0" + dependencies: + eslint-rule-composer: ^0.3.0 + peerDependencies: + "@typescript-eslint/eslint-plugin": 6 - 7 + eslint: 8 + peerDependenciesMeta: + "@typescript-eslint/eslint-plugin": + optional: true + checksum: e85ae4f3af489294ef5e0969ab904fa87f9fa7c959ca0804f30845438db4aeb0428ddad7ab06a70608e93121626799977241b442fdf126a4d0667be57390c3d6 + languageName: node + linkType: hard + +"eslint-rule-composer@npm:^0.3.0": + version: 0.3.0 + resolution: "eslint-rule-composer@npm:0.3.0" + checksum: c2f57cded8d1c8f82483e0ce28861214347e24fd79fd4144667974cd334d718f4ba05080aaef2399e3bbe36f7d6632865110227e6b176ed6daa2d676df9281b1 + languageName: node + linkType: hard + +"eslint-scope@npm:5.1.1": + version: 5.1.1 + resolution: "eslint-scope@npm:5.1.1" + dependencies: + esrecurse: ^4.3.0 + estraverse: ^4.1.1 + checksum: 47e4b6a3f0cc29c7feedee6c67b225a2da7e155802c6ea13bbef4ac6b9e10c66cd2dcb987867ef176292bf4e64eccc680a49e35e9e9c669f4a02bac17e86abdb + languageName: node + linkType: hard + +"eslint-scope@npm:^7.2.2": + version: 7.2.2 + resolution: "eslint-scope@npm:7.2.2" + dependencies: + esrecurse: ^4.3.0 + estraverse: ^5.2.0 + checksum: ec97dbf5fb04b94e8f4c5a91a7f0a6dd3c55e46bfc7bbcd0e3138c3a76977570e02ed89a1810c778dcd72072ff0e9621ba1379b4babe53921d71e2e4486fda3e + languageName: node + linkType: hard + +"eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": + version: 3.4.3 + resolution: "eslint-visitor-keys@npm:3.4.3" + checksum: 36e9ef87fca698b6fd7ca5ca35d7b2b6eeaaf106572e2f7fd31c12d3bfdaccdb587bba6d3621067e5aece31c8c3a348b93922ab8f7b2cbc6aaab5e1d89040c60 + languageName: node + linkType: hard + +"eslint-visitor-keys@npm:^4.2.0": + version: 4.2.0 + resolution: "eslint-visitor-keys@npm:4.2.0" + checksum: 779c604672b570bb4da84cef32f6abb085ac78379779c1122d7879eade8bb38ae715645324597cf23232d03cef06032c9844d25c73625bc282a5bfd30247e5b5 + languageName: node + linkType: hard + +"eslint-webpack-plugin@npm:^4.0.0": + version: 4.2.0 + resolution: "eslint-webpack-plugin@npm:4.2.0" + dependencies: + "@types/eslint": ^8.56.10 + jest-worker: ^29.7.0 + micromatch: ^4.0.5 + normalize-path: ^3.0.0 + schema-utils: ^4.2.0 + peerDependencies: + eslint: ^8.0.0 || ^9.0.0 + webpack: ^5.0.0 + checksum: 51538d60d0d0f3dd5774a4291af4620884a45a40270e2878c2f7c8dbff3584ef8588ffded8de696a4bbcee45bee219eba442eb503f5eddcc79aefeb4845985ae + languageName: node + linkType: hard + +"eslint@npm:^8.6.0": + version: 8.57.1 + resolution: "eslint@npm:8.57.1" + dependencies: + "@eslint-community/eslint-utils": ^4.2.0 + "@eslint-community/regexpp": ^4.6.1 + "@eslint/eslintrc": ^2.1.4 + "@eslint/js": 8.57.1 + "@humanwhocodes/config-array": ^0.13.0 + "@humanwhocodes/module-importer": ^1.0.1 + "@nodelib/fs.walk": ^1.2.8 + "@ungap/structured-clone": ^1.2.0 + ajv: ^6.12.4 + chalk: ^4.0.0 + cross-spawn: ^7.0.2 + debug: ^4.3.2 + doctrine: ^3.0.0 + escape-string-regexp: ^4.0.0 + eslint-scope: ^7.2.2 + eslint-visitor-keys: ^3.4.3 + espree: ^9.6.1 + esquery: ^1.4.2 + esutils: ^2.0.2 + fast-deep-equal: ^3.1.3 + file-entry-cache: ^6.0.1 + find-up: ^5.0.0 + glob-parent: ^6.0.2 + globals: ^13.19.0 + graphemer: ^1.4.0 + ignore: ^5.2.0 + imurmurhash: ^0.1.4 + is-glob: ^4.0.0 + is-path-inside: ^3.0.3 + js-yaml: ^4.1.0 + json-stable-stringify-without-jsonify: ^1.0.1 + levn: ^0.4.1 + lodash.merge: ^4.6.2 + minimatch: ^3.1.2 + natural-compare: ^1.4.0 + optionator: ^0.9.3 + strip-ansi: ^6.0.1 + text-table: ^0.2.0 + bin: + eslint: bin/eslint.js + checksum: e2489bb7f86dd2011967759a09164e65744ef7688c310bc990612fc26953f34cc391872807486b15c06833bdff737726a23e9b4cdba5de144c311377dc41d91b + languageName: node + linkType: hard + +"esm@npm:^3.2.25": + version: 3.2.25 + resolution: "esm@npm:3.2.25" + checksum: 978aabe2de83541c105605a6d60a26ed8e627ef6bb0a7605fe15a95bbdea6b8348bd045255cb22219c054dd09a81a94823df00843d9e97f42419c92015ce3a64 + languageName: node + linkType: hard + +"espree@npm:^9.6.0, espree@npm:^9.6.1": + version: 9.6.1 + resolution: "espree@npm:9.6.1" + dependencies: + acorn: ^8.9.0 + acorn-jsx: ^5.3.2 + eslint-visitor-keys: ^3.4.1 + checksum: eb8c149c7a2a77b3f33a5af80c10875c3abd65450f60b8af6db1bfcfa8f101e21c1e56a561c6dc13b848e18148d43469e7cd208506238554fb5395a9ea5a1ab9 + languageName: node + linkType: hard + +"esprima@npm:1.2.2": + version: 1.2.2 + resolution: "esprima@npm:1.2.2" + bin: + esparse: ./bin/esparse.js + esvalidate: ./bin/esvalidate.js + checksum: 4f10006f0e315f2f7d8cf6630e465f183512f1ab2e862b11785a133ce37ed1696573deefb5256e510eaa4368342b13b393334477f6ccdcdb8f10e782b0f5e6dc + languageName: node + linkType: hard + +"esprima@npm:^4.0.0, esprima@npm:^4.0.1": + version: 4.0.1 + resolution: "esprima@npm:4.0.1" + bin: + esparse: ./bin/esparse.js + esvalidate: ./bin/esvalidate.js + checksum: b45bc805a613dbea2835278c306b91aff6173c8d034223fa81498c77dcbce3b2931bf6006db816f62eacd9fd4ea975dfd85a5b7f3c6402cfd050d4ca3c13a628 + languageName: node + linkType: hard + +"esquery@npm:^1.4.2": + version: 1.6.0 + resolution: "esquery@npm:1.6.0" + dependencies: + estraverse: ^5.1.0 + checksum: 08ec4fe446d9ab27186da274d979558557fbdbbd10968fa9758552482720c54152a5640e08b9009e5a30706b66aba510692054d4129d32d0e12e05bbc0b96fb2 + languageName: node + linkType: hard + +"esrecurse@npm:^4.3.0": + version: 4.3.0 + resolution: "esrecurse@npm:4.3.0" + dependencies: + estraverse: ^5.2.0 + checksum: ebc17b1a33c51cef46fdc28b958994b1dc43cd2e86237515cbc3b4e5d2be6a811b2315d0a1a4d9d340b6d2308b15322f5c8291059521cc5f4802f65e7ec32837 + languageName: node + linkType: hard + +"estraverse@npm:^4.1.1, estraverse@npm:^4.2.0": + version: 4.3.0 + resolution: "estraverse@npm:4.3.0" + checksum: a6299491f9940bb246124a8d44b7b7a413a8336f5436f9837aaa9330209bd9ee8af7e91a654a3545aee9c54b3308e78ee360cef1d777d37cfef77d2fa33b5827 + languageName: node + linkType: hard + +"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0, estraverse@npm:^5.3.0": + version: 5.3.0 + resolution: "estraverse@npm:5.3.0" + checksum: 072780882dc8416ad144f8fe199628d2b3e7bbc9989d9ed43795d2c90309a2047e6bc5979d7e2322a341163d22cfad9e21f4110597fe487519697389497e4e2b + languageName: node + linkType: hard + +"estree-walker@npm:^0.6.1": + version: 0.6.1 + resolution: "estree-walker@npm:0.6.1" + checksum: 9d6f82a4921f11eec18f8089fb3cce6e53bcf45a8e545c42a2674d02d055fb30f25f90495f8be60803df6c39680c80dcee7f944526867eb7aa1fc9254883b23d + languageName: node + linkType: hard + +"estree-walker@npm:^2.0.1, estree-walker@npm:^2.0.2": + version: 2.0.2 + resolution: "estree-walker@npm:2.0.2" + checksum: 6151e6f9828abe2259e57f5fd3761335bb0d2ebd76dc1a01048ccee22fabcfef3c0859300f6d83ff0d1927849368775ec5a6d265dde2f6de5a1be1721cd94efc + languageName: node + linkType: hard + +"esutils@npm:^2.0.2": + version: 2.0.3 + resolution: "esutils@npm:2.0.3" + checksum: 22b5b08f74737379a840b8ed2036a5fb35826c709ab000683b092d9054e5c2a82c27818f12604bfc2a9a76b90b6834ef081edbc1c7ae30d1627012e067c6ec87 + languageName: node + linkType: hard + +"etag@npm:~1.8.1": + version: 1.8.1 + resolution: "etag@npm:1.8.1" + checksum: 571aeb3dbe0f2bbd4e4fadbdb44f325fc75335cd5f6f6b6a091e6a06a9f25ed5392f0863c5442acb0646787446e816f13cbfc6edce5b07658541dff573cab1ff + languageName: node + linkType: hard + +"event-stream@npm:=3.3.4": + version: 3.3.4 + resolution: "event-stream@npm:3.3.4" + dependencies: + duplexer: ~0.1.1 + from: ~0 + map-stream: ~0.1.0 + pause-stream: 0.0.11 + split: 0.3 + stream-combiner: ~0.0.4 + through: ~2.3.1 + checksum: 80b467820b6daf824d9fb4345d2daf115a056e5c104463f2e98534e92d196a27f2df5ea2aa085624db26f4c45698905499e881d13bc7c01f7a13eac85be72a22 + languageName: node + linkType: hard + +"event-target-shim@npm:^5.0.0": + version: 5.0.1 + resolution: "event-target-shim@npm:5.0.1" + checksum: 1ffe3bb22a6d51bdeb6bf6f7cf97d2ff4a74b017ad12284cc9e6a279e727dc30a5de6bb613e5596ff4dc3e517841339ad09a7eec44266eccb1aa201a30448166 + languageName: node + linkType: hard + +"eventemitter3@npm:^3.1.0": + version: 3.1.2 + resolution: "eventemitter3@npm:3.1.2" + checksum: 81e4e82b8418f5cfd986d2b4a2fa5397ac4eb8134e09bcb47005545e22fdf8e9e61d5c053d34651112245aae411bdfe6d0ad5511da0400743fef5fc38bfcfbe3 + languageName: node + linkType: hard + +"eventemitter3@npm:^4.0.0, eventemitter3@npm:^4.0.4": + version: 4.0.7 + resolution: "eventemitter3@npm:4.0.7" + checksum: 1875311c42fcfe9c707b2712c32664a245629b42bb0a5a84439762dd0fd637fc54d078155ea83c2af9e0323c9ac13687e03cfba79b03af9f40c89b4960099374 + languageName: node + linkType: hard + +"events@npm:3.3.0, events@npm:^3.0.0, events@npm:^3.2.0, events@npm:^3.3.0": + version: 3.3.0 + resolution: "events@npm:3.3.0" + checksum: f6f487ad2198aa41d878fa31452f1a3c00958f46e9019286ff4787c84aac329332ab45c9cdc8c445928fc6d7ded294b9e005a7fce9426488518017831b272780 + languageName: node + linkType: hard + +"evp_bytestokey@npm:^1.0.0, evp_bytestokey@npm:^1.0.3": + version: 1.0.3 + resolution: "evp_bytestokey@npm:1.0.3" + dependencies: + md5.js: ^1.3.4 + node-gyp: latest + safe-buffer: ^5.1.1 + checksum: ad4e1577f1a6b721c7800dcc7c733fe01f6c310732bb5bf2240245c2a5b45a38518b91d8be2c610611623160b9d1c0e91f1ce96d639f8b53e8894625cf20fa45 + languageName: node + linkType: hard + +"execa@npm:5.1.1, execa@npm:^5.0.0": + version: 5.1.1 + resolution: "execa@npm:5.1.1" + dependencies: + cross-spawn: ^7.0.3 + get-stream: ^6.0.0 + human-signals: ^2.1.0 + is-stream: ^2.0.0 + merge-stream: ^2.0.0 + npm-run-path: ^4.0.1 + onetime: ^5.1.2 + signal-exit: ^3.0.3 + strip-final-newline: ^2.0.0 + checksum: fba9022c8c8c15ed862847e94c252b3d946036d7547af310e344a527e59021fd8b6bb0723883ea87044dc4f0201f949046993124a42ccb0855cae5bf8c786343 + languageName: node + linkType: hard + +"exit@npm:^0.1.2": + version: 0.1.2 + resolution: "exit@npm:0.1.2" + checksum: abc407f07a875c3961e4781dfcb743b58d6c93de9ab263f4f8c9d23bb6da5f9b7764fc773f86b43dd88030444d5ab8abcb611cb680fba8ca075362b77114bba3 + languageName: node + linkType: hard + +"expand-template@npm:^2.0.3": + version: 2.0.3 + resolution: "expand-template@npm:2.0.3" + checksum: 588c19847216421ed92befb521767b7018dc88f88b0576df98cb242f20961425e96a92cbece525ef28cc5becceae5d544ae0f5b9b5e2aa05acb13716ca5b3099 + languageName: node + linkType: hard + +"expand-tilde@npm:^2.0.0, expand-tilde@npm:^2.0.2": + version: 2.0.2 + resolution: "expand-tilde@npm:2.0.2" + dependencies: + homedir-polyfill: ^1.0.1 + checksum: 2efe6ed407d229981b1b6ceb552438fbc9e5c7d6a6751ad6ced3e0aa5cf12f0b299da695e90d6c2ac79191b5c53c613e508f7149e4573abfbb540698ddb7301a + languageName: node + linkType: hard + +"expect@npm:^29.0.0, expect@npm:^29.7.0": + version: 29.7.0 + resolution: "expect@npm:29.7.0" + dependencies: + "@jest/expect-utils": ^29.7.0 + jest-get-type: ^29.6.3 + jest-matcher-utils: ^29.7.0 + jest-message-util: ^29.7.0 + jest-util: ^29.7.0 + checksum: 9257f10288e149b81254a0fda8ffe8d54a7061cd61d7515779998b012579d2b8c22354b0eb901daf0145f347403da582f75f359f4810c007182ad3fb318b5c0c + languageName: node + linkType: hard + +"expiry-map@npm:^2.0.0": + version: 2.0.0 + resolution: "expiry-map@npm:2.0.0" + dependencies: + map-age-cleaner: ^0.2.0 + checksum: 9be8662e1a5c1084fb6d0ddc5402658dd06101c330454062b2f5efbf1477259d272e54ec16663d7d12a93d08ed510535781c36acb214696c5bc3a690a02a7a9d + languageName: node + linkType: hard + +"exponential-backoff@npm:^3.1.1": + version: 3.1.1 + resolution: "exponential-backoff@npm:3.1.1" + checksum: 3d21519a4f8207c99f7457287291316306255a328770d320b401114ec8481986e4e467e854cb9914dd965e0a1ca810a23ccb559c642c88f4c7f55c55778a9b48 + languageName: node + linkType: hard + +"express-openapi-validator@npm:^5.0.4": + version: 5.3.9 + resolution: "express-openapi-validator@npm:5.3.9" + dependencies: + "@apidevtools/json-schema-ref-parser": ^11.7.0 + "@types/multer": ^1.4.12 + ajv: ^8.17.1 + ajv-draft-04: ^1.0.0 + ajv-formats: ^2.1.1 + content-type: ^1.0.5 + json-schema-traverse: ^1.0.0 + lodash.clonedeep: ^4.5.0 + lodash.get: ^4.4.2 + media-typer: ^1.1.0 + multer: ^1.4.5-lts.1 + ono: ^7.1.3 + path-to-regexp: ^8.1.0 + peerDependencies: + express: "*" + checksum: 0469b383b769f070dfad9c9148b18857c5aaa9aa14c596e1ada155dac63e1c355e455d42f3c81af62c4aefd3db4ad8b892d34a432e170e4eb7af73d7dbd2f644 + languageName: node + linkType: hard + +"express-promise-router@npm:^4.1.0": + version: 4.1.1 + resolution: "express-promise-router@npm:4.1.1" + dependencies: + is-promise: ^4.0.0 + lodash.flattendeep: ^4.0.0 + methods: ^1.0.0 + peerDependencies: + "@types/express": ^4.0.0 + express: ^4.0.0 + peerDependenciesMeta: + "@types/express": + optional: true + checksum: e69ee7eb2c70470d5be71d34cd9275c26aae157c1ef16a21ecf53141e512fd4a6b5a68db89b30f745df941518505d00ec0a5e13f0becbd53ad63ffce3ed885f3 + languageName: node + linkType: hard + +"express-session@npm:^1.17.1": + version: 1.18.1 + resolution: "express-session@npm:1.18.1" + dependencies: + cookie: 0.7.2 + cookie-signature: 1.0.7 + debug: 2.6.9 + depd: ~2.0.0 + on-headers: ~1.0.2 + parseurl: ~1.3.3 + safe-buffer: 5.2.1 + uid-safe: ~2.1.5 + checksum: e712cb3399300d9e300b51769ee3e81da6a4a54acc39137945134bf61a452f27ee9afde337f3c0f300457a88b3a12d0b5c711625684d7c8d998e9d2bd34d9e18 + languageName: node + linkType: hard + +"express@npm:^4.14.0, express@npm:^4.17.1, express@npm:^4.18.2, express@npm:^4.19.2, express@npm:^4.21.2": + version: 4.21.2 + resolution: "express@npm:4.21.2" + dependencies: + accepts: ~1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.3 + content-disposition: 0.5.4 + content-type: ~1.0.4 + cookie: 0.7.1 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: ~2.0.0 + escape-html: ~1.0.3 + etag: ~1.8.1 + finalhandler: 1.3.1 + fresh: 0.5.2 + http-errors: 2.0.0 + merge-descriptors: 1.0.3 + methods: ~1.1.2 + on-finished: 2.4.1 + parseurl: ~1.3.3 + path-to-regexp: 0.1.12 + proxy-addr: ~2.0.7 + qs: 6.13.0 + range-parser: ~1.2.1 + safe-buffer: 5.2.1 + send: 0.19.0 + serve-static: 1.16.2 + setprototypeof: 1.2.0 + statuses: 2.0.1 + type-is: ~1.6.18 + utils-merge: 1.0.1 + vary: ~1.1.2 + checksum: 3aef1d355622732e20b8f3a7c112d4391d44e2131f4f449e1f273a309752a41abfad714e881f177645517cbe29b3ccdc10b35e7e25c13506114244a5b72f549d + languageName: node + linkType: hard + +"extend@npm:3.0.2, extend@npm:^3.0.0, extend@npm:^3.0.2, extend@npm:~3.0.2": + version: 3.0.2 + resolution: "extend@npm:3.0.2" + checksum: a50a8309ca65ea5d426382ff09f33586527882cf532931cb08ca786ea3146c0553310bda688710ff61d7668eba9f96b923fe1420cdf56a2c3eaf30fcab87b515 + languageName: node + linkType: hard + +"extendable-error@npm:^0.1.5": + version: 0.1.7 + resolution: "extendable-error@npm:0.1.7" + checksum: 80478be7429a1675d2085f701239796bab3230ed6f2fb1b138fbabec24bea6516b7c5ceb6e9c209efcc9c089948d93715703845653535f8e8a49655066a9255e + languageName: node + linkType: hard + +"external-editor@npm:^3.0.3, external-editor@npm:^3.1.0": + version: 3.1.0 + resolution: "external-editor@npm:3.1.0" + dependencies: + chardet: ^0.7.0 + iconv-lite: ^0.4.24 + tmp: ^0.0.33 + checksum: 1c2a616a73f1b3435ce04030261bed0e22d4737e14b090bb48e58865da92529c9f2b05b893de650738d55e692d071819b45e1669259b2b354bc3154d27a698c7 + languageName: node + linkType: hard + +"extract-files@npm:^11.0.0": + version: 11.0.0 + resolution: "extract-files@npm:11.0.0" + checksum: 39ebd92772e9a1e30d1e3112fb7db85d353c8243640635668b615ac1d605ceb79fbb13d17829dd308993ef37bb189ad99817f79ab164ae95c9bb3df9f440bd16 + languageName: node + linkType: hard + +"extsprintf@npm:1.3.0": + version: 1.3.0 + resolution: "extsprintf@npm:1.3.0" + checksum: cee7a4a1e34cffeeec18559109de92c27517e5641991ec6bab849aa64e3081022903dd53084f2080d0d2530803aa5ee84f1e9de642c365452f9e67be8f958ce2 + languageName: node + linkType: hard + +"extsprintf@npm:^1.2.0": + version: 1.4.1 + resolution: "extsprintf@npm:1.4.1" + checksum: a2f29b241914a8d2bad64363de684821b6b1609d06ae68d5b539e4de6b28659715b5bea94a7265201603713b7027d35399d10b0548f09071c5513e65e8323d33 + languageName: node + linkType: hard + +"fast-copy@npm:^3.0.2": + version: 3.0.2 + resolution: "fast-copy@npm:3.0.2" + checksum: 47f584bcede08ab3198559d3e0e093a547d567715b86be2198da6e3366c3c73eed550d97b86f9fb90dae179982b89c15d68187def960f522cdce14bacdfc6184 + languageName: node + linkType: hard + +"fast-decode-uri-component@npm:^1.0.1": + version: 1.0.1 + resolution: "fast-decode-uri-component@npm:1.0.1" + checksum: 427a48fe0907e76f0e9a2c228e253b4d8a8ab21d130ee9e4bb8339c5ba4086235cf9576831f7b20955a752eae4b525a177ff9d5825dd8d416e7726939194fbee + languageName: node + linkType: hard + +"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": + version: 3.1.3 + resolution: "fast-deep-equal@npm:3.1.3" + checksum: e21a9d8d84f53493b6aa15efc9cfd53dd5b714a1f23f67fb5dc8f574af80df889b3bce25dc081887c6d25457cce704e636395333abad896ccdec03abaf1f3f9d + languageName: node + linkType: hard + +"fast-fifo@npm:^1.2.0, fast-fifo@npm:^1.3.2": + version: 1.3.2 + resolution: "fast-fifo@npm:1.3.2" + checksum: 6bfcba3e4df5af7be3332703b69a7898a8ed7020837ec4395bb341bd96cc3a6d86c3f6071dd98da289618cf2234c70d84b2a6f09a33dd6f988b1ff60d8e54275 + languageName: node + linkType: hard + +"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2": + version: 3.3.2 + resolution: "fast-glob@npm:3.3.2" + dependencies: + "@nodelib/fs.stat": ^2.0.2 + "@nodelib/fs.walk": ^1.2.3 + glob-parent: ^5.1.2 + merge2: ^1.3.0 + micromatch: ^4.0.4 + checksum: 900e4979f4dbc3313840078419245621259f349950411ca2fa445a2f9a1a6d98c3b5e7e0660c5ccd563aa61abe133a21765c6c0dec8e57da1ba71d8000b05ec1 + languageName: node + linkType: hard + +"fast-json-parse@npm:^1.0.3": + version: 1.0.3 + resolution: "fast-json-parse@npm:1.0.3" + checksum: c19117c56ec18a9aa133c8ebf450c99d1037117e47a3cb9aff91b60580ba48d0fd8484b696c26749a1b9cb4914084177b3fa9ebef72063a74dee7d9ead987603 + languageName: node + linkType: hard + +"fast-json-patch@npm:^3.0.0-1, fast-json-patch@npm:^3.1.0, fast-json-patch@npm:^3.1.1": + version: 3.1.1 + resolution: "fast-json-patch@npm:3.1.1" + checksum: c4525b61b2471df60d4b025b4118b036d99778a93431aa44d1084218182841d82ce93056f0f3bbd731a24e6a8e69820128adf1873eb2199a26c62ef58d137833 + languageName: node + linkType: hard + +"fast-json-stable-stringify@npm:^2.0.0, fast-json-stable-stringify@npm:^2.1.0": + version: 2.1.0 + resolution: "fast-json-stable-stringify@npm:2.1.0" + checksum: b191531e36c607977e5b1c47811158733c34ccb3bfde92c44798929e9b4154884378536d26ad90dfecd32e1ffc09c545d23535ad91b3161a27ddbb8ebe0cbecb + languageName: node + linkType: hard + +"fast-levenshtein@npm:^2.0.6, fast-levenshtein@npm:~2.0.6": + version: 2.0.6 + resolution: "fast-levenshtein@npm:2.0.6" + checksum: 92cfec0a8dfafd9c7a15fba8f2cc29cd0b62b85f056d99ce448bbcd9f708e18ab2764bda4dd5158364f4145a7c72788538994f0d1787b956ef0d1062b0f7c24c + languageName: node + linkType: hard + +"fast-memoize@npm:^2.5.2": + version: 2.5.2 + resolution: "fast-memoize@npm:2.5.2" + checksum: 79fa759719ba4eac7e8c22fb3b0eb3f18f4a31e218c00b1eb4a5b53c5781921133a6b84472d59ec5a6ea8f26ad57b43cd99a350c0547ccce51489bc9a5f0b28d + languageName: node + linkType: hard + +"fast-querystring@npm:^1.1.1": + version: 1.1.2 + resolution: "fast-querystring@npm:1.1.2" + dependencies: + fast-decode-uri-component: ^1.0.1 + checksum: 7149f82ee9ac39a9c08c7ffe435b9f6deade76ae5e3675fe1835720513e8c4bc541e666b4b7b1c0c07e08f369dcf4828d00f2bee39889a90a168e1439cf27b0b + languageName: node + linkType: hard + +"fast-redact@npm:^2.0.0": + version: 2.1.0 + resolution: "fast-redact@npm:2.1.0" + checksum: ac096a93b44d6348fd6da4f289885465d2601fa5d37956f131394592af2c54d7af06caf177cd874a315253ee36542abc8008e3a2aee5809a20691788e3d04dd8 + languageName: node + linkType: hard + +"fast-safe-stringify@npm:2.1.1, fast-safe-stringify@npm:^2.0.6, fast-safe-stringify@npm:^2.0.7, fast-safe-stringify@npm:^2.1.1": + version: 2.1.1 + resolution: "fast-safe-stringify@npm:2.1.1" + checksum: a851cbddc451745662f8f00ddb622d6766f9bd97642dabfd9a405fb0d646d69fc0b9a1243cbf67f5f18a39f40f6fa821737651ff1bceeba06c9992ca2dc5bd3d + languageName: node + linkType: hard + +"fast-shallow-equal@npm:^1.0.0": + version: 1.0.0 + resolution: "fast-shallow-equal@npm:1.0.0" + checksum: ae89318ce43c0c46410d9511ac31520d59cfe675bad3d0b1cb5f900b2d635943d788b8370437178e91ae0d0412decc394229c03e69925ade929a8c02da241610 + languageName: node + linkType: hard + +"fast-uri@npm:^3.0.1": + version: 3.0.3 + resolution: "fast-uri@npm:3.0.3" + checksum: c52e6c86465f5c240e84a4485fb001088cc743d261a4b54b0050ce4758b1648bdbe53da1328ef9620149dca1435e3de64184f226d7c0a3656cb5837b3491e149 + languageName: node + linkType: hard + +"fast-xml-parser@npm:4.4.1": + version: 4.4.1 + resolution: "fast-xml-parser@npm:4.4.1" + dependencies: + strnum: ^1.0.5 + bin: + fxparser: src/cli/cli.js + checksum: f440c01cd141b98789ae777503bcb6727393296094cc82924ae9f88a5b971baa4eec7e65306c7e07746534caa661fc83694ff437d9012dc84dee39dfbfaab947 + languageName: node + linkType: hard + +"fast-xml-parser@npm:^4.4.1, fast-xml-parser@npm:^4.5.0": + version: 4.5.1 + resolution: "fast-xml-parser@npm:4.5.1" + dependencies: + strnum: ^1.0.5 + bin: + fxparser: src/cli/cli.js + checksum: aab32d7f08a95b20f9ecdc2d769531a9dc454faf12740873972f8169c04ab9335ac5df1029ebfe829a01ddbb0ec60572cb7769d6be2409e95a9be8fc6a86e92c + languageName: node + linkType: hard + +"fastest-stable-stringify@npm:^2.0.2": + version: 2.0.2 + resolution: "fastest-stable-stringify@npm:2.0.2" + checksum: 5e2cb166c7bb6f16ac25a1e4be17f6b8d2923234c80739e12c9d21dea376b3128b2c63f90aa2aae7746cfec4dcf188d1d4eb6a964bb484ca133f17c8e9acfacc + languageName: node + linkType: hard + +"fastq@npm:^1.6.0": + version: 1.17.1 + resolution: "fastq@npm:1.17.1" + dependencies: + reusify: ^1.0.4 + checksum: a8c5b26788d5a1763f88bae56a8ddeee579f935a831c5fe7a8268cea5b0a91fbfe705f612209e02d639b881d7b48e461a50da4a10cfaa40da5ca7cc9da098d88 + languageName: node + linkType: hard + +"fault@npm:^1.0.0": + version: 1.0.4 + resolution: "fault@npm:1.0.4" + dependencies: + format: ^0.2.0 + checksum: 5ac610d8b09424e0f2fa8cf913064372f2ee7140a203a79957f73ed557c0e79b1a3d096064d7f40bde8132a69204c1fe25ec23634c05c6da2da2039cff26c4e7 + languageName: node + linkType: hard + +"faye-websocket@npm:^0.11.3": + version: 0.11.4 + resolution: "faye-websocket@npm:0.11.4" + dependencies: + websocket-driver: ">=0.5.1" + checksum: d49a62caf027f871149fc2b3f3c7104dc6d62744277eb6f9f36e2d5714e847d846b9f7f0d0b7169b25a012e24a594cde11a93034b30732e4c683f20b8a5019fa + languageName: node + linkType: hard + +"fb-watchman@npm:^2.0.0": + version: 2.0.2 + resolution: "fb-watchman@npm:2.0.2" + dependencies: + bser: 2.1.1 + checksum: b15a124cef28916fe07b400eb87cbc73ca082c142abf7ca8e8de6af43eca79ca7bd13eb4d4d48240b3bd3136eaac40d16e42d6edf87a8e5d1dd8070626860c78 + languageName: node + linkType: hard + +"fecha@npm:^4.2.0": + version: 4.2.3 + resolution: "fecha@npm:4.2.3" + checksum: f94e2fb3acf5a7754165d04549460d3ae6c34830394d20c552197e3e000035d69732d74af04b9bed3283bf29fe2a9ebdcc0085e640b0be3cc3658b9726265e31 + languageName: node + linkType: hard + +"figures@npm:^3.0.0": + version: 3.2.0 + resolution: "figures@npm:3.2.0" + dependencies: + escape-string-regexp: ^1.0.5 + checksum: 85a6ad29e9aca80b49b817e7c89ecc4716ff14e3779d9835af554db91bac41c0f289c418923519392a1e582b4d10482ad282021330cd045bb7b80c84152f2a2b + languageName: node + linkType: hard + +"file-entry-cache@npm:^6.0.1": + version: 6.0.1 + resolution: "file-entry-cache@npm:6.0.1" + dependencies: + flat-cache: ^3.0.4 + checksum: f49701feaa6314c8127c3c2f6173cfefff17612f5ed2daaafc6da13b5c91fd43e3b2a58fd0d63f9f94478a501b167615931e7200e31485e320f74a33885a9c74 + languageName: node + linkType: hard + +"file-selector@npm:^2.1.0": + version: 2.1.2 + resolution: "file-selector@npm:2.1.2" + dependencies: + tslib: ^2.7.0 + checksum: 0e7c5233ca7d33a05eb99236e8cfc843ea304335589d954393aeb7c5b7595f30be23c79173d28180e728b6eb441cd1dd355d6ad7fbb03b8e4f37d20e3d5c3184 + languageName: node + linkType: hard + +"file-type@npm:^16.5.4": + version: 16.5.4 + resolution: "file-type@npm:16.5.4" + dependencies: + readable-web-to-node-stream: ^3.0.0 + strtok3: ^6.2.4 + token-types: ^4.1.1 + checksum: d983c0f36491c57fcb6cc70fcb02c36d6b53f312a15053263e1924e28ca8314adf0db32170801ad777f09432c32155f31715ceaee66310947731588120d7ec27 + languageName: node + linkType: hard + +"file-uri-to-path@npm:1.0.0": + version: 1.0.0 + resolution: "file-uri-to-path@npm:1.0.0" + checksum: b648580bdd893a008c92c7ecc96c3ee57a5e7b6c4c18a9a09b44fb5d36d79146f8e442578bc0e173dc027adf3987e254ba1dfd6e3ec998b7c282873010502144 + languageName: node + linkType: hard + +"filesize@npm:^8.0.6": + version: 8.0.7 + resolution: "filesize@npm:8.0.7" + checksum: 8603d27c5287b984cb100733640645e078f5f5ad65c6d913173e01fb99e09b0747828498fd86647685ccecb69be31f3587b9739ab1e50732116b2374aff4cbf9 + languageName: node + linkType: hard + +"fill-range@npm:^7.1.1": + version: 7.1.1 + resolution: "fill-range@npm:7.1.1" + dependencies: + to-regex-range: ^5.0.1 + checksum: b4abfbca3839a3d55e4ae5ec62e131e2e356bf4859ce8480c64c4876100f4df292a63e5bb1618e1d7460282ca2b305653064f01654474aa35c68000980f17798 + languageName: node + linkType: hard + +"finalhandler@npm:1.1.2": + version: 1.1.2 + resolution: "finalhandler@npm:1.1.2" + dependencies: + debug: 2.6.9 + encodeurl: ~1.0.2 + escape-html: ~1.0.3 + on-finished: ~2.3.0 + parseurl: ~1.3.3 + statuses: ~1.5.0 + unpipe: ~1.0.0 + checksum: 617880460c5138dd7ccfd555cb5dde4d8f170f4b31b8bd51e4b646bb2946c30f7db716428a1f2882d730d2b72afb47d1f67cc487b874cb15426f95753a88965e + languageName: node + linkType: hard + +"finalhandler@npm:1.3.1": + version: 1.3.1 + resolution: "finalhandler@npm:1.3.1" + dependencies: + debug: 2.6.9 + encodeurl: ~2.0.0 + escape-html: ~1.0.3 + on-finished: 2.4.1 + parseurl: ~1.3.3 + statuses: 2.0.1 + unpipe: ~1.0.0 + checksum: a8c58cd97c9cd47679a870f6833a7b417043f5a288cd6af6d0f49b476c874a506100303a128b6d3b654c3d74fa4ff2ffed68a48a27e8630cda5c918f2977dcf4 + languageName: node + linkType: hard + +"find-file-up@npm:^2.0.1": + version: 2.0.1 + resolution: "find-file-up@npm:2.0.1" + dependencies: + resolve-dir: ^1.0.1 + checksum: dfe820bfb80e75bed5dd5080057858c0ad2393e1438c48a3bb682663e9ecdcfbe3224ed4768bfedd00776800b4ae76bc8953d250d15ae3feabf381d2c6d04268 + languageName: node + linkType: hard + +"find-pkg@npm:2.0.0": + version: 2.0.0 + resolution: "find-pkg@npm:2.0.0" + dependencies: + find-file-up: ^2.0.1 + checksum: 44785204c8bbbdfeaece6b834ba81a35163421c30e20f531281d26e6b5890663d7ac884b82a9aebf6ce23e479336cd6f70ea5597da35495c16abdeba2fd4f845 + languageName: node + linkType: hard + +"find-root@npm:^1.1.0": + version: 1.1.0 + resolution: "find-root@npm:1.1.0" + checksum: b2a59fe4b6c932eef36c45a048ae8f93c85640212ebe8363164814990ee20f154197505965f3f4f102efc33bfb1cbc26fd17c4a2fc739ebc51b886b137cbefaf + languageName: node + linkType: hard + +"find-up@npm:^3.0.0": + version: 3.0.0 + resolution: "find-up@npm:3.0.0" + dependencies: + locate-path: ^3.0.0 + checksum: 38eba3fe7a66e4bc7f0f5a1366dc25508b7cfc349f852640e3678d26ad9a6d7e2c43eff0a472287de4a9753ef58f066a0ea892a256fa3636ad51b3fe1e17fae9 + languageName: node + linkType: hard + +"find-up@npm:^4.0.0, find-up@npm:^4.1.0": + version: 4.1.0 + resolution: "find-up@npm:4.1.0" + dependencies: + locate-path: ^5.0.0 + path-exists: ^4.0.0 + checksum: 4c172680e8f8c1f78839486e14a43ef82e9decd0e74145f40707cc42e7420506d5ec92d9a11c22bd2c48fb0c384ea05dd30e10dd152fefeec6f2f75282a8b844 + languageName: node + linkType: hard + +"find-up@npm:^5.0.0": + version: 5.0.0 + resolution: "find-up@npm:5.0.0" + dependencies: + locate-path: ^6.0.0 + path-exists: ^4.0.0 + checksum: 07955e357348f34660bde7920783204ff5a26ac2cafcaa28bace494027158a97b9f56faaf2d89a6106211a8174db650dd9f503f9c0d526b1202d5554a00b9095 + languageName: node + linkType: hard + +"flat-cache@npm:^3.0.4": + version: 3.2.0 + resolution: "flat-cache@npm:3.2.0" + dependencies: + flatted: ^3.2.9 + keyv: ^4.5.3 + rimraf: ^3.0.2 + checksum: e7e0f59801e288b54bee5cb9681e9ee21ee28ef309f886b312c9d08415b79fc0f24ac842f84356ce80f47d6a53de62197ce0e6e148dc42d5db005992e2a756ec + languageName: node + linkType: hard + +"flatstr@npm:^1.0.12": + version: 1.0.12 + resolution: "flatstr@npm:1.0.12" + checksum: e1bb562c94b119e958bf37e55738b172b5f8aaae6532b9660ecd877779f8559dbbc89613ba6b29ccc13447e14c59277d41450f785cf75c30df9fce62f459e9a8 + languageName: node + linkType: hard + +"flatted@npm:3.3.2, flatted@npm:^3.2.7, flatted@npm:^3.2.9": + version: 3.3.2 + resolution: "flatted@npm:3.3.2" + checksum: ac3c159742e01d0e860a861164bcfd35bb567ccbebb8a0dd041e61cf3c64a435b917dd1e7ed1c380c2ebca85735fb16644485ec33665bc6aafc3b316aa1eed44 + languageName: node + linkType: hard + +"fn.name@npm:1.x.x": + version: 1.1.0 + resolution: "fn.name@npm:1.1.0" + checksum: e357144f48cfc9a7f52a82bbc6c23df7c8de639fce049cac41d41d62cabb740cdb9f14eddc6485e29c933104455bdd7a69bb14a9012cef9cd4fa252a4d0cf293 + languageName: node + linkType: hard + +"focus-trap@npm:7.6.2": + version: 7.6.2 + resolution: "focus-trap@npm:7.6.2" + dependencies: + tabbable: ^6.2.0 + checksum: b5873f8e506d3f466d9823d2f144612d3938f3c74c3be3db922052e5e54fd41a3a46889f8219f16f60d1ce5aff9e0a7fef9dea03ca0da96820c2ea36243236f7 + languageName: node + linkType: hard + +"follow-redirects@npm:^1.0.0, follow-redirects@npm:^1.15.6": + version: 1.15.9 + resolution: "follow-redirects@npm:1.15.9" + peerDependenciesMeta: + debug: + optional: true + checksum: 859e2bacc7a54506f2bf9aacb10d165df78c8c1b0ceb8023f966621b233717dab56e8d08baadc3ad3b9db58af290413d585c999694b7c146aaf2616340c3d2a6 + languageName: node + linkType: hard + +"for-each@npm:^0.3.3": + version: 0.3.3 + resolution: "for-each@npm:0.3.3" + dependencies: + is-callable: ^1.1.3 + checksum: 6c48ff2bc63362319c65e2edca4a8e1e3483a2fabc72fbe7feaf8c73db94fc7861bd53bc02c8a66a0c1dd709da6b04eec42e0abdd6b40ce47305ae92a25e5d28 + languageName: node + linkType: hard + +"foreach@npm:^2.0.4": + version: 2.0.6 + resolution: "foreach@npm:2.0.6" + checksum: f7b68494545ee41cbd0b0425ebf5386c265dc38ef2a9b0d5cd91a1b82172e939b4cf9387f8e0ebf6db4e368fc79ed323f2198424d5c774515ac3ed9b08901c0e + languageName: node + linkType: hard + +"foreground-child@npm:^3.1.0": + version: 3.3.0 + resolution: "foreground-child@npm:3.3.0" + dependencies: + cross-spawn: ^7.0.0 + signal-exit: ^4.0.1 + checksum: 1989698488f725b05b26bc9afc8a08f08ec41807cd7b92ad85d96004ddf8243fd3e79486b8348c64a3011ae5cc2c9f0936af989e1f28339805d8bc178a75b451 + languageName: node + linkType: hard + +"forever-agent@npm:~0.6.1": + version: 0.6.1 + resolution: "forever-agent@npm:0.6.1" + checksum: 766ae6e220f5fe23676bb4c6a99387cec5b7b62ceb99e10923376e27bfea72f3c3aeec2ba5f45f3f7ba65d6616965aa7c20b15002b6860833bb6e394dea546a8 + languageName: node + linkType: hard + +"fork-ts-checker-webpack-plugin@npm:^6.5.0": + version: 6.5.3 + resolution: "fork-ts-checker-webpack-plugin@npm:6.5.3" + dependencies: + "@babel/code-frame": ^7.8.3 + "@types/json-schema": ^7.0.5 + chalk: ^4.1.0 + chokidar: ^3.4.2 + cosmiconfig: ^6.0.0 + deepmerge: ^4.2.2 + fs-extra: ^9.0.0 + glob: ^7.1.6 + memfs: ^3.1.2 + minimatch: ^3.0.4 + schema-utils: 2.7.0 + semver: ^7.3.2 + tapable: ^1.0.0 + peerDependencies: + eslint: ">= 6" + typescript: ">= 2.7" + vue-template-compiler: "*" + webpack: ">= 4" + peerDependenciesMeta: + eslint: + optional: true + vue-template-compiler: + optional: true + checksum: 9732a49bfeed8fc23e6e8a59795fa7c238edeba91040a9b520db54b4d316dda27f9f1893d360e296fd0ad8930627d364417d28a8c7007fba60cc730ebfce4956 + languageName: node + linkType: hard + +"fork-ts-checker-webpack-plugin@npm:^9.0.0": + version: 9.0.2 + resolution: "fork-ts-checker-webpack-plugin@npm:9.0.2" + dependencies: + "@babel/code-frame": ^7.16.7 + chalk: ^4.1.2 + chokidar: ^3.5.3 + cosmiconfig: ^8.2.0 + deepmerge: ^4.2.2 + fs-extra: ^10.0.0 + memfs: ^3.4.1 + minimatch: ^3.0.4 + node-abort-controller: ^3.0.1 + schema-utils: ^3.1.1 + semver: ^7.3.5 + tapable: ^2.2.1 + peerDependencies: + typescript: ">3.6.0" + webpack: ^5.11.0 + checksum: 136a87bfa36cb6ca27d2ae0feb3c6cabe0de734c1c1ed38f95b71ddb3eb4b6c461829a2dbb04f18f0f717fc6341f544327598255758c269cec9774ccee035afc + languageName: node + linkType: hard + +"form-data@npm:^2.3.2, form-data@npm:^2.5.0": + version: 2.5.2 + resolution: "form-data@npm:2.5.2" + dependencies: + asynckit: ^0.4.0 + combined-stream: ^1.0.6 + mime-types: ^2.1.12 + safe-buffer: ^5.2.1 + checksum: 89ed3d96238d6fa874d75435e20f1aad28a1c22a88ab4e726ac4f6b0d29bef33d7e5aca51248c1070eccbbf4df94020a53842e800b2f1fb63073881a268113b4 + languageName: node + linkType: hard + +"form-data@npm:^3.0.0": + version: 3.0.2 + resolution: "form-data@npm:3.0.2" + dependencies: + asynckit: ^0.4.0 + combined-stream: ^1.0.8 + mime-types: ^2.1.12 + checksum: 25ffdeed693c8fc59b56082d15ad63f11688fabac2d14918fb339170020f66295e520a6659f3a698217f15c7924fbc593117ecd61d8391a146ea06d686793622 + languageName: node + linkType: hard + +"form-data@npm:^4.0.0": + version: 4.0.1 + resolution: "form-data@npm:4.0.1" + dependencies: + asynckit: ^0.4.0 + combined-stream: ^1.0.8 + mime-types: ^2.1.12 + checksum: ccee458cd5baf234d6b57f349fe9cc5f9a2ea8fd1af5ecda501a18fd1572a6dd3bf08a49f00568afd995b6a65af34cb8dec083cf9d582c4e621836499498dd84 + languageName: node + linkType: hard + +"form-data@npm:~2.3.2": + version: 2.3.3 + resolution: "form-data@npm:2.3.3" + dependencies: + asynckit: ^0.4.0 + combined-stream: ^1.0.6 + mime-types: ^2.1.12 + checksum: 10c1780fa13dbe1ff3100114c2ce1f9307f8be10b14bf16e103815356ff567b6be39d70fc4a40f8990b9660012dc24b0f5e1dde1b6426166eb23a445ba068ca3 + languageName: node + linkType: hard + +"format@npm:^0.2.0": + version: 0.2.2 + resolution: "format@npm:0.2.2" + checksum: 646a60e1336250d802509cf24fb801e43bd4a70a07510c816fa133aa42cdbc9c21e66e9cc0801bb183c5b031c9d68be62e7fbb6877756e52357850f92aa28799 + languageName: node + linkType: hard + +"formidable@npm:^2.1.2": + version: 2.1.2 + resolution: "formidable@npm:2.1.2" + dependencies: + dezalgo: ^1.0.4 + hexoid: ^1.0.0 + once: ^1.4.0 + qs: ^6.11.0 + checksum: 81c8e5d89f5eb873e992893468f0de22c01678ca3d315db62be0560f9de1c77d4faefc9b1f4575098eb2263b3c81ba1024833a9fc3206297ddbac88a4f69b7a8 + languageName: node + linkType: hard + +"forwarded@npm:0.2.0": + version: 0.2.0 + resolution: "forwarded@npm:0.2.0" + checksum: fd27e2394d8887ebd16a66ffc889dc983fbbd797d5d3f01087c020283c0f019a7d05ee85669383d8e0d216b116d720fc0cef2f6e9b7eb9f4c90c6e0bc7fd28e6 + languageName: node + linkType: hard + +"framer-motion@npm:^6.5.1": + version: 6.5.1 + resolution: "framer-motion@npm:6.5.1" + dependencies: + "@emotion/is-prop-valid": ^0.8.2 + "@motionone/dom": 10.12.0 + framesync: 6.0.1 + hey-listen: ^1.0.8 + popmotion: 11.0.3 + style-value-types: 5.0.0 + tslib: ^2.1.0 + peerDependencies: + react: ">=16.8 || ^17.0.0 || ^18.0.0" + react-dom: ">=16.8 || ^17.0.0 || ^18.0.0" + dependenciesMeta: + "@emotion/is-prop-valid": + optional: true + checksum: 737959063137b4ccafe01e0ac0c9e5a9531bf3f729f62c34ca7a5d7955e6664f70affd22b044f7db51df41acb21d120a4f71a860e17a80c4db766ad66f2153a1 + languageName: node + linkType: hard + +"framesync@npm:6.0.1": + version: 6.0.1 + resolution: "framesync@npm:6.0.1" + dependencies: + tslib: ^2.1.0 + checksum: a23ebe8f7e20a32c0b99c2f8175b6f07af3ec6316aad52a2316316a6d011d717af8d2175dcc2827031c59fabb30232ed3e19a720a373caba7f070e1eae436325 + languageName: node + linkType: hard + +"free-style@npm:3.1.0": + version: 3.1.0 + resolution: "free-style@npm:3.1.0" + checksum: 949258ae315deda48cac93ecd5f9a80f36e8a027e19ce2103598dc8d5ab60e963bbad5444b2a4990ddb746798dd188896f430285cf484afbf2141f7d75a191d8 + languageName: node + linkType: hard + +"fresh@npm:0.5.2, fresh@npm:~0.5.2": + version: 0.5.2 + resolution: "fresh@npm:0.5.2" + checksum: 13ea8b08f91e669a64e3ba3a20eb79d7ca5379a81f1ff7f4310d54e2320645503cc0c78daedc93dfb6191287295f6479544a649c64d8e41a1c0fb0c221552346 + languageName: node + linkType: hard + +"from@npm:~0": + version: 0.1.7 + resolution: "from@npm:0.1.7" + checksum: b85125b7890489656eb2e4f208f7654a93ec26e3aefaf3bbbcc0d496fc1941e4405834fcc9fe7333192aa2187905510ace70417bbf9ac6f6f4784a731d986939 + languageName: node + linkType: hard + +"fromentries@npm:^1.3.1": + version: 1.3.2 + resolution: "fromentries@npm:1.3.2" + checksum: 33729c529ce19f5494f846f0dd4945078f4e37f4e8955f4ae8cc7385c218f600e9d93a7d225d17636c20d1889106fd87061f911550861b7072f53bf891e6b341 + languageName: node + linkType: hard + +"fs-constants@npm:^1.0.0": + version: 1.0.0 + resolution: "fs-constants@npm:1.0.0" + checksum: 18f5b718371816155849475ac36c7d0b24d39a11d91348cfcb308b4494824413e03572c403c86d3a260e049465518c4f0d5bd00f0371cdfcad6d4f30a85b350d + languageName: node + linkType: hard + +"fs-extra@npm:10.1.0, fs-extra@npm:^10.0.0": + version: 10.1.0 + resolution: "fs-extra@npm:10.1.0" + dependencies: + graceful-fs: ^4.2.0 + jsonfile: ^6.0.1 + universalify: ^2.0.0 + checksum: dc94ab37096f813cc3ca12f0f1b5ad6744dfed9ed21e953d72530d103cea193c2f81584a39e9dee1bea36de5ee66805678c0dddc048e8af1427ac19c00fffc50 + languageName: node + linkType: hard + +"fs-extra@npm:9.1.0, fs-extra@npm:^9.0.0": + version: 9.1.0 + resolution: "fs-extra@npm:9.1.0" + dependencies: + at-least-node: ^1.0.0 + graceful-fs: ^4.2.0 + jsonfile: ^6.0.1 + universalify: ^2.0.0 + checksum: ba71ba32e0faa74ab931b7a0031d1523c66a73e225de7426e275e238e312d07313d2da2d33e34a52aa406c8763ade5712eb3ec9ba4d9edce652bcacdc29e6b20 + languageName: node + linkType: hard + +"fs-extra@npm:^11.0.0, fs-extra@npm:^11.2.0": + version: 11.2.0 + resolution: "fs-extra@npm:11.2.0" + dependencies: + graceful-fs: ^4.2.0 + jsonfile: ^6.0.1 + universalify: ^2.0.0 + checksum: b12e42fa40ba47104202f57b8480dd098aa931c2724565e5e70779ab87605665594e76ee5fb00545f772ab9ace167fe06d2ab009c416dc8c842c5ae6df7aa7e8 + languageName: node + linkType: hard + +"fs-extra@npm:^7.0.1, fs-extra@npm:~7.0.1": + version: 7.0.1 + resolution: "fs-extra@npm:7.0.1" + dependencies: + graceful-fs: ^4.1.2 + jsonfile: ^4.0.0 + universalify: ^0.1.0 + checksum: 141b9dccb23b66a66cefdd81f4cda959ff89282b1d721b98cea19ba08db3dcbe6f862f28841f3cf24bb299e0b7e6c42303908f65093cb7e201708e86ea5a8dcf + languageName: node + linkType: hard + +"fs-extra@npm:^8.1.0": + version: 8.1.0 + resolution: "fs-extra@npm:8.1.0" + dependencies: + graceful-fs: ^4.2.0 + jsonfile: ^4.0.0 + universalify: ^0.1.0 + checksum: bf44f0e6cea59d5ce071bba4c43ca76d216f89e402dc6285c128abc0902e9b8525135aa808adad72c9d5d218e9f4bcc63962815529ff2f684ad532172a284880 + languageName: node + linkType: hard + +"fs-minipass@npm:^2.0.0, fs-minipass@npm:^2.1.0": + version: 2.1.0 + resolution: "fs-minipass@npm:2.1.0" + dependencies: + minipass: ^3.0.0 + checksum: 1b8d128dae2ac6cc94230cc5ead341ba3e0efaef82dab46a33d171c044caaa6ca001364178d42069b2809c35a1c3c35079a32107c770e9ffab3901b59af8c8b1 + languageName: node + linkType: hard + +"fs-minipass@npm:^3.0.0": + version: 3.0.3 + resolution: "fs-minipass@npm:3.0.3" + dependencies: + minipass: ^7.0.3 + checksum: 8722a41109130851d979222d3ec88aabaceeaaf8f57b2a8f744ef8bd2d1ce95453b04a61daa0078822bc5cd21e008814f06fe6586f56fef511e71b8d2394d802 + languageName: node + linkType: hard + +"fs-monkey@npm:^1.0.4": + version: 1.0.6 + resolution: "fs-monkey@npm:1.0.6" + checksum: 4e9986acf197581b10b79d3e63e74252681ca215ef82d4afbd98dcfe86b3f09189ac1d7e8064bc433e4e53cdb5c14fdb38773277d41bba18b1ff8bbdcab01a3a + languageName: node + linkType: hard + +"fs.realpath@npm:^1.0.0": + version: 1.0.0 + resolution: "fs.realpath@npm:1.0.0" + checksum: 99ddea01a7e75aa276c250a04eedeffe5662bce66c65c07164ad6264f9de18fb21be9433ead460e54cff20e31721c811f4fb5d70591799df5f85dce6d6746fd0 + languageName: node + linkType: hard + +"fsevents@npm:2.3.2": + version: 2.3.2 + resolution: "fsevents@npm:2.3.2" + dependencies: + node-gyp: latest + checksum: 97ade64e75091afee5265e6956cb72ba34db7819b4c3e94c431d4be2b19b8bb7a2d4116da417950c3425f17c8fe693d25e20212cac583ac1521ad066b77ae31f + conditions: os=darwin + languageName: node + linkType: hard + +"fsevents@npm:^2.3.2, fsevents@npm:~2.3.2": + version: 2.3.3 + resolution: "fsevents@npm:2.3.3" + dependencies: + node-gyp: latest + checksum: 11e6ea6fea15e42461fc55b4b0e4a0a3c654faa567f1877dbd353f39156f69def97a69936d1746619d656c4b93de2238bf731f6085a03a50cabf287c9d024317 + conditions: os=darwin + languageName: node + linkType: hard + +"fsevents@patch:fsevents@2.3.2#~builtin": + version: 2.3.2 + resolution: "fsevents@patch:fsevents@npm%3A2.3.2#~builtin::version=2.3.2&hash=18f3a7" + dependencies: + node-gyp: latest + conditions: os=darwin + languageName: node + linkType: hard + +"fsevents@patch:fsevents@^2.3.2#~builtin, fsevents@patch:fsevents@~2.3.2#~builtin": + version: 2.3.3 + resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin::version=2.3.3&hash=18f3a7" + dependencies: + node-gyp: latest + conditions: os=darwin + languageName: node + linkType: hard + +"function-bind@npm:^1.1.2": + version: 1.1.2 + resolution: "function-bind@npm:1.1.2" + checksum: 2b0ff4ce708d99715ad14a6d1f894e2a83242e4a52ccfcefaee5e40050562e5f6dafc1adbb4ce2d4ab47279a45dc736ab91ea5042d843c3c092820dfe032efb1 + languageName: node + linkType: hard + +"function.prototype.name@npm:^1.1.6, function.prototype.name@npm:^1.1.7": + version: 1.1.8 + resolution: "function.prototype.name@npm:1.1.8" + dependencies: + call-bind: ^1.0.8 + call-bound: ^1.0.3 + define-properties: ^1.2.1 + functions-have-names: ^1.2.3 + hasown: ^2.0.2 + is-callable: ^1.2.7 + checksum: 3a366535dc08b25f40a322efefa83b2da3cd0f6da41db7775f2339679120ef63b6c7e967266182609e655b8f0a8f65596ed21c7fd72ad8bd5621c2340edd4010 + languageName: node + linkType: hard + +"functional-red-black-tree@npm:^1.0.1": + version: 1.0.1 + resolution: "functional-red-black-tree@npm:1.0.1" + checksum: ca6c170f37640e2d94297da8bb4bf27a1d12bea3e00e6a3e007fd7aa32e37e000f5772acf941b4e4f3cf1c95c3752033d0c509af157ad8f526e7f00723b9eb9f + languageName: node + linkType: hard + +"functions-have-names@npm:^1.2.3": + version: 1.2.3 + resolution: "functions-have-names@npm:1.2.3" + checksum: c3f1f5ba20f4e962efb71344ce0a40722163e85bee2101ce25f88214e78182d2d2476aa85ef37950c579eb6cf6ee811c17b3101bb84004bb75655f3e33f3fdb5 + languageName: node + linkType: hard + +"gauge@npm:^3.0.0": + version: 3.0.2 + resolution: "gauge@npm:3.0.2" + dependencies: + aproba: ^1.0.3 || ^2.0.0 + color-support: ^1.1.2 + console-control-strings: ^1.0.0 + has-unicode: ^2.0.1 + object-assign: ^4.1.1 + signal-exit: ^3.0.0 + string-width: ^4.2.3 + strip-ansi: ^6.0.1 + wide-align: ^1.1.2 + checksum: 81296c00c7410cdd48f997800155fbead4f32e4f82109be0719c63edc8560e6579946cc8abd04205297640691ec26d21b578837fd13a4e96288ab4b40b1dc3e9 + languageName: node + linkType: hard + +"gauge@npm:^4.0.3": + version: 4.0.4 + resolution: "gauge@npm:4.0.4" + dependencies: + aproba: ^1.0.3 || ^2.0.0 + color-support: ^1.1.3 + console-control-strings: ^1.1.0 + has-unicode: ^2.0.1 + signal-exit: ^3.0.7 + string-width: ^4.2.3 + strip-ansi: ^6.0.1 + wide-align: ^1.1.5 + checksum: 788b6bfe52f1dd8e263cda800c26ac0ca2ff6de0b6eee2fe0d9e3abf15e149b651bd27bf5226be10e6e3edb5c4e5d5985a5a1a98137e7a892f75eff76467ad2d + languageName: node + linkType: hard + +"gaxios@npm:^6.0.0, gaxios@npm:^6.0.2, gaxios@npm:^6.1.1": + version: 6.7.1 + resolution: "gaxios@npm:6.7.1" + dependencies: + extend: ^3.0.2 + https-proxy-agent: ^7.0.1 + is-stream: ^2.0.0 + node-fetch: ^2.6.9 + uuid: ^9.0.1 + checksum: ed5952655339918e0868c6f4e079d6e9e55b20a242ddb1be25076cdfb0dd1ca5a2cb233da7352baa972c19f898a78fa6ba67e7d848717c9ca9877c269b5b02f7 + languageName: node + linkType: hard + +"gcp-metadata@npm:^6.1.0": + version: 6.1.0 + resolution: "gcp-metadata@npm:6.1.0" + dependencies: + gaxios: ^6.0.0 + json-bigint: ^1.0.0 + checksum: 55de8ae4a6b7664379a093abf7e758ae06e82f244d41bd58d881a470bf34db94c4067ce9e1b425d9455b7705636d5f8baad844e49bb73879c338753ba7785b2b + languageName: node + linkType: hard + +"generate-function@npm:^2.3.1": + version: 2.3.1 + resolution: "generate-function@npm:2.3.1" + dependencies: + is-property: ^1.0.2 + checksum: 652f083de206ead2bae4caf9c7eeb465e8d98c0b8ed2a29c6afc538cef0785b5c6eea10548f1e13cc586d3afd796c13c830c2cb3dc612ec2457b2aadda5f57c9 + languageName: node + linkType: hard + +"generic-names@npm:^4.0.0": + version: 4.0.0 + resolution: "generic-names@npm:4.0.0" + dependencies: + loader-utils: ^3.2.0 + checksum: 8dabd2505164191501b75f2861b5e1194458a344ae2a7c9776bdd72d1f50b248dff737bcdf118fff677275edb3632f2d10662e6ac122dd7b245c5baa8d303270 + languageName: node + linkType: hard + +"generic-pool@npm:3.9.0": + version: 3.9.0 + resolution: "generic-pool@npm:3.9.0" + checksum: 3d89e9b2018d2e3bbf44fec78c76b2b7d56d6a484237aa9daf6ff6eedb14b0899dadd703b5d810219baab2eb28e5128fb18b29e91e602deb2eccac14492d8ca8 + languageName: node + linkType: hard + +"gensync@npm:^1.0.0-beta.2": + version: 1.0.0-beta.2 + resolution: "gensync@npm:1.0.0-beta.2" + checksum: a7437e58c6be12aa6c90f7730eac7fa9833dc78872b4ad2963d2031b00a3367a93f98aec75f9aaac7220848e4026d67a8655e870b24f20a543d103c0d65952ec + languageName: node + linkType: hard + +"get-caller-file@npm:^2.0.5": + version: 2.0.5 + resolution: "get-caller-file@npm:2.0.5" + checksum: b9769a836d2a98c3ee734a88ba712e62703f1df31b94b784762c433c27a386dd6029ff55c2a920c392e33657d80191edbf18c61487e198844844516f843496b9 + languageName: node + linkType: hard + +"get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.2, get-intrinsic@npm:^1.2.4, get-intrinsic@npm:^1.2.5, get-intrinsic@npm:^1.2.6": + version: 1.2.6 + resolution: "get-intrinsic@npm:1.2.6" + dependencies: + call-bind-apply-helpers: ^1.0.1 + dunder-proto: ^1.0.0 + es-define-property: ^1.0.1 + es-errors: ^1.3.0 + es-object-atoms: ^1.0.0 + function-bind: ^1.1.2 + gopd: ^1.2.0 + has-symbols: ^1.1.0 + hasown: ^2.0.2 + math-intrinsics: ^1.0.0 + checksum: a7592a0b7f023a2e83c0121fa9449ca83780e370a5feeebe8452119474d148016e43b455049134ae7a683b9b11b93d3f65eac199a0ad452ab740d5f0c299de47 + languageName: node + linkType: hard + +"get-node-dimensions@npm:^1.2.1": + version: 1.2.2 + resolution: "get-node-dimensions@npm:1.2.2" + checksum: 1018db4004ead28c92c02cf5471c3b13572be67cc4dff763c0c7714b8edc370d8020806d3db0400aad87e7e9d3e99635e8582e81636b735a6013051c8e3a4b13 + languageName: node + linkType: hard + +"get-nonce@npm:^1.0.0": + version: 1.0.1 + resolution: "get-nonce@npm:1.0.1" + checksum: e2614e43b4694c78277bb61b0f04583d45786881289285c73770b07ded246a98be7e1f78b940c80cbe6f2b07f55f0b724e6db6fd6f1bcbd1e8bdac16521074ed + languageName: node + linkType: hard + +"get-package-type@npm:^0.1.0": + version: 0.1.0 + resolution: "get-package-type@npm:0.1.0" + checksum: bba0811116d11e56d702682ddef7c73ba3481f114590e705fc549f4d868972263896af313c57a25c076e3c0d567e11d919a64ba1b30c879be985fc9d44f96148 + languageName: node + linkType: hard + +"get-port@npm:^5.1.1": + version: 5.1.1 + resolution: "get-port@npm:5.1.1" + checksum: 0162663ffe5c09e748cd79d97b74cd70e5a5c84b760a475ce5767b357fb2a57cb821cee412d646aa8a156ed39b78aab88974eddaa9e5ee926173c036c0713787 + languageName: node + linkType: hard + +"get-stream@npm:^6.0.0": + version: 6.0.1 + resolution: "get-stream@npm:6.0.1" + checksum: e04ecece32c92eebf5b8c940f51468cd53554dcbb0ea725b2748be583c9523d00128137966afce410b9b051eb2ef16d657cd2b120ca8edafcf5a65e81af63cad languageName: node linkType: hard -"esbuild@npm:^0.23.0": - version: 0.23.1 - resolution: "esbuild@npm:0.23.1" +"get-symbol-description@npm:^1.0.2": + version: 1.1.0 + resolution: "get-symbol-description@npm:1.1.0" dependencies: - "@esbuild/aix-ppc64": 0.23.1 - "@esbuild/android-arm": 0.23.1 - "@esbuild/android-arm64": 0.23.1 - "@esbuild/android-x64": 0.23.1 - "@esbuild/darwin-arm64": 0.23.1 - "@esbuild/darwin-x64": 0.23.1 - "@esbuild/freebsd-arm64": 0.23.1 - "@esbuild/freebsd-x64": 0.23.1 - "@esbuild/linux-arm": 0.23.1 - "@esbuild/linux-arm64": 0.23.1 - "@esbuild/linux-ia32": 0.23.1 - "@esbuild/linux-loong64": 0.23.1 - "@esbuild/linux-mips64el": 0.23.1 - "@esbuild/linux-ppc64": 0.23.1 - "@esbuild/linux-riscv64": 0.23.1 - "@esbuild/linux-s390x": 0.23.1 - "@esbuild/linux-x64": 0.23.1 - "@esbuild/netbsd-x64": 0.23.1 - "@esbuild/openbsd-arm64": 0.23.1 - "@esbuild/openbsd-x64": 0.23.1 - "@esbuild/sunos-x64": 0.23.1 - "@esbuild/win32-arm64": 0.23.1 - "@esbuild/win32-ia32": 0.23.1 - "@esbuild/win32-x64": 0.23.1 - dependenciesMeta: - "@esbuild/aix-ppc64": - optional: true - "@esbuild/android-arm": - optional: true - "@esbuild/android-arm64": - optional: true - "@esbuild/android-x64": - optional: true - "@esbuild/darwin-arm64": - optional: true - "@esbuild/darwin-x64": - optional: true - "@esbuild/freebsd-arm64": - optional: true - "@esbuild/freebsd-x64": - optional: true - "@esbuild/linux-arm": - optional: true - "@esbuild/linux-arm64": - optional: true - "@esbuild/linux-ia32": - optional: true - "@esbuild/linux-loong64": - optional: true - "@esbuild/linux-mips64el": - optional: true - "@esbuild/linux-ppc64": - optional: true - "@esbuild/linux-riscv64": - optional: true - "@esbuild/linux-s390x": - optional: true - "@esbuild/linux-x64": - optional: true - "@esbuild/netbsd-x64": - optional: true - "@esbuild/openbsd-arm64": - optional: true - "@esbuild/openbsd-x64": - optional: true - "@esbuild/sunos-x64": - optional: true - "@esbuild/win32-arm64": - optional: true - "@esbuild/win32-ia32": - optional: true - "@esbuild/win32-x64": - optional: true - bin: - esbuild: bin/esbuild - checksum: 0413c3b9257327fb598427688b7186ea335bf1693746fe5713cc93c95854d6388b8ed4ad643fddf5b5ace093f7dcd9038dd58e087bf2da1f04dfb4c5571660af + call-bound: ^1.0.3 + es-errors: ^1.3.0 + get-intrinsic: ^1.2.6 + checksum: 655ed04db48ee65ef2ddbe096540d4405e79ba0a7f54225775fef43a7e2afcb93a77d141c5f05fdef0afce2eb93bcbfb3597142189d562ac167ff183582683cd languageName: node linkType: hard -"esbuild@npm:^0.24.0": - version: 0.24.0 - resolution: "esbuild@npm:0.24.0" - dependencies: - "@esbuild/aix-ppc64": 0.24.0 - "@esbuild/android-arm": 0.24.0 - "@esbuild/android-arm64": 0.24.0 - "@esbuild/android-x64": 0.24.0 - "@esbuild/darwin-arm64": 0.24.0 - "@esbuild/darwin-x64": 0.24.0 - "@esbuild/freebsd-arm64": 0.24.0 - "@esbuild/freebsd-x64": 0.24.0 - "@esbuild/linux-arm": 0.24.0 - "@esbuild/linux-arm64": 0.24.0 - "@esbuild/linux-ia32": 0.24.0 - "@esbuild/linux-loong64": 0.24.0 - "@esbuild/linux-mips64el": 0.24.0 - "@esbuild/linux-ppc64": 0.24.0 - "@esbuild/linux-riscv64": 0.24.0 - "@esbuild/linux-s390x": 0.24.0 - "@esbuild/linux-x64": 0.24.0 - "@esbuild/netbsd-x64": 0.24.0 - "@esbuild/openbsd-arm64": 0.24.0 - "@esbuild/openbsd-x64": 0.24.0 - "@esbuild/sunos-x64": 0.24.0 - "@esbuild/win32-arm64": 0.24.0 - "@esbuild/win32-ia32": 0.24.0 - "@esbuild/win32-x64": 0.24.0 - dependenciesMeta: - "@esbuild/aix-ppc64": - optional: true - "@esbuild/android-arm": - optional: true - "@esbuild/android-arm64": - optional: true - "@esbuild/android-x64": - optional: true - "@esbuild/darwin-arm64": - optional: true - "@esbuild/darwin-x64": - optional: true - "@esbuild/freebsd-arm64": - optional: true - "@esbuild/freebsd-x64": - optional: true - "@esbuild/linux-arm": - optional: true - "@esbuild/linux-arm64": - optional: true - "@esbuild/linux-ia32": - optional: true - "@esbuild/linux-loong64": - optional: true - "@esbuild/linux-mips64el": - optional: true - "@esbuild/linux-ppc64": - optional: true - "@esbuild/linux-riscv64": - optional: true - "@esbuild/linux-s390x": - optional: true - "@esbuild/linux-x64": - optional: true - "@esbuild/netbsd-x64": - optional: true - "@esbuild/openbsd-arm64": - optional: true - "@esbuild/openbsd-x64": - optional: true - "@esbuild/sunos-x64": - optional: true - "@esbuild/win32-arm64": - optional: true - "@esbuild/win32-ia32": - optional: true - "@esbuild/win32-x64": - optional: true - bin: - esbuild: bin/esbuild - checksum: dd386d92a05c7eb03078480522cdd8b40c434777b5f08487c27971d30933ecaae3f08bd221958dd8f9c66214915cdc85f844283ca9bdbf8ee703d889ae526edd +"get-tsconfig@npm:^4.7.0, get-tsconfig@npm:^4.7.2": + version: 4.8.1 + resolution: "get-tsconfig@npm:4.8.1" + dependencies: + resolve-pkg-maps: ^1.0.0 + checksum: 12df01672e691d2ff6db8cf7fed1ddfef90ed94a5f3d822c63c147a26742026d582acd86afcd6f65db67d809625d17dd7f9d34f4d3f38f69bc2f48e19b2bdd5b languageName: node linkType: hard -"escalade@npm:^3.1.1, escalade@npm:^3.2.0": - version: 3.2.0 - resolution: "escalade@npm:3.2.0" - checksum: 47b029c83de01b0d17ad99ed766347b974b0d628e848de404018f3abee728e987da0d2d370ad4574aa3d5b5bfc368754fd085d69a30f8e75903486ec4b5b709e +"get-uri@npm:^6.0.1": + version: 6.0.4 + resolution: "get-uri@npm:6.0.4" + dependencies: + basic-ftp: ^5.0.2 + data-uri-to-buffer: ^6.0.2 + debug: ^4.3.4 + checksum: 7eae81655e0c8cee250d29c189e09030f37a2d37987298325709affb9408de448bf2dc43ee9a59acd21c1f100c3ca711d0446b4e689e9590c25774ecc59f0442 languageName: node linkType: hard -"escape-html@npm:^1.0.3, escape-html@npm:~1.0.3": - version: 1.0.3 - resolution: "escape-html@npm:1.0.3" - checksum: 6213ca9ae00d0ab8bccb6d8d4e0a98e76237b2410302cf7df70aaa6591d509a2a37ce8998008cbecae8fc8ffaadf3fb0229535e6a145f3ce0b211d060decbb24 +"getopts@npm:2.3.0": + version: 2.3.0 + resolution: "getopts@npm:2.3.0" + checksum: bbb5fcef8d4a8582cf4499ea3fc492d95322df2184e65d550ddacede04871e7ba33194c7abd06a6c5d540de3b70112a16f988787e236e1c66b89521032b398ce languageName: node linkType: hard -"escape-string-regexp@npm:^1.0.5": - version: 1.0.5 - resolution: "escape-string-regexp@npm:1.0.5" - checksum: 6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410 +"getpass@npm:^0.1.1": + version: 0.1.7 + resolution: "getpass@npm:0.1.7" + dependencies: + assert-plus: ^1.0.0 + checksum: ab18d55661db264e3eac6012c2d3daeafaab7a501c035ae0ccb193c3c23e9849c6e29b6ac762b9c2adae460266f925d55a3a2a3a3c8b94be2f222df94d70c046 languageName: node linkType: hard -"escape-string-regexp@npm:^2.0.0": - version: 2.0.0 - resolution: "escape-string-regexp@npm:2.0.0" - checksum: 9f8a2d5743677c16e85c810e3024d54f0c8dea6424fad3c79ef6666e81dd0846f7437f5e729dfcdac8981bc9e5294c39b4580814d114076b8d36318f46ae4395 +"git-up@npm:^7.0.0": + version: 7.0.0 + resolution: "git-up@npm:7.0.0" + dependencies: + is-ssh: ^1.4.0 + parse-url: ^8.1.0 + checksum: 2faadbab51e94d2ffb220e426e950087cc02c15d664e673bd5d1f734cfa8196fed8b19493f7bf28fe216d087d10e22a7fd9b63687e0ba7d24f0ddcfb0a266d6e languageName: node linkType: hard -"escape-string-regexp@npm:^4.0.0": - version: 4.0.0 - resolution: "escape-string-regexp@npm:4.0.0" - checksum: 98b48897d93060f2322108bf29db0feba7dd774be96cd069458d1453347b25ce8682ecc39859d4bca2203cc0ab19c237bcc71755eff49a0f8d90beadeeba5cc5 +"git-url-parse@npm:^14.0.0": + version: 14.1.0 + resolution: "git-url-parse@npm:14.1.0" + dependencies: + git-up: ^7.0.0 + checksum: 16bbf5ca423352ab1b0d704dc40b46123e0bfcc0ae2959ef6a93d43c509146151cd6a1d99690f3555324d2261b36443b7978abc379dc1a7bf8f564e52d676dee languageName: node linkType: hard -"escodegen@npm:^1.8.1": - version: 1.14.3 - resolution: "escodegen@npm:1.14.3" +"git-url-parse@npm:^15.0.0": + version: 15.0.0 + resolution: "git-url-parse@npm:15.0.0" dependencies: - esprima: ^4.0.1 - estraverse: ^4.2.0 - esutils: ^2.0.2 - optionator: ^0.8.1 - source-map: ~0.6.1 - dependenciesMeta: - source-map: - optional: true - bin: - escodegen: bin/escodegen.js - esgenerate: bin/esgenerate.js - checksum: 381cdc4767ecdb221206bbbab021b467bbc2a6f5c9a99c9e6353040080bdd3dfe73d7604ad89a47aca6ea7d58bc635f6bd3fbc8da9a1998e9ddfa8372362ccd0 + git-up: ^7.0.0 + checksum: 4379e9b0a1297b62d603630341a7ce1a6e17901114ee7bb70a611f62ea0fd3b3649ac754891d2746fd42031a21e97ddc0092287a04cc028cbf37df8f6be65a9e languageName: node linkType: hard -"escodegen@npm:^2.0.0, escodegen@npm:^2.1.0": - version: 2.1.0 - resolution: "escodegen@npm:2.1.0" +"github-from-package@npm:0.0.0": + version: 0.0.0 + resolution: "github-from-package@npm:0.0.0" + checksum: 14e448192a35c1e42efee94c9d01a10f42fe790375891a24b25261246ce9336ab9df5d274585aedd4568f7922246c2a78b8a8cd2571bfe99c693a9718e7dd0e3 + languageName: node + linkType: hard + +"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": + version: 5.1.2 + resolution: "glob-parent@npm:5.1.2" dependencies: - esprima: ^4.0.1 - estraverse: ^5.2.0 - esutils: ^2.0.2 - source-map: ~0.6.1 - dependenciesMeta: - source-map: - optional: true - bin: - escodegen: bin/escodegen.js - esgenerate: bin/esgenerate.js - checksum: 096696407e161305cd05aebb95134ad176708bc5cb13d0dcc89a5fcbb959b8ed757e7f2591a5f8036f8f4952d4a724de0df14cd419e29212729fa6df5ce16bf6 + is-glob: ^4.0.1 + checksum: f4f2bfe2425296e8a47e36864e4f42be38a996db40420fe434565e4480e3322f18eb37589617a98640c5dc8fdec1a387007ee18dbb1f3f5553409c34d17f425e + languageName: node + linkType: hard + +"glob-parent@npm:^6.0.2": + version: 6.0.2 + resolution: "glob-parent@npm:6.0.2" + dependencies: + is-glob: ^4.0.3 + checksum: c13ee97978bef4f55106b71e66428eb1512e71a7466ba49025fc2aec59a5bfb0954d5abd58fc5ee6c9b076eef4e1f6d3375c2e964b88466ca390da4419a786a8 + languageName: node + linkType: hard + +"glob-to-regexp@npm:^0.4.1": + version: 0.4.1 + resolution: "glob-to-regexp@npm:0.4.1" + checksum: e795f4e8f06d2a15e86f76e4d92751cf8bbfcf0157cea5c2f0f35678a8195a750b34096b1256e436f0cebc1883b5ff0888c47348443e69546a5a87f9e1eb1167 + languageName: node + linkType: hard + +"glob@npm:9.3.5": + version: 9.3.5 + resolution: "glob@npm:9.3.5" + dependencies: + fs.realpath: ^1.0.0 + minimatch: ^8.0.2 + minipass: ^4.2.4 + path-scurry: ^1.6.1 + checksum: 94b093adbc591bc36b582f77927d1fb0dbf3ccc231828512b017601408be98d1fe798fc8c0b19c6f2d1a7660339c3502ce698de475e9d938ccbb69b47b647c84 languageName: node linkType: hard -"eslint-config-prettier@npm:^8.10.0": - version: 8.10.0 - resolution: "eslint-config-prettier@npm:8.10.0" - peerDependencies: - eslint: ">=7.0.0" +"glob@npm:^10.0.0, glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.3.7, glob@npm:^10.4.1": + version: 10.4.5 + resolution: "glob@npm:10.4.5" + dependencies: + foreground-child: ^3.1.0 + jackspeak: ^3.1.2 + minimatch: ^9.0.4 + minipass: ^7.1.2 + package-json-from-dist: ^1.0.0 + path-scurry: ^1.11.1 bin: - eslint-config-prettier: bin/cli.js - checksum: 153266badd477e49b0759816246b2132f1dbdb6c7f313ca60a9af5822fd1071c2bc5684a3720d78b725452bbac04bb130878b2513aea5e72b1b792de5a69fec8 + glob: dist/esm/bin.mjs + checksum: 0bc725de5e4862f9f387fd0f2b274baf16850dcd2714502ccf471ee401803997983e2c05590cb65f9675a3c6f2a58e7a53f9e365704108c6ad3cbf1d60934c4a languageName: node linkType: hard -"eslint-config-prettier@npm:^9.0.0": - version: 9.1.0 - resolution: "eslint-config-prettier@npm:9.1.0" - peerDependencies: - eslint: ">=7.0.0" - bin: - eslint-config-prettier: bin/cli.js - checksum: 9229b768c879f500ee54ca05925f31b0c0bafff3d9f5521f98ff05127356de78c81deb9365c86a5ec4efa990cb72b74df8612ae15965b14136044c73e1f6a907 +"glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6, glob@npm:^7.1.7": + version: 7.2.3 + resolution: "glob@npm:7.2.3" + dependencies: + fs.realpath: ^1.0.0 + inflight: ^1.0.4 + inherits: 2 + minimatch: ^3.1.1 + once: ^1.3.0 + path-is-absolute: ^1.0.0 + checksum: 29452e97b38fa704dabb1d1045350fb2467cf0277e155aa9ff7077e90ad81d1ea9d53d3ee63bd37c05b09a065e90f16aec4a65f5b8de401d1dac40bc5605d133 languageName: node linkType: hard -"eslint-formatter-friendly@npm:^7.0.0": - version: 7.0.0 - resolution: "eslint-formatter-friendly@npm:7.0.0" +"glob@npm:^8.0.1, glob@npm:^8.0.3, glob@npm:^8.1.0": + version: 8.1.0 + resolution: "glob@npm:8.1.0" dependencies: - "@babel/code-frame": 7.0.0 - chalk: 2.4.2 - extend: 3.0.2 - strip-ansi: 5.2.0 - text-table: 0.2.0 - checksum: e318768ac919993a234d38798544c5cf8e40ce05d6f2c028e4d0a4ac5c503a31609590ed67ceb31c98fae899b87950c6c805ad9e8c3a9060776daecda1bf1545 + fs.realpath: ^1.0.0 + inflight: ^1.0.4 + inherits: 2 + minimatch: ^5.0.1 + once: ^1.3.0 + checksum: 92fbea3221a7d12075f26f0227abac435de868dd0736a17170663783296d0dd8d3d532a5672b4488a439bf5d7fb85cdd07c11185d6cd39184f0385cbdfb86a47 languageName: node linkType: hard -"eslint-import-resolver-node@npm:^0.3.9": - version: 0.3.9 - resolution: "eslint-import-resolver-node@npm:0.3.9" +"global-agent@npm:^3.0.0": + version: 3.0.0 + resolution: "global-agent@npm:3.0.0" dependencies: - debug: ^3.2.7 - is-core-module: ^2.13.0 - resolve: ^1.22.4 - checksum: 439b91271236b452d478d0522a44482e8c8540bf9df9bd744062ebb89ab45727a3acd03366a6ba2bdbcde8f9f718bab7fe8db64688aca75acf37e04eafd25e22 + boolean: ^3.0.1 + es6-error: ^4.1.1 + matcher: ^3.0.0 + roarr: ^2.15.3 + semver: ^7.3.2 + serialize-error: ^7.0.1 + checksum: 75074d80733b4bd5386c47f5df028e798018025beac0ab310e9908c72bf5639e408203e7bca0130d5ee01b5f4abc6d34385d96a9f950ea5fe1979bb431c808f7 languageName: node linkType: hard -"eslint-module-utils@npm:^2.12.0": - version: 2.12.0 - resolution: "eslint-module-utils@npm:2.12.0" +"global-modules@npm:^1.0.0": + version: 1.0.0 + resolution: "global-modules@npm:1.0.0" dependencies: - debug: ^3.2.7 - peerDependenciesMeta: - eslint: - optional: true - checksum: be3ac52e0971c6f46daeb1a7e760e45c7c45f820c8cc211799f85f10f04ccbf7afc17039165d56cb2da7f7ca9cec2b3a777013cddf0b976784b37eb9efa24180 + global-prefix: ^1.0.1 + is-windows: ^1.0.1 + resolve-dir: ^1.0.0 + checksum: 10be68796c1e1abc1e2ba87ec4ea507f5629873b119ab0cd29c07284ef2b930f1402d10df01beccb7391dedd9cd479611dd6a24311c71be58937beaf18edf85e languageName: node linkType: hard -"eslint-plugin-deprecation@npm:^2.0.0": +"global-modules@npm:^2.0.0": version: 2.0.0 - resolution: "eslint-plugin-deprecation@npm:2.0.0" + resolution: "global-modules@npm:2.0.0" dependencies: - "@typescript-eslint/utils": ^6.0.0 - tslib: ^2.3.1 - tsutils: ^3.21.0 - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: ^4.2.4 || ^5.0.0 - checksum: d79611e902ac419a21e51eab582fcdbcf8170aff820c5e5197e7d242e7ca6bda59c0077d88404970c25993017398dd65c96df7d31a833e332d45dd330935324b + global-prefix: ^3.0.0 + checksum: d6197f25856c878c2fb5f038899f2dca7cbb2f7b7cf8999660c0104972d5cfa5c68b5a0a77fa8206bb536c3903a4615665acb9709b4d80846e1bb47eaef65430 languageName: node linkType: hard -"eslint-plugin-import@npm:^2.25.4": - version: 2.31.0 - resolution: "eslint-plugin-import@npm:2.31.0" +"global-prefix@npm:^1.0.1": + version: 1.0.2 + resolution: "global-prefix@npm:1.0.2" dependencies: - "@rtsao/scc": ^1.1.0 - array-includes: ^3.1.8 - array.prototype.findlastindex: ^1.2.5 - array.prototype.flat: ^1.3.2 - array.prototype.flatmap: ^1.3.2 - debug: ^3.2.7 - doctrine: ^2.1.0 - eslint-import-resolver-node: ^0.3.9 - eslint-module-utils: ^2.12.0 - hasown: ^2.0.2 - is-core-module: ^2.15.1 - is-glob: ^4.0.3 - minimatch: ^3.1.2 - object.fromentries: ^2.0.8 - object.groupby: ^1.0.3 - object.values: ^1.2.0 - semver: ^6.3.1 - string.prototype.trimend: ^1.0.8 - tsconfig-paths: ^3.15.0 - peerDependencies: - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 - checksum: b1d2ac268b3582ff1af2a72a2c476eae4d250c100f2e335b6e102036e4a35efa530b80ec578dfc36761fabb34a635b9bf5ab071abe9d4404a4bb054fdf22d415 + expand-tilde: ^2.0.2 + homedir-polyfill: ^1.0.1 + ini: ^1.3.4 + is-windows: ^1.0.1 + which: ^1.2.14 + checksum: 061b43470fe498271bcd514e7746e8a8535032b17ab9570517014ae27d700ff0dca749f76bbde13ba384d185be4310d8ba5712cb0e74f7d54d59390db63dd9a0 languageName: node linkType: hard -"eslint-plugin-jest@npm:^28.0.0": - version: 28.8.3 - resolution: "eslint-plugin-jest@npm:28.8.3" +"global-prefix@npm:^3.0.0": + version: 3.0.0 + resolution: "global-prefix@npm:3.0.0" dependencies: - "@typescript-eslint/utils": ^6.0.0 || ^7.0.0 || ^8.0.0 - peerDependencies: - "@typescript-eslint/eslint-plugin": ^6.0.0 || ^7.0.0 || ^8.0.0 - eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - jest: "*" - peerDependenciesMeta: - "@typescript-eslint/eslint-plugin": - optional: true - jest: - optional: true - checksum: e371fcbe2127a403824b6c23b66f6b2e2cc54074c3c70a9965d48bdcdfb461670965a7d7cdddab68f09e703d3a09a281d05591b1cb4315f5246d27fd8baa84ac + ini: ^1.3.5 + kind-of: ^6.0.2 + which: ^1.3.1 + checksum: 8a82fc1d6f22c45484a4e34656cc91bf021a03e03213b0035098d605bfc612d7141f1e14a21097e8a0413b4884afd5b260df0b6a25605ce9d722e11f1df2881d languageName: node linkType: hard -"eslint-plugin-jsx-a11y@npm:^6.5.1": - version: 6.10.2 - resolution: "eslint-plugin-jsx-a11y@npm:6.10.2" - dependencies: - aria-query: ^5.3.2 - array-includes: ^3.1.8 - array.prototype.flatmap: ^1.3.2 - ast-types-flow: ^0.0.8 - axe-core: ^4.10.0 - axobject-query: ^4.1.0 - damerau-levenshtein: ^1.0.8 - emoji-regex: ^9.2.2 - hasown: ^2.0.2 - jsx-ast-utils: ^3.3.5 - language-tags: ^1.0.9 - minimatch: ^3.1.2 - object.fromentries: ^2.0.8 - safe-regex-test: ^1.0.3 - string.prototype.includes: ^2.0.1 - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 - checksum: 0cc861398fa26ada61ed5703eef5b335495fcb96253263dcd5e399488ff019a2636372021baacc040e3560d1a34bfcd5d5ad9f1754f44cd0509c956f7df94050 +"globals@npm:^11.1.0": + version: 11.12.0 + resolution: "globals@npm:11.12.0" + checksum: 67051a45eca3db904aee189dfc7cd53c20c7d881679c93f6146ddd4c9f4ab2268e68a919df740d39c71f4445d2b38ee360fc234428baea1dbdfe68bbcb46979e languageName: node linkType: hard -"eslint-plugin-react-hooks@npm:^4.3.0": - version: 4.6.2 - resolution: "eslint-plugin-react-hooks@npm:4.6.2" - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - checksum: 395c433610f59577cfcf3f2e42bcb130436c8a0b3777ac64f441d88c5275f4fcfc89094cedab270f2822daf29af1079151a7a6579a8e9ea8cee66540ba0384c4 +"globals@npm:^13.19.0": + version: 13.24.0 + resolution: "globals@npm:13.24.0" + dependencies: + type-fest: ^0.20.2 + checksum: 56066ef058f6867c04ff203b8a44c15b038346a62efbc3060052a1016be9f56f4cf0b2cd45b74b22b81e521a889fc7786c73691b0549c2f3a6e825b3d394f43c languageName: node linkType: hard -"eslint-plugin-react@npm:^7.28.0": - version: 7.37.2 - resolution: "eslint-plugin-react@npm:7.37.2" +"globalthis@npm:^1.0.1, globalthis@npm:^1.0.3, globalthis@npm:^1.0.4": + version: 1.0.4 + resolution: "globalthis@npm:1.0.4" dependencies: - array-includes: ^3.1.8 - array.prototype.findlast: ^1.2.5 - array.prototype.flatmap: ^1.3.2 - array.prototype.tosorted: ^1.1.4 - doctrine: ^2.1.0 - es-iterator-helpers: ^1.1.0 - estraverse: ^5.3.0 - hasown: ^2.0.2 - jsx-ast-utils: ^2.4.1 || ^3.0.0 - minimatch: ^3.1.2 - object.entries: ^1.1.8 - object.fromentries: ^2.0.8 - object.values: ^1.2.0 - prop-types: ^15.8.1 - resolve: ^2.0.0-next.5 - semver: ^6.3.1 - string.prototype.matchall: ^4.0.11 - string.prototype.repeat: ^1.0.0 - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - checksum: 7f5203afee7fbe3702b27fdd2b9a3c0ccbbb47d0672f58311b9d8a08dea819c9da4a87c15e8bd508f2562f327a9d29ee8bd9cd189bf758d8dc903de5648b0bfa + define-properties: ^1.2.1 + gopd: ^1.0.1 + checksum: 39ad667ad9f01476474633a1834a70842041f70a55571e8dcef5fb957980a92da5022db5430fca8aecc5d47704ae30618c0bc877a579c70710c904e9ef06108a languageName: node linkType: hard -"eslint-plugin-unused-imports@npm:^3.0.0": - version: 3.2.0 - resolution: "eslint-plugin-unused-imports@npm:3.2.0" +"globby@npm:^11.0.0, globby@npm:^11.0.3, globby@npm:^11.0.4, globby@npm:^11.1.0": + version: 11.1.0 + resolution: "globby@npm:11.1.0" dependencies: - eslint-rule-composer: ^0.3.0 - peerDependencies: - "@typescript-eslint/eslint-plugin": 6 - 7 - eslint: 8 - peerDependenciesMeta: - "@typescript-eslint/eslint-plugin": - optional: true - checksum: e85ae4f3af489294ef5e0969ab904fa87f9fa7c959ca0804f30845438db4aeb0428ddad7ab06a70608e93121626799977241b442fdf126a4d0667be57390c3d6 + array-union: ^2.1.0 + dir-glob: ^3.0.1 + fast-glob: ^3.2.9 + ignore: ^5.2.0 + merge2: ^1.4.1 + slash: ^3.0.0 + checksum: b4be8885e0cfa018fc783792942d53926c35c50b3aefd3fdcfb9d22c627639dc26bd2327a40a0b74b074100ce95bb7187bfeae2f236856aa3de183af7a02aea6 languageName: node linkType: hard -"eslint-rule-composer@npm:^0.3.0": - version: 0.3.0 - resolution: "eslint-rule-composer@npm:0.3.0" - checksum: c2f57cded8d1c8f82483e0ce28861214347e24fd79fd4144667974cd334d718f4ba05080aaef2399e3bbe36f7d6632865110227e6b176ed6daa2d676df9281b1 +"google-auth-library@npm:^9.0.0, google-auth-library@npm:^9.3.0, google-auth-library@npm:^9.6.3": + version: 9.15.0 + resolution: "google-auth-library@npm:9.15.0" + dependencies: + base64-js: ^1.3.0 + ecdsa-sig-formatter: ^1.0.11 + gaxios: ^6.1.1 + gcp-metadata: ^6.1.0 + gtoken: ^7.0.0 + jws: ^4.0.0 + checksum: 7ff63ff755ce43601a1780cfbe6d8b523792bfd2b653a27180e41735b9f0ba5689668eb8b079c915300041e412ec00b7635b5c26e0f2139fecacb346b6f9f12f languageName: node linkType: hard -"eslint-scope@npm:5.1.1": - version: 5.1.1 - resolution: "eslint-scope@npm:5.1.1" +"google-gax@npm:^4.0.3, google-gax@npm:^4.3.3": + version: 4.4.1 + resolution: "google-gax@npm:4.4.1" dependencies: - esrecurse: ^4.3.0 - estraverse: ^4.1.1 - checksum: 47e4b6a3f0cc29c7feedee6c67b225a2da7e155802c6ea13bbef4ac6b9e10c66cd2dcb987867ef176292bf4e64eccc680a49e35e9e9c669f4a02bac17e86abdb + "@grpc/grpc-js": ^1.10.9 + "@grpc/proto-loader": ^0.7.13 + "@types/long": ^4.0.0 + abort-controller: ^3.0.0 + duplexify: ^4.0.0 + google-auth-library: ^9.3.0 + node-fetch: ^2.7.0 + object-hash: ^3.0.0 + proto3-json-serializer: ^2.0.2 + protobufjs: ^7.3.2 + retry-request: ^7.0.0 + uuid: ^9.0.1 + checksum: 945dc57fa80a9e95621460585f99319ef123c3eb904f0c5f4d10197bfa7981294d7f600c77e481a0cb071f8c08d692d394d81cd06f7f3dd3c34c581c65100f6a languageName: node linkType: hard -"eslint-scope@npm:^7.2.2": - version: 7.2.2 - resolution: "eslint-scope@npm:7.2.2" - dependencies: - esrecurse: ^4.3.0 - estraverse: ^5.2.0 - checksum: ec97dbf5fb04b94e8f4c5a91a7f0a6dd3c55e46bfc7bbcd0e3138c3a76977570e02ed89a1810c778dcd72072ff0e9621ba1379b4babe53921d71e2e4486fda3e +"gopd@npm:^1.0.1, gopd@npm:^1.2.0": + version: 1.2.0 + resolution: "gopd@npm:1.2.0" + checksum: cc6d8e655e360955bdccaca51a12a474268f95bb793fc3e1f2bdadb075f28bfd1fd988dab872daf77a61d78cbaf13744bc8727a17cfb1d150d76047d805375f3 languageName: node linkType: hard -"eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": - version: 3.4.3 - resolution: "eslint-visitor-keys@npm:3.4.3" - checksum: 36e9ef87fca698b6fd7ca5ca35d7b2b6eeaaf106572e2f7fd31c12d3bfdaccdb587bba6d3621067e5aece31c8c3a348b93922ab8f7b2cbc6aaab5e1d89040c60 +"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.5, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": + version: 4.2.11 + resolution: "graceful-fs@npm:4.2.11" + checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 languageName: node linkType: hard -"eslint-webpack-plugin@npm:^3.2.0": - version: 3.2.0 - resolution: "eslint-webpack-plugin@npm:3.2.0" - dependencies: - "@types/eslint": ^7.29.0 || ^8.4.1 - jest-worker: ^28.0.2 - micromatch: ^4.0.5 - normalize-path: ^3.0.0 - schema-utils: ^4.0.0 - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - webpack: ^5.0.0 - checksum: 095034c35e773fdb21ec7e597ae1f8a6899679c290db29d8568ca94619e8c7f4971f0f9edccc8a965322ab8af9286c87205985a38f4fdcf17654aee7cd8bb7b5 +"graphemer@npm:^1.4.0": + version: 1.4.0 + resolution: "graphemer@npm:1.4.0" + checksum: bab8f0be9b568857c7bec9fda95a89f87b783546d02951c40c33f84d05bb7da3fd10f863a9beb901463669b6583173a8c8cc6d6b306ea2b9b9d5d3d943c3a673 languageName: node linkType: hard -"eslint-webpack-plugin@npm:^4.0.0": - version: 4.2.0 - resolution: "eslint-webpack-plugin@npm:4.2.0" +"graphiql@npm:3.1.1": + version: 3.1.1 + resolution: "graphiql@npm:3.1.1" dependencies: - "@types/eslint": ^8.56.10 - jest-worker: ^29.7.0 - micromatch: ^4.0.5 - normalize-path: ^3.0.0 - schema-utils: ^4.2.0 + "@graphiql/react": ^0.20.3 + "@graphiql/toolkit": ^0.9.1 + graphql-language-service: ^5.2.0 + markdown-it: ^12.2.0 peerDependencies: - eslint: ^8.0.0 || ^9.0.0 - webpack: ^5.0.0 - checksum: 51538d60d0d0f3dd5774a4291af4620884a45a40270e2878c2f7c8dbff3584ef8588ffded8de696a4bbcee45bee219eba442eb503f5eddcc79aefeb4845985ae + graphql: ^15.5.0 || ^16.0.0 + react: ^16.8.0 || ^17 || ^18 + react-dom: ^16.8.0 || ^17 || ^18 + checksum: fa0e6a6854b688a80d2d560c07c042c4d63a45ab1ebdb5b56a081a5a2aea6f77b2ef10afb73e071bbb22eb293048a9b72760e91459fe66704afce56271b13ba5 languageName: node linkType: hard -"eslint@npm:^8.49.0, eslint@npm:^8.6.0": - version: 8.57.1 - resolution: "eslint@npm:8.57.1" +"graphlib@npm:^2.1.5, graphlib@npm:^2.1.8": + version: 2.1.8 + resolution: "graphlib@npm:2.1.8" dependencies: - "@eslint-community/eslint-utils": ^4.2.0 - "@eslint-community/regexpp": ^4.6.1 - "@eslint/eslintrc": ^2.1.4 - "@eslint/js": 8.57.1 - "@humanwhocodes/config-array": ^0.13.0 - "@humanwhocodes/module-importer": ^1.0.1 - "@nodelib/fs.walk": ^1.2.8 - "@ungap/structured-clone": ^1.2.0 - ajv: ^6.12.4 - chalk: ^4.0.0 - cross-spawn: ^7.0.2 - debug: ^4.3.2 - doctrine: ^3.0.0 - escape-string-regexp: ^4.0.0 - eslint-scope: ^7.2.2 - eslint-visitor-keys: ^3.4.3 - espree: ^9.6.1 - esquery: ^1.4.2 - esutils: ^2.0.2 - fast-deep-equal: ^3.1.3 - file-entry-cache: ^6.0.1 - find-up: ^5.0.0 - glob-parent: ^6.0.2 - globals: ^13.19.0 - graphemer: ^1.4.0 - ignore: ^5.2.0 - imurmurhash: ^0.1.4 - is-glob: ^4.0.0 - is-path-inside: ^3.0.3 - js-yaml: ^4.1.0 - json-stable-stringify-without-jsonify: ^1.0.1 - levn: ^0.4.1 - lodash.merge: ^4.6.2 - minimatch: ^3.1.2 - natural-compare: ^1.4.0 - optionator: ^0.9.3 - strip-ansi: ^6.0.1 - text-table: ^0.2.0 - bin: - eslint: bin/eslint.js - checksum: e2489bb7f86dd2011967759a09164e65744ef7688c310bc990612fc26953f34cc391872807486b15c06833bdff737726a23e9b4cdba5de144c311377dc41d91b - languageName: node - linkType: hard - -"esm@npm:^3.2.25": - version: 3.2.25 - resolution: "esm@npm:3.2.25" - checksum: 978aabe2de83541c105605a6d60a26ed8e627ef6bb0a7605fe15a95bbdea6b8348bd045255cb22219c054dd09a81a94823df00843d9e97f42419c92015ce3a64 + lodash: ^4.17.15 + checksum: 1e0db4dea1c8187d59103d5582ecf32008845ebe2103959a51d22cb6dae495e81fb9263e22c922bca3aaecb56064a45cd53424e15a4626cfb5a0c52d0aff61a8 languageName: node linkType: hard -"espree@npm:^9.6.0, espree@npm:^9.6.1": - version: 9.6.1 - resolution: "espree@npm:9.6.1" - dependencies: - acorn: ^8.9.0 - acorn-jsx: ^5.3.2 - eslint-visitor-keys: ^3.4.1 - checksum: eb8c149c7a2a77b3f33a5af80c10875c3abd65450f60b8af6db1bfcfa8f101e21c1e56a561c6dc13b848e18148d43469e7cd208506238554fb5395a9ea5a1ab9 +"graphql-config@npm:^5.0.2": + version: 5.1.3 + resolution: "graphql-config@npm:5.1.3" + dependencies: + "@graphql-tools/graphql-file-loader": ^8.0.0 + "@graphql-tools/json-file-loader": ^8.0.0 + "@graphql-tools/load": ^8.0.0 + "@graphql-tools/merge": ^9.0.0 + "@graphql-tools/url-loader": ^8.0.0 + "@graphql-tools/utils": ^10.0.0 + cosmiconfig: ^8.1.0 + jiti: ^2.0.0 + minimatch: ^9.0.5 + string-env-interpolation: ^1.0.1 + tslib: ^2.4.0 + peerDependencies: + cosmiconfig-toml-loader: ^1.0.0 + graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + peerDependenciesMeta: + cosmiconfig-toml-loader: + optional: true + checksum: fde8aee849def42a5eaf02fbe3e404c91be94a53782c22ff58b29bfcfed7e9be2fba114fa94b4a97e12ea1e5970267ebaa119ba6915b2d4d9bb8f5ae9c5485c2 languageName: node linkType: hard -"esprima@npm:1.2.2": - version: 1.2.2 - resolution: "esprima@npm:1.2.2" - bin: - esparse: ./bin/esparse.js - esvalidate: ./bin/esvalidate.js - checksum: 4f10006f0e315f2f7d8cf6630e465f183512f1ab2e862b11785a133ce37ed1696573deefb5256e510eaa4368342b13b393334477f6ccdcdb8f10e782b0f5e6dc +"graphql-http@npm:^1.22.0": + version: 1.22.3 + resolution: "graphql-http@npm:1.22.3" + peerDependencies: + graphql: ">=0.11 <=16" + checksum: c523bb6fadb6caa99777f48d9fd3a598d4415cd7b12855fe0af05439849d636642c3ced5867e888606089d5ad2145192f6b6d9dd634d60e6f870d8fdc5c11fd7 languageName: node linkType: hard -"esprima@npm:^4.0.0, esprima@npm:^4.0.1": - version: 4.0.1 - resolution: "esprima@npm:4.0.1" +"graphql-language-service@npm:5.3.0, graphql-language-service@npm:^5.2.0, graphql-language-service@npm:^5.2.2": + version: 5.3.0 + resolution: "graphql-language-service@npm:5.3.0" + dependencies: + debounce-promise: ^3.1.2 + nullthrows: ^1.0.0 + vscode-languageserver-types: ^3.17.1 + peerDependencies: + graphql: ^15.5.0 || ^16.0.0 || ^17.0.0-alpha.2 bin: - esparse: ./bin/esparse.js - esvalidate: ./bin/esvalidate.js - checksum: b45bc805a613dbea2835278c306b91aff6173c8d034223fa81498c77dcbce3b2931bf6006db816f62eacd9fd4ea975dfd85a5b7f3c6402cfd050d4ca3c13a628 + graphql: dist/temp-bin.js + checksum: 9cee9a5cd9ff7db86104d6fa32ff909f1d69396185683a00bc8b5329ef3249fa8d0207dbeda82d4bd738cfd659ce1a1d39339650d5278f8712d5353ccc60a9fb languageName: node linkType: hard -"esquery@npm:^1.4.2": - version: 1.6.0 - resolution: "esquery@npm:1.6.0" +"graphql-subscriptions@npm:^1.1.0": + version: 1.2.1 + resolution: "graphql-subscriptions@npm:1.2.1" dependencies: - estraverse: ^5.1.0 - checksum: 08ec4fe446d9ab27186da274d979558557fbdbbd10968fa9758552482720c54152a5640e08b9009e5a30706b66aba510692054d4129d32d0e12e05bbc0b96fb2 + iterall: ^1.3.0 + peerDependencies: + graphql: ^0.10.5 || ^0.11.3 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 + checksum: 2b9533c6774e7be46acd6fbee528aab06429f15dc222eabd991e82c02bf74e390b638dffa1a3fd86c1e26212c40a42a0418d7f4a7c3a1edf0534978ef128e528 languageName: node linkType: hard -"esrecurse@npm:^4.3.0": - version: 4.3.0 - resolution: "esrecurse@npm:4.3.0" +"graphql-tag@npm:^2.10.3, graphql-tag@npm:^2.12.6": + version: 2.12.6 + resolution: "graphql-tag@npm:2.12.6" dependencies: - estraverse: ^5.2.0 - checksum: ebc17b1a33c51cef46fdc28b958994b1dc43cd2e86237515cbc3b4e5d2be6a811b2315d0a1a4d9d340b6d2308b15322f5c8291059521cc5f4802f65e7ec32837 + tslib: ^2.1.0 + peerDependencies: + graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: b15162a3d62f17b9b79302445b9ee330e041582f1c7faca74b9dec5daa74272c906ec1c34e1c50592bb6215e5c3eba80a309103f6ba9e4c1cddc350c46f010df languageName: node linkType: hard -"estraverse@npm:^4.1.1, estraverse@npm:^4.2.0": - version: 4.3.0 - resolution: "estraverse@npm:4.3.0" - checksum: a6299491f9940bb246124a8d44b7b7a413a8336f5436f9837aaa9330209bd9ee8af7e91a654a3545aee9c54b3308e78ee360cef1d777d37cfef77d2fa33b5827 +"graphql-ws@npm:^5.14.0, graphql-ws@npm:^5.4.1": + version: 5.16.0 + resolution: "graphql-ws@npm:5.16.0" + peerDependencies: + graphql: ">=0.11 <=16" + checksum: e3e077ec187a92be3fd5dfae49e23af11a82711d3537064384f6861c2b5ceb339f60dc1871d0026b47ff05e4ed3c941404812a8086347e454688e0e6ef0e69f3 languageName: node linkType: hard -"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0, estraverse@npm:^5.3.0": - version: 5.3.0 - resolution: "estraverse@npm:5.3.0" - checksum: 072780882dc8416ad144f8fe199628d2b3e7bbc9989d9ed43795d2c90309a2047e6bc5979d7e2322a341163d22cfad9e21f4110597fe487519697389497e4e2b +"graphql@npm:^14.0.2 || ^15.5": + version: 15.9.0 + resolution: "graphql@npm:15.9.0" + checksum: fecf48b878baf8bd1d943b79860554f9e0bdf8d23a8f014356209fedcc1f1353729388538842d8a4a79078ea75b3f24d504d074223c815acf9b6059837c5c934 languageName: node linkType: hard -"estree-walker@npm:^0.6.1": - version: 0.6.1 - resolution: "estree-walker@npm:0.6.1" - checksum: 9d6f82a4921f11eec18f8089fb3cce6e53bcf45a8e545c42a2674d02d055fb30f25f90495f8be60803df6c39680c80dcee7f944526867eb7aa1fc9254883b23d +"graphql@npm:^16.0.0, graphql@npm:^16.8.1": + version: 16.10.0 + resolution: "graphql@npm:16.10.0" + checksum: 969c2d1061d69ad6fe08a7fe642428212b0b8485a2f9b5d8650203eb6c3221479e81ec6a757708f849d84b85afcb3ebc5a8ff2f71778bb66c5e4850f051c170e languageName: node linkType: hard -"estree-walker@npm:^2.0.1, estree-walker@npm:^2.0.2": - version: 2.0.2 - resolution: "estree-walker@npm:2.0.2" - checksum: 6151e6f9828abe2259e57f5fd3761335bb0d2ebd76dc1a01048ccee22fabcfef3c0859300f6d83ff0d1927849368775ec5a6d265dde2f6de5a1be1721cd94efc +"gtoken@npm:^7.0.0": + version: 7.1.0 + resolution: "gtoken@npm:7.1.0" + dependencies: + gaxios: ^6.0.0 + jws: ^4.0.0 + checksum: 1f338dced78f9d895ea03cd507454eb5a7b77e841ecd1d45e44483b08c1e64d16a9b0342358d37586d87462ffc2d5f5bff5dfe77ed8d4f0aafc3b5b0347d5d16 languageName: node linkType: hard -"esutils@npm:^2.0.2": - version: 2.0.3 - resolution: "esutils@npm:2.0.3" - checksum: 22b5b08f74737379a840b8ed2036a5fb35826c709ab000683b092d9054e5c2a82c27818f12604bfc2a9a76b90b6834ef081edbc1c7ae30d1627012e067c6ec87 +"gzip-size@npm:^6.0.0": + version: 6.0.0 + resolution: "gzip-size@npm:6.0.0" + dependencies: + duplexer: ^0.1.2 + checksum: 2df97f359696ad154fc171dcb55bc883fe6e833bca7a65e457b9358f3cb6312405ed70a8da24a77c1baac0639906cd52358dc0ce2ec1a937eaa631b934c94194 languageName: node linkType: hard -"etag@npm:~1.8.1": - version: 1.8.1 - resolution: "etag@npm:1.8.1" - checksum: 571aeb3dbe0f2bbd4e4fadbdb44f325fc75335cd5f6f6b6a091e6a06a9f25ed5392f0863c5442acb0646787446e816f13cbfc6edce5b07658541dff573cab1ff +"handle-thing@npm:^2.0.0": + version: 2.0.1 + resolution: "handle-thing@npm:2.0.1" + checksum: 68071f313062315cd9dce55710e9496873945f1dd425107007058fc1629f93002a7649fcc3e464281ce02c7e809a35f5925504ab8105d972cf649f1f47cb7d6c languageName: node linkType: hard -"event-target-shim@npm:^5.0.0": - version: 5.0.1 - resolution: "event-target-shim@npm:5.0.1" - checksum: 1ffe3bb22a6d51bdeb6bf6f7cf97d2ff4a74b017ad12284cc9e6a279e727dc30a5de6bb613e5596ff4dc3e517841339ad09a7eec44266eccb1aa201a30448166 +"handlebars@npm:^4.7.3": + version: 4.7.8 + resolution: "handlebars@npm:4.7.8" + dependencies: + minimist: ^1.2.5 + neo-async: ^2.6.2 + source-map: ^0.6.1 + uglify-js: ^3.1.4 + wordwrap: ^1.0.0 + dependenciesMeta: + uglify-js: + optional: true + bin: + handlebars: bin/handlebars + checksum: 00e68bb5c183fd7b8b63322e6234b5ac8fbb960d712cb3f25587d559c2951d9642df83c04a1172c918c41bcfc81bfbd7a7718bbce93b893e0135fc99edea93ff languageName: node linkType: hard -"eventemitter3@npm:^4.0.0, eventemitter3@npm:^4.0.4": - version: 4.0.7 - resolution: "eventemitter3@npm:4.0.7" - checksum: 1875311c42fcfe9c707b2712c32664a245629b42bb0a5a84439762dd0fd637fc54d078155ea83c2af9e0323c9ac13687e03cfba79b03af9f40c89b4960099374 +"har-schema@npm:^2.0.0": + version: 2.0.0 + resolution: "har-schema@npm:2.0.0" + checksum: d8946348f333fb09e2bf24cc4c67eabb47c8e1d1aa1c14184c7ffec1140a49ec8aa78aa93677ae452d71d5fc0fdeec20f0c8c1237291fc2bcb3f502a5d204f9b languageName: node linkType: hard -"events@npm:^3.0.0, events@npm:^3.2.0, events@npm:^3.3.0": - version: 3.3.0 - resolution: "events@npm:3.3.0" - checksum: f6f487ad2198aa41d878fa31452f1a3c00958f46e9019286ff4787c84aac329332ab45c9cdc8c445928fc6d7ded294b9e005a7fce9426488518017831b272780 +"har-validator@npm:~5.1.3": + version: 5.1.5 + resolution: "har-validator@npm:5.1.5" + dependencies: + ajv: ^6.12.3 + har-schema: ^2.0.0 + checksum: b998a7269ca560d7f219eedc53e2c664cd87d487e428ae854a6af4573fc94f182fe9d2e3b92ab968249baec7ebaf9ead69cf975c931dc2ab282ec182ee988280 languageName: node linkType: hard -"evp_bytestokey@npm:^1.0.0, evp_bytestokey@npm:^1.0.3": - version: 1.0.3 - resolution: "evp_bytestokey@npm:1.0.3" - dependencies: - md5.js: ^1.3.4 - node-gyp: latest - safe-buffer: ^5.1.1 - checksum: ad4e1577f1a6b721c7800dcc7c733fe01f6c310732bb5bf2240245c2a5b45a38518b91d8be2c610611623160b9d1c0e91f1ce96d639f8b53e8894625cf20fa45 +"harmony-reflect@npm:^1.4.6": + version: 1.6.2 + resolution: "harmony-reflect@npm:1.6.2" + checksum: 2e5bae414cd2bfae5476147f9935dc69ee9b9a413206994dcb94c5b3208d4555da3d4313aff6fd14bd9991c1e3ef69cdda5c8fac1eb1d7afc064925839339b8c languageName: node linkType: hard -"execa@npm:^5.0.0": - version: 5.1.1 - resolution: "execa@npm:5.1.1" - dependencies: - cross-spawn: ^7.0.3 - get-stream: ^6.0.0 - human-signals: ^2.1.0 - is-stream: ^2.0.0 - merge-stream: ^2.0.0 - npm-run-path: ^4.0.1 - onetime: ^5.1.2 - signal-exit: ^3.0.3 - strip-final-newline: ^2.0.0 - checksum: fba9022c8c8c15ed862847e94c252b3d946036d7547af310e344a527e59021fd8b6bb0723883ea87044dc4f0201f949046993124a42ccb0855cae5bf8c786343 +"has-bigints@npm:^1.0.2": + version: 1.1.0 + resolution: "has-bigints@npm:1.1.0" + checksum: 79730518ae02c77e4af6a1d1a0b6a2c3e1509785532771f9baf0241e83e36329542c3d7a0e723df8cbc85f74eff4f177828a2265a01ba576adbdc2d40d86538b languageName: node linkType: hard -"exit@npm:^0.1.2": - version: 0.1.2 - resolution: "exit@npm:0.1.2" - checksum: abc407f07a875c3961e4781dfcb743b58d6c93de9ab263f4f8c9d23bb6da5f9b7764fc773f86b43dd88030444d5ab8abcb611cb680fba8ca075362b77114bba3 +"has-flag@npm:^3.0.0": + version: 3.0.0 + resolution: "has-flag@npm:3.0.0" + checksum: 4a15638b454bf086c8148979aae044dd6e39d63904cd452d970374fa6a87623423da485dfb814e7be882e05c096a7ccf1ebd48e7e7501d0208d8384ff4dea73b languageName: node linkType: hard -"expand-template@npm:^2.0.3": - version: 2.0.3 - resolution: "expand-template@npm:2.0.3" - checksum: 588c19847216421ed92befb521767b7018dc88f88b0576df98cb242f20961425e96a92cbece525ef28cc5becceae5d544ae0f5b9b5e2aa05acb13716ca5b3099 +"has-flag@npm:^4.0.0": + version: 4.0.0 + resolution: "has-flag@npm:4.0.0" + checksum: 261a1357037ead75e338156b1f9452c016a37dcd3283a972a30d9e4a87441ba372c8b81f818cd0fbcd9c0354b4ae7e18b9e1afa1971164aef6d18c2b6095a8ad languageName: node linkType: hard -"expand-tilde@npm:^2.0.0, expand-tilde@npm:^2.0.2": - version: 2.0.2 - resolution: "expand-tilde@npm:2.0.2" +"has-property-descriptors@npm:^1.0.0, has-property-descriptors@npm:^1.0.2": + version: 1.0.2 + resolution: "has-property-descriptors@npm:1.0.2" dependencies: - homedir-polyfill: ^1.0.1 - checksum: 2efe6ed407d229981b1b6ceb552438fbc9e5c7d6a6751ad6ced3e0aa5cf12f0b299da695e90d6c2ac79191b5c53c613e508f7149e4573abfbb540698ddb7301a + es-define-property: ^1.0.0 + checksum: fcbb246ea2838058be39887935231c6d5788babed499d0e9d0cc5737494c48aba4fe17ba1449e0d0fbbb1e36175442faa37f9c427ae357d6ccb1d895fbcd3de3 languageName: node linkType: hard -"expect@npm:^29.0.0, expect@npm:^29.7.0": - version: 29.7.0 - resolution: "expect@npm:29.7.0" +"has-proto@npm:^1.0.3, has-proto@npm:^1.2.0": + version: 1.2.0 + resolution: "has-proto@npm:1.2.0" dependencies: - "@jest/expect-utils": ^29.7.0 - jest-get-type: ^29.6.3 - jest-matcher-utils: ^29.7.0 - jest-message-util: ^29.7.0 - jest-util: ^29.7.0 - checksum: 9257f10288e149b81254a0fda8ffe8d54a7061cd61d7515779998b012579d2b8c22354b0eb901daf0145f347403da582f75f359f4810c007182ad3fb318b5c0c + dunder-proto: ^1.0.0 + checksum: f55010cb94caa56308041d77967c72a02ffd71386b23f9afa8447e58bc92d49d15c19bf75173713468e92fe3fb1680b03b115da39c21c32c74886d1d50d3e7ff languageName: node linkType: hard -"exponential-backoff@npm:^3.1.1": - version: 3.1.1 - resolution: "exponential-backoff@npm:3.1.1" - checksum: 3d21519a4f8207c99f7457287291316306255a328770d320b401114ec8481986e4e467e854cb9914dd965e0a1ca810a23ccb559c642c88f4c7f55c55778a9b48 +"has-symbols@npm:^1.0.3, has-symbols@npm:^1.1.0": + version: 1.1.0 + resolution: "has-symbols@npm:1.1.0" + checksum: b2316c7302a0e8ba3aaba215f834e96c22c86f192e7310bdf689dd0e6999510c89b00fbc5742571507cebf25764d68c988b3a0da217369a73596191ac0ce694b languageName: node linkType: hard -"express-promise-router@npm:^4.1.0": - version: 4.1.1 - resolution: "express-promise-router@npm:4.1.1" +"has-tostringtag@npm:^1.0.0, has-tostringtag@npm:^1.0.2": + version: 1.0.2 + resolution: "has-tostringtag@npm:1.0.2" dependencies: - is-promise: ^4.0.0 - lodash.flattendeep: ^4.0.0 - methods: ^1.0.0 - peerDependencies: - "@types/express": ^4.0.0 - express: ^4.0.0 - peerDependenciesMeta: - "@types/express": - optional: true - checksum: e69ee7eb2c70470d5be71d34cd9275c26aae157c1ef16a21ecf53141e512fd4a6b5a68db89b30f745df941518505d00ec0a5e13f0becbd53ad63ffce3ed885f3 + has-symbols: ^1.0.3 + checksum: 999d60bb753ad714356b2c6c87b7fb74f32463b8426e159397da4bde5bca7e598ab1073f4d8d4deafac297f2eb311484cd177af242776bf05f0d11565680468d languageName: node linkType: hard -"express@npm:^4.17.1, express@npm:^4.17.3, express@npm:^4.18.2, express@npm:^4.19.2": - version: 4.21.1 - resolution: "express@npm:4.21.1" - dependencies: - accepts: ~1.3.8 - array-flatten: 1.1.1 - body-parser: 1.20.3 - content-disposition: 0.5.4 - content-type: ~1.0.4 - cookie: 0.7.1 - cookie-signature: 1.0.6 - debug: 2.6.9 - depd: 2.0.0 - encodeurl: ~2.0.0 - escape-html: ~1.0.3 - etag: ~1.8.1 - finalhandler: 1.3.1 - fresh: 0.5.2 - http-errors: 2.0.0 - merge-descriptors: 1.0.3 - methods: ~1.1.2 - on-finished: 2.4.1 - parseurl: ~1.3.3 - path-to-regexp: 0.1.10 - proxy-addr: ~2.0.7 - qs: 6.13.0 - range-parser: ~1.2.1 - safe-buffer: 5.2.1 - send: 0.19.0 - serve-static: 1.16.2 - setprototypeof: 1.2.0 - statuses: 2.0.1 - type-is: ~1.6.18 - utils-merge: 1.0.1 - vary: ~1.1.2 - checksum: 5ac2b26d8aeddda5564fc0907227d29c100f90c0ead2ead9d474dc5108e8fb306c2de2083c4e3ba326e0906466f2b73417dbac16961f4075ff9f03785fd940fe +"has-unicode@npm:^2.0.1": + version: 2.0.1 + resolution: "has-unicode@npm:2.0.1" + checksum: 1eab07a7436512db0be40a710b29b5dc21fa04880b7f63c9980b706683127e3c1b57cb80ea96d47991bdae2dfe479604f6a1ba410106ee1046a41d1bd0814400 languageName: node linkType: hard -"extend@npm:3.0.2, extend@npm:^3.0.2, extend@npm:~3.0.2": - version: 3.0.2 - resolution: "extend@npm:3.0.2" - checksum: a50a8309ca65ea5d426382ff09f33586527882cf532931cb08ca786ea3146c0553310bda688710ff61d7668eba9f96b923fe1420cdf56a2c3eaf30fcab87b515 +"hash-base@npm:^3.0.0": + version: 3.1.0 + resolution: "hash-base@npm:3.1.0" + dependencies: + inherits: ^2.0.4 + readable-stream: ^3.6.0 + safe-buffer: ^5.2.0 + checksum: 26b7e97ac3de13cb23fc3145e7e3450b0530274a9562144fc2bf5c1e2983afd0e09ed7cc3b20974ba66039fad316db463da80eb452e7373e780cbee9a0d2f2dc languageName: node linkType: hard -"extendable-error@npm:^0.1.5": - version: 0.1.7 - resolution: "extendable-error@npm:0.1.7" - checksum: 80478be7429a1675d2085f701239796bab3230ed6f2fb1b138fbabec24bea6516b7c5ceb6e9c209efcc9c089948d93715703845653535f8e8a49655066a9255e +"hash-base@npm:~3.0, hash-base@npm:~3.0.4": + version: 3.0.5 + resolution: "hash-base@npm:3.0.5" + dependencies: + inherits: ^2.0.4 + safe-buffer: ^5.2.1 + checksum: 6a82675a5de2ea9347501bbe655a2334950c7ec972fd9810ae9529e06aeab8f7e8ef68fc2112e5e6f0745561a7e05326efca42ad59bb5fd116537f5f8b0a216d languageName: node linkType: hard -"external-editor@npm:^3.0.3, external-editor@npm:^3.1.0": - version: 3.1.0 - resolution: "external-editor@npm:3.1.0" +"hash.js@npm:^1.0.0, hash.js@npm:^1.0.3": + version: 1.1.7 + resolution: "hash.js@npm:1.1.7" dependencies: - chardet: ^0.7.0 - iconv-lite: ^0.4.24 - tmp: ^0.0.33 - checksum: 1c2a616a73f1b3435ce04030261bed0e22d4737e14b090bb48e58865da92529c9f2b05b893de650738d55e692d071819b45e1669259b2b354bc3154d27a698c7 + inherits: ^2.0.3 + minimalistic-assert: ^1.0.1 + checksum: e350096e659c62422b85fa508e4b3669017311aa4c49b74f19f8e1bc7f3a54a584fdfd45326d4964d6011f2b2d882e38bea775a96046f2a61b7779a979629d8f languageName: node linkType: hard -"extsprintf@npm:1.3.0": - version: 1.3.0 - resolution: "extsprintf@npm:1.3.0" - checksum: cee7a4a1e34cffeeec18559109de92c27517e5641991ec6bab849aa64e3081022903dd53084f2080d0d2530803aa5ee84f1e9de642c365452f9e67be8f958ce2 +"hasown@npm:^2.0.0, hasown@npm:^2.0.1, hasown@npm:^2.0.2": + version: 2.0.2 + resolution: "hasown@npm:2.0.2" + dependencies: + function-bind: ^1.1.2 + checksum: e8516f776a15149ca6c6ed2ae3110c417a00b62260e222590e54aa367cbcd6ed99122020b37b7fbdf05748df57b265e70095d7bf35a47660587619b15ffb93db languageName: node linkType: hard -"extsprintf@npm:^1.2.0": - version: 1.4.1 - resolution: "extsprintf@npm:1.4.1" - checksum: a2f29b241914a8d2bad64363de684821b6b1609d06ae68d5b539e4de6b28659715b5bea94a7265201603713b7027d35399d10b0548f09071c5513e65e8323d33 +"hast-util-parse-selector@npm:^2.0.0": + version: 2.2.5 + resolution: "hast-util-parse-selector@npm:2.2.5" + checksum: 22ee4afbd11754562144cb3c4f3ec52524dafba4d90ee52512902d17cf11066d83b38f7bdf6ca571bbc2541f07ba30db0d234657b6ecb8ca4631587466459605 languageName: node linkType: hard -"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": - version: 3.1.3 - resolution: "fast-deep-equal@npm:3.1.3" - checksum: e21a9d8d84f53493b6aa15efc9cfd53dd5b714a1f23f67fb5dc8f574af80df889b3bce25dc081887c6d25457cce704e636395333abad896ccdec03abaf1f3f9d +"hast-util-whitespace@npm:^2.0.0": + version: 2.0.1 + resolution: "hast-util-whitespace@npm:2.0.1" + checksum: 431be6b2f35472f951615540d7a53f69f39461e5e080c0190268bdeb2be9ab9b1dddfd1f467dd26c1de7e7952df67beb1307b6ee940baf78b24a71b5e0663868 languageName: node linkType: hard -"fast-fifo@npm:^1.2.0, fast-fifo@npm:^1.3.2": - version: 1.3.2 - resolution: "fast-fifo@npm:1.3.2" - checksum: 6bfcba3e4df5af7be3332703b69a7898a8ed7020837ec4395bb341bd96cc3a6d86c3f6071dd98da289618cf2234c70d84b2a6f09a33dd6f988b1ff60d8e54275 +"hastscript@npm:^6.0.0": + version: 6.0.0 + resolution: "hastscript@npm:6.0.0" + dependencies: + "@types/hast": ^2.0.0 + comma-separated-tokens: ^1.0.0 + hast-util-parse-selector: ^2.0.0 + property-information: ^5.0.0 + space-separated-tokens: ^1.0.0 + checksum: 5e50b85af0d2cb7c17979cb1ddca75d6b96b53019dd999b39e7833192c9004201c3cee6445065620ea05d0087d9ae147a4844e582d64868be5bc6b0232dfe52d languageName: node linkType: hard -"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2": - version: 3.3.2 - resolution: "fast-glob@npm:3.3.2" - dependencies: - "@nodelib/fs.stat": ^2.0.2 - "@nodelib/fs.walk": ^1.2.3 - glob-parent: ^5.1.2 - merge2: ^1.3.0 - micromatch: ^4.0.4 - checksum: 900e4979f4dbc3313840078419245621259f349950411ca2fa445a2f9a1a6d98c3b5e7e0660c5ccd563aa61abe133a21765c6c0dec8e57da1ba71d8000b05ec1 +"he@npm:^1.2.0": + version: 1.2.0 + resolution: "he@npm:1.2.0" + bin: + he: bin/he + checksum: 3d4d6babccccd79c5c5a3f929a68af33360d6445587d628087f39a965079d84f18ce9c3d3f917ee1e3978916fc833bb8b29377c3b403f919426f91bc6965e7a7 languageName: node linkType: hard -"fast-json-patch@npm:^3.1.0": - version: 3.1.1 - resolution: "fast-json-patch@npm:3.1.1" - checksum: c4525b61b2471df60d4b025b4118b036d99778a93431aa44d1084218182841d82ce93056f0f3bbd731a24e6a8e69820128adf1873eb2199a26c62ef58d137833 +"headers-polyfill@npm:3.2.5": + version: 3.2.5 + resolution: "headers-polyfill@npm:3.2.5" + checksum: a3c4bdd661584fd39e40c0f91412abc514616edfbd20d29a75567e591f90ef5c445c8e209b7f3c2b2375d27e95e4690f33417368a168d4832484a93861ab6a3c languageName: node linkType: hard -"fast-json-stable-stringify@npm:^2.0.0, fast-json-stable-stringify@npm:^2.1.0": - version: 2.1.0 - resolution: "fast-json-stable-stringify@npm:2.1.0" - checksum: b191531e36c607977e5b1c47811158733c34ccb3bfde92c44798929e9b4154884378536d26ad90dfecd32e1ffc09c545d23535ad91b3161a27ddbb8ebe0cbecb +"helmet@npm:^6.0.0": + version: 6.2.0 + resolution: "helmet@npm:6.2.0" + checksum: cf01e024244205bd10d70fd2f3874244b72ba37a10a4604e4383bbd63fe1438ee24bae7672c4ee5c5e16e6cd88ac58003274034fab0ba199761471555a322b37 languageName: node linkType: hard -"fast-levenshtein@npm:^2.0.6, fast-levenshtein@npm:~2.0.6": - version: 2.0.6 - resolution: "fast-levenshtein@npm:2.0.6" - checksum: 92cfec0a8dfafd9c7a15fba8f2cc29cd0b62b85f056d99ce448bbcd9f708e18ab2764bda4dd5158364f4145a7c72788538994f0d1787b956ef0d1062b0f7c24c +"hexoid@npm:^1.0.0": + version: 1.0.0 + resolution: "hexoid@npm:1.0.0" + checksum: 27a148ca76a2358287f40445870116baaff4a0ed0acc99900bf167f0f708ffd82e044ff55e9949c71963852b580fc024146d3ac6d5d76b508b78d927fa48ae2d languageName: node linkType: hard -"fast-memoize@npm:^2.5.2": - version: 2.5.2 - resolution: "fast-memoize@npm:2.5.2" - checksum: 79fa759719ba4eac7e8c22fb3b0eb3f18f4a31e218c00b1eb4a5b53c5781921133a6b84472d59ec5a6ea8f26ad57b43cd99a350c0547ccce51489bc9a5f0b28d +"hey-listen@npm:^1.0.8": + version: 1.0.8 + resolution: "hey-listen@npm:1.0.8" + checksum: 6bad60b367688f5348e25e7ca3276a74b59ac5a09b0455e6ff8ab7d4a9e38cd2116c708a7dcd8a954d27253ce1d8717ec891d175723ea739885b828cf44e4072 languageName: node linkType: hard -"fast-safe-stringify@npm:2.1.1, fast-safe-stringify@npm:^2.1.1": - version: 2.1.1 - resolution: "fast-safe-stringify@npm:2.1.1" - checksum: a851cbddc451745662f8f00ddb622d6766f9bd97642dabfd9a405fb0d646d69fc0b9a1243cbf67f5f18a39f40f6fa821737651ff1bceeba06c9992ca2dc5bd3d +"highlight.js@npm:^10.4.1, highlight.js@npm:^10.7.2, highlight.js@npm:~10.7.0": + version: 10.7.3 + resolution: "highlight.js@npm:10.7.3" + checksum: defeafcd546b535d710d8efb8e650af9e3b369ef53e28c3dc7893eacfe263200bba4c5fcf43524ae66d5c0c296b1af0870523ceae3e3104d24b7abf6374a4fea languageName: node linkType: hard -"fast-uri@npm:^3.0.1": - version: 3.0.3 - resolution: "fast-uri@npm:3.0.3" - checksum: c52e6c86465f5c240e84a4485fb001088cc743d261a4b54b0050ce4758b1648bdbe53da1328ef9620149dca1435e3de64184f226d7c0a3656cb5837b3491e149 +"highlightjs-vue@npm:^1.0.0": + version: 1.0.0 + resolution: "highlightjs-vue@npm:1.0.0" + checksum: 895f2dd22c93a441aca7df8d21f18c00697537675af18832e50810a071715f79e45eda677e6244855f325234c6a06f7bd76f8f20bd602040fc350c80ac7725e4 languageName: node linkType: hard -"fast-xml-parser@npm:4.4.1": - version: 4.4.1 - resolution: "fast-xml-parser@npm:4.4.1" +"history@npm:^5.0.0, history@npm:^5.3.0": + version: 5.3.0 + resolution: "history@npm:5.3.0" dependencies: - strnum: ^1.0.5 - bin: - fxparser: src/cli/cli.js - checksum: f440c01cd141b98789ae777503bcb6727393296094cc82924ae9f88a5b971baa4eec7e65306c7e07746534caa661fc83694ff437d9012dc84dee39dfbfaab947 + "@babel/runtime": ^7.7.6 + checksum: d73c35df49d19ac172f9547d30a21a26793e83f16a78386d99583b5bf1429cc980799fcf1827eb215d31816a6600684fba9686ce78104e23bd89ec239e7c726f languageName: node linkType: hard -"fast-xml-parser@npm:^4.4.1": - version: 4.5.0 - resolution: "fast-xml-parser@npm:4.5.0" +"hmac-drbg@npm:^1.0.1": + version: 1.0.1 + resolution: "hmac-drbg@npm:1.0.1" dependencies: - strnum: ^1.0.5 - bin: - fxparser: src/cli/cli.js - checksum: 696dc98da46f0f48eb26dfe1640a53043ea64f2420056374e62abbb5e620f092f8df3c3ff3195505a2eefab2057db3bf0ebaac63557f277934f6cce4e7da027c + hash.js: ^1.0.3 + minimalistic-assert: ^1.0.0 + minimalistic-crypto-utils: ^1.0.1 + checksum: bd30b6a68d7f22d63f10e1888aee497d7c2c5c0bb469e66bbdac99f143904d1dfe95f8131f95b3e86c86dd239963c9d972fcbe147e7cffa00e55d18585c43fe0 languageName: node linkType: hard -"fastq@npm:^1.6.0": - version: 1.17.1 - resolution: "fastq@npm:1.17.1" +"hoist-non-react-statics@npm:^3.3.0, hoist-non-react-statics@npm:^3.3.1, hoist-non-react-statics@npm:^3.3.2": + version: 3.3.2 + resolution: "hoist-non-react-statics@npm:3.3.2" dependencies: - reusify: ^1.0.4 - checksum: a8c5b26788d5a1763f88bae56a8ddeee579f935a831c5fe7a8268cea5b0a91fbfe705f612209e02d639b881d7b48e461a50da4a10cfaa40da5ca7cc9da098d88 + react-is: ^16.7.0 + checksum: b1538270429b13901ee586aa44f4cc3ecd8831c061d06cb8322e50ea17b3f5ce4d0e2e66394761e6c8e152cd8c34fb3b4b690116c6ce2bd45b18c746516cb9e8 languageName: node linkType: hard -"faye-websocket@npm:^0.11.3": - version: 0.11.4 - resolution: "faye-websocket@npm:0.11.4" +"homedir-polyfill@npm:^1.0.1": + version: 1.0.3 + resolution: "homedir-polyfill@npm:1.0.3" dependencies: - websocket-driver: ">=0.5.1" - checksum: d49a62caf027f871149fc2b3f3c7104dc6d62744277eb6f9f36e2d5714e847d846b9f7f0d0b7169b25a012e24a594cde11a93034b30732e4c683f20b8a5019fa + parse-passwd: ^1.0.0 + checksum: 18dd4db87052c6a2179d1813adea0c4bfcfa4f9996f0e226fefb29eb3d548e564350fa28ec46b0bf1fbc0a1d2d6922ceceb80093115ea45ff8842a4990139250 languageName: node linkType: hard -"fb-watchman@npm:^2.0.0": - version: 2.0.2 - resolution: "fb-watchman@npm:2.0.2" - dependencies: - bser: 2.1.1 - checksum: b15a124cef28916fe07b400eb87cbc73ca082c142abf7ca8e8de6af43eca79ca7bd13eb4d4d48240b3bd3136eaac40d16e42d6edf87a8e5d1dd8070626860c78 +"hoopy@npm:^0.1.4": + version: 0.1.4 + resolution: "hoopy@npm:0.1.4" + checksum: cfa60c7684c5e1ee4efe26e167bc54b73f839ffb59d1d44a5c4bf891e26b4f5bcc666555219a98fec95508fea4eda3a79540c53c05cc79afc1f66f9a238f4d9e + languageName: node + linkType: hard + +"hpack.js@npm:^2.1.6": + version: 2.1.6 + resolution: "hpack.js@npm:2.1.6" + dependencies: + inherits: ^2.0.1 + obuf: ^1.0.0 + readable-stream: ^2.0.1 + wbuf: ^1.1.0 + checksum: 2de144115197967ad6eeee33faf41096c6ba87078703c5cb011632dcfbffeb45784569e0cf02c317bd79c48375597c8ec88c30fff5bb0b023e8f654fb6e9c06e languageName: node linkType: hard -"fecha@npm:^4.2.0": - version: 4.2.3 - resolution: "fecha@npm:4.2.3" - checksum: f94e2fb3acf5a7754165d04549460d3ae6c34830394d20c552197e3e000035d69732d74af04b9bed3283bf29fe2a9ebdcc0085e640b0be3cc3658b9726265e31 +"hpagent@npm:^1.2.0": + version: 1.2.0 + resolution: "hpagent@npm:1.2.0" + checksum: b029da695edae438cee4da2a437386f9db4ac27b3ceb7306d02e1b586c9c194741ed2e943c8a222e0cfefaf27ee3f863aca7ba1721b0950a2a19bf25bc0d85e2 languageName: node linkType: hard -"figures@npm:^3.0.0": - version: 3.2.0 - resolution: "figures@npm:3.2.0" +"html-encoding-sniffer@npm:^2.0.1": + version: 2.0.1 + resolution: "html-encoding-sniffer@npm:2.0.1" dependencies: - escape-string-regexp: ^1.0.5 - checksum: 85a6ad29e9aca80b49b817e7c89ecc4716ff14e3779d9835af554db91bac41c0f289c418923519392a1e582b4d10482ad282021330cd045bb7b80c84152f2a2b + whatwg-encoding: ^1.0.5 + checksum: bf30cce461015ed7e365736fcd6a3063c7bc016a91f74398ef6158886970a96333938f7c02417ab3c12aa82e3e53b40822145facccb9ddfbcdc15a879ae4d7ba languageName: node linkType: hard -"file-entry-cache@npm:^6.0.1": - version: 6.0.1 - resolution: "file-entry-cache@npm:6.0.1" +"html-encoding-sniffer@npm:^3.0.0": + version: 3.0.0 + resolution: "html-encoding-sniffer@npm:3.0.0" dependencies: - flat-cache: ^3.0.4 - checksum: f49701feaa6314c8127c3c2f6173cfefff17612f5ed2daaafc6da13b5c91fd43e3b2a58fd0d63f9f94478a501b167615931e7200e31485e320f74a33885a9c74 + whatwg-encoding: ^2.0.0 + checksum: 8d806aa00487e279e5ccb573366a951a9f68f65c90298eac9c3a2b440a7ffe46615aff2995a2f61c6746c639234e6179a97e18ca5ccbbf93d3725ef2099a4502 languageName: node linkType: hard -"file-uri-to-path@npm:1.0.0": - version: 1.0.0 - resolution: "file-uri-to-path@npm:1.0.0" - checksum: b648580bdd893a008c92c7ecc96c3ee57a5e7b6c4c18a9a09b44fb5d36d79146f8e442578bc0e173dc027adf3987e254ba1dfd6e3ec998b7c282873010502144 +"html-entities@npm:^2.1.0, html-entities@npm:^2.5.2": + version: 2.5.2 + resolution: "html-entities@npm:2.5.2" + checksum: b23f4a07d33d49ade1994069af4e13d31650e3fb62621e92ae10ecdf01d1a98065c78fd20fdc92b4c7881612210b37c275f2c9fba9777650ab0d6f2ceb3b99b6 languageName: node linkType: hard -"filesize@npm:^8.0.6": - version: 8.0.7 - resolution: "filesize@npm:8.0.7" - checksum: 8603d27c5287b984cb100733640645e078f5f5ad65c6d913173e01fb99e09b0747828498fd86647685ccecb69be31f3587b9739ab1e50732116b2374aff4cbf9 +"html-escaper@npm:^2.0.0": + version: 2.0.2 + resolution: "html-escaper@npm:2.0.2" + checksum: d2df2da3ad40ca9ee3a39c5cc6475ef67c8f83c234475f24d8e9ce0dc80a2c82df8e1d6fa78ddd1e9022a586ea1bd247a615e80a5cd9273d90111ddda7d9e974 languageName: node linkType: hard -"fill-range@npm:^7.1.1": - version: 7.1.1 - resolution: "fill-range@npm:7.1.1" +"html-minifier-terser@npm:^6.0.2": + version: 6.1.0 + resolution: "html-minifier-terser@npm:6.1.0" dependencies: - to-regex-range: ^5.0.1 - checksum: b4abfbca3839a3d55e4ae5ec62e131e2e356bf4859ce8480c64c4876100f4df292a63e5bb1618e1d7460282ca2b305653064f01654474aa35c68000980f17798 + camel-case: ^4.1.2 + clean-css: ^5.2.2 + commander: ^8.3.0 + he: ^1.2.0 + param-case: ^3.0.4 + relateurl: ^0.2.7 + terser: ^5.10.0 + bin: + html-minifier-terser: cli.js + checksum: ac52c14006476f773204c198b64838477859dc2879490040efab8979c0207424da55d59df7348153f412efa45a0840a1ca3c757bf14767d23a15e3e389d37a93 languageName: node linkType: hard -"finalhandler@npm:1.3.1": - version: 1.3.1 - resolution: "finalhandler@npm:1.3.1" +"html-webpack-plugin@npm:^5.3.1": + version: 5.6.3 + resolution: "html-webpack-plugin@npm:5.6.3" dependencies: - debug: 2.6.9 - encodeurl: ~2.0.0 - escape-html: ~1.0.3 - on-finished: 2.4.1 - parseurl: ~1.3.3 - statuses: 2.0.1 - unpipe: ~1.0.0 - checksum: a8c58cd97c9cd47679a870f6833a7b417043f5a288cd6af6d0f49b476c874a506100303a128b6d3b654c3d74fa4ff2ffed68a48a27e8630cda5c918f2977dcf4 + "@types/html-minifier-terser": ^6.0.0 + html-minifier-terser: ^6.0.2 + lodash: ^4.17.21 + pretty-error: ^4.0.0 + tapable: ^2.0.0 + peerDependencies: + "@rspack/core": 0.x || 1.x + webpack: ^5.20.0 + peerDependenciesMeta: + "@rspack/core": + optional: true + webpack: + optional: true + checksum: 59e7d971b0cfd9ba34c7acaa3c161e43c62596474dd8cd35d7b690498ff5891f21296de0aa1d2e7810348caa657e938461267155dda47913b5eeca7124406270 languageName: node linkType: hard -"find-file-up@npm:^2.0.1": - version: 2.0.1 - resolution: "find-file-up@npm:2.0.1" +"htmlparser2@npm:^6.1.0": + version: 6.1.0 + resolution: "htmlparser2@npm:6.1.0" dependencies: - resolve-dir: ^1.0.1 - checksum: dfe820bfb80e75bed5dd5080057858c0ad2393e1438c48a3bb682663e9ecdcfbe3224ed4768bfedd00776800b4ae76bc8953d250d15ae3feabf381d2c6d04268 + domelementtype: ^2.0.1 + domhandler: ^4.0.0 + domutils: ^2.5.2 + entities: ^2.0.0 + checksum: 81a7b3d9c3bb9acb568a02fc9b1b81ffbfa55eae7f1c41ae0bf840006d1dbf54cb3aa245b2553e2c94db674840a9f0fdad7027c9a9d01a062065314039058c4e languageName: node linkType: hard -"find-pkg@npm:2.0.0": - version: 2.0.0 - resolution: "find-pkg@npm:2.0.0" +"http-assert@npm:^1.3.0": + version: 1.5.0 + resolution: "http-assert@npm:1.5.0" dependencies: - find-file-up: ^2.0.1 - checksum: 44785204c8bbbdfeaece6b834ba81a35163421c30e20f531281d26e6b5890663d7ac884b82a9aebf6ce23e479336cd6f70ea5597da35495c16abdeba2fd4f845 + deep-equal: ~1.0.1 + http-errors: ~1.8.0 + checksum: 69c9b3c14cf8b2822916360a365089ce936c883c49068f91c365eccba5c141a9964d19fdda589150a480013bf503bf37d8936c732e9635819339e730ab0e7527 languageName: node linkType: hard -"find-up@npm:^2.1.0": - version: 2.1.0 - resolution: "find-up@npm:2.1.0" - dependencies: - locate-path: ^2.0.0 - checksum: 43284fe4da09f89011f08e3c32cd38401e786b19226ea440b75386c1b12a4cb738c94969808d53a84f564ede22f732c8409e3cfc3f7fb5b5c32378ad0bbf28bd +"http-cache-semantics@npm:^4.1.0, http-cache-semantics@npm:^4.1.1": + version: 4.1.1 + resolution: "http-cache-semantics@npm:4.1.1" + checksum: 83ac0bc60b17a3a36f9953e7be55e5c8f41acc61b22583060e8dedc9dd5e3607c823a88d0926f9150e571f90946835c7fe150732801010845c72cd8bbff1a236 languageName: node linkType: hard -"find-up@npm:^3.0.0": - version: 3.0.0 - resolution: "find-up@npm:3.0.0" - dependencies: - locate-path: ^3.0.0 - checksum: 38eba3fe7a66e4bc7f0f5a1366dc25508b7cfc349f852640e3678d26ad9a6d7e2c43eff0a472287de4a9753ef58f066a0ea892a256fa3636ad51b3fe1e17fae9 +"http-deceiver@npm:^1.2.7": + version: 1.2.7 + resolution: "http-deceiver@npm:1.2.7" + checksum: 64d7d1ae3a6933eb0e9a94e6f27be4af45a53a96c3c34e84ff57113787105a89fff9d1c3df263ef63add823df019b0e8f52f7121e32393bb5ce9a713bf100b41 languageName: node linkType: hard -"find-up@npm:^4.0.0, find-up@npm:^4.1.0": - version: 4.1.0 - resolution: "find-up@npm:4.1.0" +"http-encoding@npm:^2.0.1": + version: 2.0.1 + resolution: "http-encoding@npm:2.0.1" dependencies: - locate-path: ^5.0.0 - path-exists: ^4.0.0 - checksum: 4c172680e8f8c1f78839486e14a43ef82e9decd0e74145f40707cc42e7420506d5ec92d9a11c22bd2c48fb0c384ea05dd30e10dd152fefeec6f2f75282a8b844 + brotli-wasm: ^3.0.0 + pify: ^5.0.0 + zstd-codec: ^0.1.5 + checksum: c34a1cd81ad1c08e6c6aba5aef3f4d4bc4a6c84f8b3511776eb62006beeee48a104ce1630e3c8497f66d5c0913195dea596e776336dd5a598bd7fe06d27e1395 languageName: node linkType: hard -"find-up@npm:^5.0.0": - version: 5.0.0 - resolution: "find-up@npm:5.0.0" +"http-errors@npm:2.0.0": + version: 2.0.0 + resolution: "http-errors@npm:2.0.0" dependencies: - locate-path: ^6.0.0 - path-exists: ^4.0.0 - checksum: 07955e357348f34660bde7920783204ff5a26ac2cafcaa28bace494027158a97b9f56faaf2d89a6106211a8174db650dd9f503f9c0d526b1202d5554a00b9095 + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + checksum: 9b0a3782665c52ce9dc658a0d1560bcb0214ba5699e4ea15aefb2a496e2ca83db03ebc42e1cce4ac1f413e4e0d2d736a3fd755772c556a9a06853ba2a0b7d920 languageName: node linkType: hard -"flat-cache@npm:^3.0.4": - version: 3.2.0 - resolution: "flat-cache@npm:3.2.0" +"http-errors@npm:^1.6.3, http-errors@npm:~1.8.0": + version: 1.8.1 + resolution: "http-errors@npm:1.8.1" dependencies: - flatted: ^3.2.9 - keyv: ^4.5.3 - rimraf: ^3.0.2 - checksum: e7e0f59801e288b54bee5cb9681e9ee21ee28ef309f886b312c9d08415b79fc0f24ac842f84356ce80f47d6a53de62197ce0e6e148dc42d5db005992e2a756ec + depd: ~1.1.2 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: ">= 1.5.0 < 2" + toidentifier: 1.0.1 + checksum: d3c7e7e776fd51c0a812baff570bdf06fe49a5dc448b700ab6171b1250e4cf7db8b8f4c0b133e4bfe2451022a5790c1ca6c2cae4094dedd6ac8304a1267f91d2 languageName: node linkType: hard -"flatted@npm:^3.2.7, flatted@npm:^3.2.9": - version: 3.3.1 - resolution: "flatted@npm:3.3.1" - checksum: 85ae7181650bb728c221e7644cbc9f4bf28bc556f2fc89bb21266962bdf0ce1029cc7acc44bb646cd469d9baac7c317f64e841c4c4c00516afa97320cdac7f94 +"http-errors@npm:~1.6.2": + version: 1.6.3 + resolution: "http-errors@npm:1.6.3" + dependencies: + depd: ~1.1.2 + inherits: 2.0.3 + setprototypeof: 1.1.0 + statuses: ">= 1.4.0 < 2" + checksum: a9654ee027e3d5de305a56db1d1461f25709ac23267c6dc28cdab8323e3f96caa58a9a6a5e93ac15d7285cee0c2f019378c3ada9026e7fe19c872d695f27de7c languageName: node linkType: hard -"fn.name@npm:1.x.x": - version: 1.1.0 - resolution: "fn.name@npm:1.1.0" - checksum: e357144f48cfc9a7f52a82bbc6c23df7c8de639fce049cac41d41d62cabb740cdb9f14eddc6485e29c933104455bdd7a69bb14a9012cef9cd4fa252a4d0cf293 +"http-parser-js@npm:>=0.5.1": + version: 0.5.8 + resolution: "http-parser-js@npm:0.5.8" + checksum: 6bbdf2429858e8cf13c62375b0bfb6dc3955ca0f32e58237488bc86cd2378f31d31785fd3ac4ce93f1c74e0189cf8823c91f5cb061696214fd368d2452dc871d languageName: node linkType: hard -"follow-redirects@npm:^1.0.0, follow-redirects@npm:^1.15.6": - version: 1.15.9 - resolution: "follow-redirects@npm:1.15.9" - peerDependenciesMeta: - debug: - optional: true - checksum: 859e2bacc7a54506f2bf9aacb10d165df78c8c1b0ceb8023f966621b233717dab56e8d08baadc3ad3b9db58af290413d585c999694b7c146aaf2616340c3d2a6 +"http-proxy-agent@npm:^4.0.1": + version: 4.0.1 + resolution: "http-proxy-agent@npm:4.0.1" + dependencies: + "@tootallnate/once": 1 + agent-base: 6 + debug: 4 + checksum: c6a5da5a1929416b6bbdf77b1aca13888013fe7eb9d59fc292e25d18e041bb154a8dfada58e223fc7b76b9b2d155a87e92e608235201f77d34aa258707963a82 languageName: node linkType: hard -"for-each@npm:^0.3.3": - version: 0.3.3 - resolution: "for-each@npm:0.3.3" +"http-proxy-agent@npm:^5.0.0": + version: 5.0.0 + resolution: "http-proxy-agent@npm:5.0.0" dependencies: - is-callable: ^1.1.3 - checksum: 6c48ff2bc63362319c65e2edca4a8e1e3483a2fabc72fbe7feaf8c73db94fc7861bd53bc02c8a66a0c1dd709da6b04eec42e0abdd6b40ce47305ae92a25e5d28 + "@tootallnate/once": 2 + agent-base: 6 + debug: 4 + checksum: e2ee1ff1656a131953839b2a19cd1f3a52d97c25ba87bd2559af6ae87114abf60971e498021f9b73f9fd78aea8876d1fb0d4656aac8a03c6caa9fc175f22b786 languageName: node linkType: hard -"foreground-child@npm:^3.1.0": - version: 3.3.0 - resolution: "foreground-child@npm:3.3.0" +"http-proxy-agent@npm:^7.0.0, http-proxy-agent@npm:^7.0.1": + version: 7.0.2 + resolution: "http-proxy-agent@npm:7.0.2" dependencies: - cross-spawn: ^7.0.0 - signal-exit: ^4.0.1 - checksum: 1989698488f725b05b26bc9afc8a08f08ec41807cd7b92ad85d96004ddf8243fd3e79486b8348c64a3011ae5cc2c9f0936af989e1f28339805d8bc178a75b451 + agent-base: ^7.1.0 + debug: ^4.3.4 + checksum: 670858c8f8f3146db5889e1fa117630910101db601fff7d5a8aa637da0abedf68c899f03d3451cac2f83bcc4c3d2dabf339b3aa00ff8080571cceb02c3ce02f3 languageName: node linkType: hard -"forever-agent@npm:~0.6.1": - version: 0.6.1 - resolution: "forever-agent@npm:0.6.1" - checksum: 766ae6e220f5fe23676bb4c6a99387cec5b7b62ceb99e10923376e27bfea72f3c3aeec2ba5f45f3f7ba65d6616965aa7c20b15002b6860833bb6e394dea546a8 +"http-proxy-middleware@npm:*": + version: 3.0.3 + resolution: "http-proxy-middleware@npm:3.0.3" + dependencies: + "@types/http-proxy": ^1.17.15 + debug: ^4.3.6 + http-proxy: ^1.18.1 + is-glob: ^4.0.3 + is-plain-object: ^5.0.0 + micromatch: ^4.0.8 + checksum: 7486cd36f8123aaeb9e5412ecdf1bbfb69a9c7a5cd51cdb202653fe7201fc6073849f981d814b429527e42bb825d57af09ba7b8ba9d95e194dbd7dd83bf51643 languageName: node linkType: hard -"fork-ts-checker-webpack-plugin@npm:^6.5.0": - version: 6.5.3 - resolution: "fork-ts-checker-webpack-plugin@npm:6.5.3" +"http-proxy-middleware@npm:^2.0.0, http-proxy-middleware@npm:^2.0.6, http-proxy-middleware@npm:^2.0.7": + version: 2.0.7 + resolution: "http-proxy-middleware@npm:2.0.7" dependencies: - "@babel/code-frame": ^7.8.3 - "@types/json-schema": ^7.0.5 - chalk: ^4.1.0 - chokidar: ^3.4.2 - cosmiconfig: ^6.0.0 - deepmerge: ^4.2.2 - fs-extra: ^9.0.0 - glob: ^7.1.6 - memfs: ^3.1.2 - minimatch: ^3.0.4 - schema-utils: 2.7.0 - semver: ^7.3.2 - tapable: ^1.0.0 + "@types/http-proxy": ^1.17.8 + http-proxy: ^1.18.1 + is-glob: ^4.0.1 + is-plain-obj: ^3.0.0 + micromatch: ^4.0.2 peerDependencies: - eslint: ">= 6" - typescript: ">= 2.7" - vue-template-compiler: "*" - webpack: ">= 4" + "@types/express": ^4.17.13 peerDependenciesMeta: - eslint: - optional: true - vue-template-compiler: + "@types/express": optional: true - checksum: 9732a49bfeed8fc23e6e8a59795fa7c238edeba91040a9b520db54b4d316dda27f9f1893d360e296fd0ad8930627d364417d28a8c7007fba60cc730ebfce4956 + checksum: 18caa21145917aa1054740353916e8f03f5a3a93bede9106f1f44d84f7b174df17af1c72bf5fade5cc440c2058ee813f47cbb2bdd6ae6874af1cf33e0ac575f3 languageName: node linkType: hard -"fork-ts-checker-webpack-plugin@npm:^7.0.0-alpha.8": - version: 7.3.0 - resolution: "fork-ts-checker-webpack-plugin@npm:7.3.0" +"http-proxy@npm:^1.18.1": + version: 1.18.1 + resolution: "http-proxy@npm:1.18.1" dependencies: - "@babel/code-frame": ^7.16.7 - chalk: ^4.1.2 - chokidar: ^3.5.3 - cosmiconfig: ^7.0.1 - deepmerge: ^4.2.2 - fs-extra: ^10.0.0 - memfs: ^3.4.1 - minimatch: ^3.0.4 - node-abort-controller: ^3.0.1 - schema-utils: ^3.1.1 - semver: ^7.3.5 - tapable: ^2.2.1 - peerDependencies: - typescript: ">3.6.0" - vue-template-compiler: "*" - webpack: ^5.11.0 - peerDependenciesMeta: - vue-template-compiler: - optional: true - checksum: 49c2af801e264349a3fdf0afe4ad33065960c43bd7e56c8351a5e0d32c8c54146cc89d6a0b70b1e0f810de96787bd0c7fd275cc8727a9aea1a077c53de99659a + eventemitter3: ^4.0.0 + follow-redirects: ^1.0.0 + requires-port: ^1.0.0 + checksum: f5bd96bf83e0b1e4226633dbb51f8b056c3e6321917df402deacec31dd7fe433914fc7a2c1831cf7ae21e69c90b3a669b8f434723e9e8b71fd68afe30737b6a5 languageName: node linkType: hard -"fork-ts-checker-webpack-plugin@npm:^9.0.0": - version: 9.0.2 - resolution: "fork-ts-checker-webpack-plugin@npm:9.0.2" +"http-signature@npm:~1.2.0": + version: 1.2.0 + resolution: "http-signature@npm:1.2.0" dependencies: - "@babel/code-frame": ^7.16.7 - chalk: ^4.1.2 - chokidar: ^3.5.3 - cosmiconfig: ^8.2.0 - deepmerge: ^4.2.2 - fs-extra: ^10.0.0 - memfs: ^3.4.1 - minimatch: ^3.0.4 - node-abort-controller: ^3.0.1 - schema-utils: ^3.1.1 - semver: ^7.3.5 - tapable: ^2.2.1 - peerDependencies: - typescript: ">3.6.0" - webpack: ^5.11.0 - checksum: 136a87bfa36cb6ca27d2ae0feb3c6cabe0de734c1c1ed38f95b71ddb3eb4b6c461829a2dbb04f18f0f717fc6341f544327598255758c269cec9774ccee035afc + assert-plus: ^1.0.0 + jsprim: ^1.2.2 + sshpk: ^1.7.0 + checksum: 3324598712266a9683585bb84a75dec4fd550567d5e0dd4a0fff6ff3f74348793404d3eeac4918fa0902c810eeee1a86419e4a2e92a164132dfe6b26743fb47c languageName: node linkType: hard -"form-data@npm:^2.5.0": - version: 2.5.2 - resolution: "form-data@npm:2.5.2" +"http2-wrapper@npm:^2.2.1": + version: 2.2.1 + resolution: "http2-wrapper@npm:2.2.1" dependencies: - asynckit: ^0.4.0 - combined-stream: ^1.0.6 - mime-types: ^2.1.12 - safe-buffer: ^5.2.1 - checksum: 89ed3d96238d6fa874d75435e20f1aad28a1c22a88ab4e726ac4f6b0d29bef33d7e5aca51248c1070eccbbf4df94020a53842e800b2f1fb63073881a268113b4 + quick-lru: ^5.1.1 + resolve-alpn: ^1.2.0 + checksum: e95e55e22c6fd61182ce81fecb9b7da3af680d479febe8ad870d05f7ebbc9f076e455193766f4e7934e50913bf1d8da3ba121fb5cd2928892390b58cf9d5c509 languageName: node linkType: hard -"form-data@npm:^4.0.0": - version: 4.0.1 - resolution: "form-data@npm:4.0.1" - dependencies: - asynckit: ^0.4.0 - combined-stream: ^1.0.8 - mime-types: ^2.1.12 - checksum: ccee458cd5baf234d6b57f349fe9cc5f9a2ea8fd1af5ecda501a18fd1572a6dd3bf08a49f00568afd995b6a65af34cb8dec083cf9d582c4e621836499498dd84 +"https-browserify@npm:^1.0.0": + version: 1.0.0 + resolution: "https-browserify@npm:1.0.0" + checksum: 09b35353e42069fde2435760d13f8a3fb7dd9105e358270e2e225b8a94f811b461edd17cb57594e5f36ec1218f121c160ddceeec6e8be2d55e01dcbbbed8cbae languageName: node linkType: hard -"form-data@npm:~2.3.2": - version: 2.3.3 - resolution: "form-data@npm:2.3.3" +"https-proxy-agent@npm:^5.0.0, https-proxy-agent@npm:^5.0.1": + version: 5.0.1 + resolution: "https-proxy-agent@npm:5.0.1" dependencies: - asynckit: ^0.4.0 - combined-stream: ^1.0.6 - mime-types: ^2.1.12 - checksum: 10c1780fa13dbe1ff3100114c2ce1f9307f8be10b14bf16e103815356ff567b6be39d70fc4a40f8990b9660012dc24b0f5e1dde1b6426166eb23a445ba068ca3 + agent-base: 6 + debug: 4 + checksum: 571fccdf38184f05943e12d37d6ce38197becdd69e58d03f43637f7fa1269cf303a7d228aa27e5b27bbd3af8f09fd938e1c91dcfefff2df7ba77c20ed8dfc765 languageName: node linkType: hard -"formidable@npm:^2.1.2": - version: 2.1.2 - resolution: "formidable@npm:2.1.2" +"https-proxy-agent@npm:^7.0.0, https-proxy-agent@npm:^7.0.1, https-proxy-agent@npm:^7.0.3, https-proxy-agent@npm:^7.0.6": + version: 7.0.6 + resolution: "https-proxy-agent@npm:7.0.6" dependencies: - dezalgo: ^1.0.4 - hexoid: ^1.0.0 - once: ^1.4.0 - qs: ^6.11.0 - checksum: 81c8e5d89f5eb873e992893468f0de22c01678ca3d315db62be0560f9de1c77d4faefc9b1f4575098eb2263b3c81ba1024833a9fc3206297ddbac88a4f69b7a8 + agent-base: ^7.1.2 + debug: 4 + checksum: b882377a120aa0544846172e5db021fa8afbf83fea2a897d397bd2ddd8095ab268c24bc462f40a15f2a8c600bf4aa05ce52927f70038d4014e68aefecfa94e8d languageName: node linkType: hard -"forwarded@npm:0.2.0": - version: 0.2.0 - resolution: "forwarded@npm:0.2.0" - checksum: fd27e2394d8887ebd16a66ffc889dc983fbbd797d5d3f01087c020283c0f019a7d05ee85669383d8e0d216b116d720fc0cef2f6e9b7eb9f4c90c6e0bc7fd28e6 +"human-id@npm:^1.0.2": + version: 1.0.2 + resolution: "human-id@npm:1.0.2" + checksum: 95ee57ffae849f008e2ef3fe6e437be8c999861b4256f18c3b194c8928670a8a149e0576917105d5fd77e5edbb621c5a4736fade20bb7bf130113c1ebc95cb74 languageName: node linkType: hard -"fresh@npm:0.5.2, fresh@npm:~0.5.2": - version: 0.5.2 - resolution: "fresh@npm:0.5.2" - checksum: 13ea8b08f91e669a64e3ba3a20eb79d7ca5379a81f1ff7f4310d54e2320645503cc0c78daedc93dfb6191287295f6479544a649c64d8e41a1c0fb0c221552346 +"human-signals@npm:^2.1.0": + version: 2.1.0 + resolution: "human-signals@npm:2.1.0" + checksum: b87fd89fce72391625271454e70f67fe405277415b48bcc0117ca73d31fa23a4241787afdc8d67f5a116cf37258c052f59ea82daffa72364d61351423848e3b8 languageName: node linkType: hard -"fromentries@npm:^1.3.1": - version: 1.3.2 - resolution: "fromentries@npm:1.3.2" - checksum: 33729c529ce19f5494f846f0dd4945078f4e37f4e8955f4ae8cc7385c218f600e9d93a7d225d17636c20d1889106fd87061f911550861b7072f53bf891e6b341 +"humanize-duration@npm:^3.25.1": + version: 3.32.1 + resolution: "humanize-duration@npm:3.32.1" + checksum: 17f6f2ec09a931eb0bf7de1fc8ac01f90174f366f60390289bd0797c6e4545255bd5d770dd18909c9b21685d76cc190b3a8ec880d2ecc088a1ad032e0d2f57cb languageName: node linkType: hard -"fs-constants@npm:^1.0.0": - version: 1.0.0 - resolution: "fs-constants@npm:1.0.0" - checksum: 18f5b718371816155849475ac36c7d0b24d39a11d91348cfcb308b4494824413e03572c403c86d3a260e049465518c4f0d5bd00f0371cdfcad6d4f30a85b350d +"humanize-ms@npm:^1.2.1": + version: 1.2.1 + resolution: "humanize-ms@npm:1.2.1" + dependencies: + ms: ^2.0.0 + checksum: 9c7a74a2827f9294c009266c82031030eae811ca87b0da3dceb8d6071b9bde22c9f3daef0469c3c533cc67a97d8a167cd9fc0389350e5f415f61a79b171ded16 languageName: node linkType: hard -"fs-extra@npm:10.1.0, fs-extra@npm:^10.0.0, fs-extra@npm:^10.1.0": - version: 10.1.0 - resolution: "fs-extra@npm:10.1.0" - dependencies: - graceful-fs: ^4.2.0 - jsonfile: ^6.0.1 - universalify: ^2.0.0 - checksum: dc94ab37096f813cc3ca12f0f1b5ad6744dfed9ed21e953d72530d103cea193c2f81584a39e9dee1bea36de5ee66805678c0dddc048e8af1427ac19c00fffc50 +"hyperdyperid@npm:^1.2.0": + version: 1.2.0 + resolution: "hyperdyperid@npm:1.2.0" + checksum: 210029d1c86926f09109f6317d143f8b056fc38e8dd11b0c3e3205fc6c6ff8429fb55b4b9c2bce065462719ed9d34366eced387aaa0035d93eb76b306a8547ef languageName: node linkType: hard -"fs-extra@npm:9.1.0, fs-extra@npm:^9.0.0": - version: 9.1.0 - resolution: "fs-extra@npm:9.1.0" - dependencies: - at-least-node: ^1.0.0 - graceful-fs: ^4.2.0 - jsonfile: ^6.0.1 - universalify: ^2.0.0 - checksum: ba71ba32e0faa74ab931b7a0031d1523c66a73e225de7426e275e238e312d07313d2da2d33e34a52aa406c8763ade5712eb3ec9ba4d9edce652bcacdc29e6b20 +"hyphenate-style-name@npm:^1.0.3": + version: 1.1.0 + resolution: "hyphenate-style-name@npm:1.1.0" + checksum: b9ed74e29181d96bd58a2d0e62fc4a19879db591dba268275829ff0ae595fcdf11faafaeaa63330a45c3004664d7db1f0fc7cdb372af8ee4615ed8260302c207 languageName: node linkType: hard -"fs-extra@npm:^11.0.0, fs-extra@npm:^11.2.0": - version: 11.2.0 - resolution: "fs-extra@npm:11.2.0" +"i18next@npm:^22.4.15": + version: 22.5.1 + resolution: "i18next@npm:22.5.1" dependencies: - graceful-fs: ^4.2.0 - jsonfile: ^6.0.1 - universalify: ^2.0.0 - checksum: b12e42fa40ba47104202f57b8480dd098aa931c2724565e5e70779ab87605665594e76ee5fb00545f772ab9ace167fe06d2ab009c416dc8c842c5ae6df7aa7e8 + "@babel/runtime": ^7.20.6 + checksum: 175f8ab7fac2abcee147b00cc2d8e7d4fa9b05cdc227f02cac841fc2fd9545ed4a6d88774f594f8ad12dc944e4d34cc8e88aa00c8b9947baef9e859d93abd305 languageName: node linkType: hard -"fs-extra@npm:^7.0.1, fs-extra@npm:~7.0.1": - version: 7.0.1 - resolution: "fs-extra@npm:7.0.1" +"iconv-lite@npm:0.4.24, iconv-lite@npm:^0.4.24": + version: 0.4.24 + resolution: "iconv-lite@npm:0.4.24" dependencies: - graceful-fs: ^4.1.2 - jsonfile: ^4.0.0 - universalify: ^0.1.0 - checksum: 141b9dccb23b66a66cefdd81f4cda959ff89282b1d721b98cea19ba08db3dcbe6f862f28841f3cf24bb299e0b7e6c42303908f65093cb7e201708e86ea5a8dcf + safer-buffer: ">= 2.1.2 < 3" + checksum: bd9f120f5a5b306f0bc0b9ae1edeb1577161503f5f8252a20f1a9e56ef8775c9959fd01c55f2d3a39d9a8abaf3e30c1abeb1895f367dcbbe0a8fd1c9ca01c4f6 languageName: node linkType: hard -"fs-extra@npm:^8.1.0": - version: 8.1.0 - resolution: "fs-extra@npm:8.1.0" +"iconv-lite@npm:0.6, iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2, iconv-lite@npm:^0.6.3": + version: 0.6.3 + resolution: "iconv-lite@npm:0.6.3" dependencies: - graceful-fs: ^4.2.0 - jsonfile: ^4.0.0 - universalify: ^0.1.0 - checksum: bf44f0e6cea59d5ce071bba4c43ca76d216f89e402dc6285c128abc0902e9b8525135aa808adad72c9d5d218e9f4bcc63962815529ff2f684ad532172a284880 + safer-buffer: ">= 2.1.2 < 3.0.0" + checksum: 3f60d47a5c8fc3313317edfd29a00a692cc87a19cac0159e2ce711d0ebc9019064108323b5e493625e25594f11c6236647d8e256fbe7a58f4a3b33b89e6d30bf languageName: node linkType: hard -"fs-minipass@npm:^2.0.0, fs-minipass@npm:^2.1.0": - version: 2.1.0 - resolution: "fs-minipass@npm:2.1.0" - dependencies: - minipass: ^3.0.0 - checksum: 1b8d128dae2ac6cc94230cc5ead341ba3e0efaef82dab46a33d171c044caaa6ca001364178d42069b2809c35a1c3c35079a32107c770e9ffab3901b59af8c8b1 +"icss-replace-symbols@npm:^1.1.0": + version: 1.1.0 + resolution: "icss-replace-symbols@npm:1.1.0" + checksum: 24575b2c2f7e762bfc6f4beee31be9ba98a01cad521b5aa9954090a5de2b5e1bf67814c17e22f9e51b7d798238db8215a173d6c2b4726ce634ce06b68ece8045 languageName: node linkType: hard -"fs-minipass@npm:^3.0.0": - version: 3.0.3 - resolution: "fs-minipass@npm:3.0.3" +"icss-utils@npm:^5.0.0, icss-utils@npm:^5.1.0": + version: 5.1.0 + resolution: "icss-utils@npm:5.1.0" + peerDependencies: + postcss: ^8.1.0 + checksum: 5c324d283552b1269cfc13a503aaaa172a280f914e5b81544f3803bc6f06a3b585fb79f66f7c771a2c052db7982c18bf92d001e3b47282e3abbbb4c4cc488d68 + languageName: node + linkType: hard + +"idb-keyval@npm:5.1.5": + version: 5.1.5 + resolution: "idb-keyval@npm:5.1.5" dependencies: - minipass: ^7.0.3 - checksum: 8722a41109130851d979222d3ec88aabaceeaaf8f57b2a8f744ef8bd2d1ce95453b04a61daa0078822bc5cd21e008814f06fe6586f56fef511e71b8d2394d802 + safari-14-idb-fix: ^1.0.6 + checksum: 6d71d975c5392ddce934a3617b169c25d3b3204f5203d2ffa182c253515922c787292d61eb738aa25ab80fa390e541a416376a6d62a0a2fe7cf112a758f2d8d9 languageName: node linkType: hard -"fs-monkey@npm:^1.0.4": - version: 1.0.6 - resolution: "fs-monkey@npm:1.0.6" - checksum: 4e9986acf197581b10b79d3e63e74252681ca215ef82d4afbd98dcfe86b3f09189ac1d7e8064bc433e4e53cdb5c14fdb38773277d41bba18b1ff8bbdcab01a3a +"identity-obj-proxy@npm:3.0.0": + version: 3.0.0 + resolution: "identity-obj-proxy@npm:3.0.0" + dependencies: + harmony-reflect: ^1.4.6 + checksum: 97559f8ea2aeaa1a880d279d8c49550dce01148321e00a2102cda5ddf9ce622fa1d7f3efc7bed63458af78889de888fdaebaf31c816312298bb3fdd0ef8aaf2c languageName: node linkType: hard -"fs.realpath@npm:^1.0.0": - version: 1.0.0 - resolution: "fs.realpath@npm:1.0.0" - checksum: 99ddea01a7e75aa276c250a04eedeffe5662bce66c65c07164ad6264f9de18fb21be9433ead460e54cff20e31721c811f4fb5d70591799df5f85dce6d6746fd0 +"ieee754@npm:^1.1.13, ieee754@npm:^1.1.4, ieee754@npm:^1.2.1": + version: 1.2.1 + resolution: "ieee754@npm:1.2.1" + checksum: 5144c0c9815e54ada181d80a0b810221a253562422e7c6c3a60b1901154184f49326ec239d618c416c1c5945a2e197107aee8d986a3dd836b53dffefd99b5e7e languageName: node linkType: hard -"fsevents@npm:^2.3.2, fsevents@npm:~2.3.2": - version: 2.3.3 - resolution: "fsevents@npm:2.3.3" +"ignore-walk@npm:^5.0.1": + version: 5.0.1 + resolution: "ignore-walk@npm:5.0.1" dependencies: - node-gyp: latest - checksum: 11e6ea6fea15e42461fc55b4b0e4a0a3c654faa567f1877dbd353f39156f69def97a69936d1746619d656c4b93de2238bf731f6085a03a50cabf287c9d024317 - conditions: os=darwin + minimatch: ^5.0.1 + checksum: 1a4ef35174653a1aa6faab3d9f8781269166536aee36a04946f6e2b319b2475c1903a75ed42f04219274128242f49d0a10e20c4354ee60d9548e97031451150b languageName: node linkType: hard -"fsevents@patch:fsevents@^2.3.2#~builtin, fsevents@patch:fsevents@~2.3.2#~builtin": - version: 2.3.3 - resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin::version=2.3.3&hash=18f3a7" - dependencies: - node-gyp: latest - conditions: os=darwin +"ignore@npm:^5.1.4, ignore@npm:^5.1.8, ignore@npm:^5.2.0, ignore@npm:^5.2.4": + version: 5.3.2 + resolution: "ignore@npm:5.3.2" + checksum: 2acfd32a573260ea522ea0bfeff880af426d68f6831f973129e2ba7363f422923cf53aab62f8369cbf4667c7b25b6f8a3761b34ecdb284ea18e87a5262a865be + languageName: node + linkType: hard + +"immediate@npm:~3.0.5": + version: 3.0.6 + resolution: "immediate@npm:3.0.6" + checksum: f9b3486477555997657f70318cc8d3416159f208bec4cca3ff3442fd266bc23f50f0c9bd8547e1371a6b5e82b821ec9a7044a4f7b944798b25aa3cc6d5e63e62 + languageName: node + linkType: hard + +"immer@npm:^9.0.6, immer@npm:^9.0.7": + version: 9.0.21 + resolution: "immer@npm:9.0.21" + checksum: 70e3c274165995352f6936695f0ef4723c52c92c92dd0e9afdfe008175af39fa28e76aafb3a2ca9d57d1fb8f796efc4dd1e1cc36f18d33fa5b74f3dfb0375432 languageName: node linkType: hard -"function-bind@npm:^1.1.2": - version: 1.1.2 - resolution: "function-bind@npm:1.1.2" - checksum: 2b0ff4ce708d99715ad14a6d1f894e2a83242e4a52ccfcefaee5e40050562e5f6dafc1adbb4ce2d4ab47279a45dc736ab91ea5042d843c3c092820dfe032efb1 +"immutable@npm:^3.x.x": + version: 3.8.2 + resolution: "immutable@npm:3.8.2" + checksum: 41909b386950ff84ca3cfca77c74cfc87d225a914e98e6c57996fa81a328da61a7c32216d6d5abad40f54747ffdc5c4b02b102e6ad1a504c1752efde8041f964 languageName: node linkType: hard -"function.prototype.name@npm:^1.1.6": - version: 1.1.6 - resolution: "function.prototype.name@npm:1.1.6" +"import-cwd@npm:^3.0.0": + version: 3.0.0 + resolution: "import-cwd@npm:3.0.0" dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - functions-have-names: ^1.2.3 - checksum: 7a3f9bd98adab09a07f6e1f03da03d3f7c26abbdeaeee15223f6c04a9fb5674792bdf5e689dac19b97ac71de6aad2027ba3048a9b883aa1b3173eed6ab07f479 + import-from: ^3.0.0 + checksum: f2c4230e8389605154a390124381f9136811306ae4ba1c8017398c3c6926bc5cf75cf89350372b4938f79792ea373776b4efabd27506440ec301ce34c4e867eb languageName: node linkType: hard -"functions-have-names@npm:^1.2.3": - version: 1.2.3 - resolution: "functions-have-names@npm:1.2.3" - checksum: c3f1f5ba20f4e962efb71344ce0a40722163e85bee2101ce25f88214e78182d2d2476aa85ef37950c579eb6cf6ee811c17b3101bb84004bb75655f3e33f3fdb5 +"import-fresh@npm:^3.1.0, import-fresh@npm:^3.2.1, import-fresh@npm:^3.3.0": + version: 3.3.0 + resolution: "import-fresh@npm:3.3.0" + dependencies: + parent-module: ^1.0.0 + resolve-from: ^4.0.0 + checksum: 2cacfad06e652b1edc50be650f7ec3be08c5e5a6f6d12d035c440a42a8cc028e60a5b99ca08a77ab4d6b1346da7d971915828f33cdab730d3d42f08242d09baa languageName: node linkType: hard -"gauge@npm:^4.0.3": - version: 4.0.4 - resolution: "gauge@npm:4.0.4" +"import-from@npm:^3.0.0": + version: 3.0.0 + resolution: "import-from@npm:3.0.0" dependencies: - aproba: ^1.0.3 || ^2.0.0 - color-support: ^1.1.3 - console-control-strings: ^1.1.0 - has-unicode: ^2.0.1 - signal-exit: ^3.0.7 - string-width: ^4.2.3 - strip-ansi: ^6.0.1 - wide-align: ^1.1.5 - checksum: 788b6bfe52f1dd8e263cda800c26ac0ca2ff6de0b6eee2fe0d9e3abf15e149b651bd27bf5226be10e6e3edb5c4e5d5985a5a1a98137e7a892f75eff76467ad2d + resolve-from: ^5.0.0 + checksum: 5040a7400e77e41e2c3bb6b1b123b52a15a284de1ffc03d605879942c00e3a87428499d8d031d554646108a0f77652549411167f6a7788e4fc7027eefccf3356 languageName: node linkType: hard -"gaxios@npm:^6.0.0, gaxios@npm:^6.0.2, gaxios@npm:^6.1.1": - version: 6.7.1 - resolution: "gaxios@npm:6.7.1" - dependencies: - extend: ^3.0.2 - https-proxy-agent: ^7.0.1 - is-stream: ^2.0.0 - node-fetch: ^2.6.9 - uuid: ^9.0.1 - checksum: ed5952655339918e0868c6f4e079d6e9e55b20a242ddb1be25076cdfb0dd1ca5a2cb233da7352baa972c19f898a78fa6ba67e7d848717c9ca9877c269b5b02f7 +"import-lazy@npm:~4.0.0": + version: 4.0.0 + resolution: "import-lazy@npm:4.0.0" + checksum: 22f5e51702134aef78890156738454f620e5fe7044b204ebc057c614888a1dd6fdf2ede0fdcca44d5c173fd64f65c985f19a51775b06967ef58cc3d26898df07 languageName: node linkType: hard -"gcp-metadata@npm:^6.1.0": - version: 6.1.0 - resolution: "gcp-metadata@npm:6.1.0" +"import-local@npm:^3.0.2": + version: 3.2.0 + resolution: "import-local@npm:3.2.0" dependencies: - gaxios: ^6.0.0 - json-bigint: ^1.0.0 - checksum: 55de8ae4a6b7664379a093abf7e758ae06e82f244d41bd58d881a470bf34db94c4067ce9e1b425d9455b7705636d5f8baad844e49bb73879c338753ba7785b2b + pkg-dir: ^4.2.0 + resolve-cwd: ^3.0.0 + bin: + import-local-fixture: fixtures/cli.js + checksum: 0b0b0b412b2521739fbb85eeed834a3c34de9bc67e670b3d0b86248fc460d990a7b116ad056c084b87a693ef73d1f17268d6a5be626bb43c998a8b1c8a230004 languageName: node linkType: hard -"generate-function@npm:^2.3.1": - version: 2.3.1 - resolution: "generate-function@npm:2.3.1" - dependencies: - is-property: ^1.0.2 - checksum: 652f083de206ead2bae4caf9c7eeb465e8d98c0b8ed2a29c6afc538cef0785b5c6eea10548f1e13cc586d3afd796c13c830c2cb3dc612ec2457b2aadda5f57c9 +"imurmurhash@npm:^0.1.4": + version: 0.1.4 + resolution: "imurmurhash@npm:0.1.4" + checksum: 7cae75c8cd9a50f57dadd77482359f659eaebac0319dd9368bcd1714f55e65badd6929ca58569da2b6494ef13fdd5598cd700b1eba23f8b79c5f19d195a3ecf7 languageName: node linkType: hard -"generic-names@npm:^4.0.0": +"indent-string@npm:^4.0.0": version: 4.0.0 - resolution: "generic-names@npm:4.0.0" - dependencies: - loader-utils: ^3.2.0 - checksum: 8dabd2505164191501b75f2861b5e1194458a344ae2a7c9776bdd72d1f50b248dff737bcdf118fff677275edb3632f2d10662e6ac122dd7b245c5baa8d303270 + resolution: "indent-string@npm:4.0.0" + checksum: 824cfb9929d031dabf059bebfe08cf3137365e112019086ed3dcff6a0a7b698cb80cf67ccccde0e25b9e2d7527aa6cc1fed1ac490c752162496caba3e6699612 languageName: node linkType: hard -"gensync@npm:^1.0.0-beta.2": - version: 1.0.0-beta.2 - resolution: "gensync@npm:1.0.0-beta.2" - checksum: a7437e58c6be12aa6c90f7730eac7fa9833dc78872b4ad2963d2031b00a3367a93f98aec75f9aaac7220848e4026d67a8655e870b24f20a543d103c0d65952ec +"infer-owner@npm:^1.0.4": + version: 1.0.4 + resolution: "infer-owner@npm:1.0.4" + checksum: 181e732764e4a0611576466b4b87dac338972b839920b2a8cde43642e4ed6bd54dc1fb0b40874728f2a2df9a1b097b8ff83b56d5f8f8e3927f837fdcb47d8a89 languageName: node linkType: hard -"get-caller-file@npm:^2.0.5": - version: 2.0.5 - resolution: "get-caller-file@npm:2.0.5" - checksum: b9769a836d2a98c3ee734a88ba712e62703f1df31b94b784762c433c27a386dd6029ff55c2a920c392e33657d80191edbf18c61487e198844844516f843496b9 +"inflight@npm:^1.0.4": + version: 1.0.6 + resolution: "inflight@npm:1.0.6" + dependencies: + once: ^1.3.0 + wrappy: 1 + checksum: f4f76aa072ce19fae87ce1ef7d221e709afb59d445e05d47fba710e85470923a75de35bfae47da6de1b18afc3ce83d70facf44cfb0aff89f0a3f45c0a0244dfd languageName: node linkType: hard -"get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.3, get-intrinsic@npm:^1.2.4": - version: 1.2.4 - resolution: "get-intrinsic@npm:1.2.4" - dependencies: - es-errors: ^1.3.0 - function-bind: ^1.1.2 - has-proto: ^1.0.1 - has-symbols: ^1.0.3 - hasown: ^2.0.0 - checksum: 414e3cdf2c203d1b9d7d33111df746a4512a1aa622770b361dadddf8ed0b5aeb26c560f49ca077e24bfafb0acb55ca908d1f709216ccba33ffc548ec8a79a951 +"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.1, inherits@npm:~2.0.3, inherits@npm:~2.0.4": + version: 2.0.4 + resolution: "inherits@npm:2.0.4" + checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 languageName: node linkType: hard -"get-package-type@npm:^0.1.0": - version: 0.1.0 - resolution: "get-package-type@npm:0.1.0" - checksum: bba0811116d11e56d702682ddef7c73ba3481f114590e705fc549f4d868972263896af313c57a25c076e3c0d567e11d919a64ba1b30c879be985fc9d44f96148 +"inherits@npm:2.0.3": + version: 2.0.3 + resolution: "inherits@npm:2.0.3" + checksum: 78cb8d7d850d20a5e9a7f3620db31483aa00ad5f722ce03a55b110e5a723539b3716a3b463e2b96ce3fe286f33afc7c131fa2f91407528ba80cea98a7545d4c0 languageName: node linkType: hard -"get-port@npm:^5.1.1": - version: 5.1.1 - resolution: "get-port@npm:5.1.1" - checksum: 0162663ffe5c09e748cd79d97b74cd70e5a5c84b760a475ce5767b357fb2a57cb821cee412d646aa8a156ed39b78aab88974eddaa9e5ee926173c036c0713787 +"ini@npm:^1.3.4, ini@npm:^1.3.5, ini@npm:~1.3.0": + version: 1.3.8 + resolution: "ini@npm:1.3.8" + checksum: dfd98b0ca3a4fc1e323e38a6c8eb8936e31a97a918d3b377649ea15bdb15d481207a0dda1021efbd86b464cae29a0d33c1d7dcaf6c5672bee17fa849bc50a1b3 languageName: node linkType: hard -"get-stream@npm:^6.0.0": - version: 6.0.1 - resolution: "get-stream@npm:6.0.1" - checksum: e04ecece32c92eebf5b8c940f51468cd53554dcbb0ea725b2748be583c9523d00128137966afce410b9b051eb2ef16d657cd2b120ca8edafcf5a65e81af63cad +"inline-style-parser@npm:0.1.1": + version: 0.1.1 + resolution: "inline-style-parser@npm:0.1.1" + checksum: 5d545056a3e1f2bf864c928a886a0e1656a3517127d36917b973de581bd54adc91b4bf1febcb0da054f204b4934763f1a4e09308b4d55002327cf1d48ac5d966 languageName: node linkType: hard -"get-symbol-description@npm:^1.0.2": - version: 1.0.2 - resolution: "get-symbol-description@npm:1.0.2" +"inline-style-prefixer@npm:^7.0.1": + version: 7.0.1 + resolution: "inline-style-prefixer@npm:7.0.1" dependencies: - call-bind: ^1.0.5 - es-errors: ^1.3.0 - get-intrinsic: ^1.2.4 - checksum: e1cb53bc211f9dbe9691a4f97a46837a553c4e7caadd0488dc24ac694db8a390b93edd412b48dcdd0b4bbb4c595de1709effc75fc87c0839deedc6968f5bd973 + css-in-js-utils: ^3.1.0 + checksum: 07a72573dfdac5e08fa18f5ce71d922861716955e230175ac415db227d9ed49443c764356cb407a92f4c85b30ebf39604165260b4dfbf3196b7736d7332c5c06 languageName: node linkType: hard -"get-tsconfig@npm:^4.7.0, get-tsconfig@npm:^4.7.2": - version: 4.8.1 - resolution: "get-tsconfig@npm:4.8.1" +"inquirer@npm:8.2.6, inquirer@npm:^8.2.0": + version: 8.2.6 + resolution: "inquirer@npm:8.2.6" dependencies: - resolve-pkg-maps: ^1.0.0 - checksum: 12df01672e691d2ff6db8cf7fed1ddfef90ed94a5f3d822c63c147a26742026d582acd86afcd6f65db67d809625d17dd7f9d34f4d3f38f69bc2f48e19b2bdd5b + ansi-escapes: ^4.2.1 + chalk: ^4.1.1 + cli-cursor: ^3.1.0 + cli-width: ^3.0.0 + external-editor: ^3.0.3 + figures: ^3.0.0 + lodash: ^4.17.21 + mute-stream: 0.0.8 + ora: ^5.4.1 + run-async: ^2.4.0 + rxjs: ^7.5.5 + string-width: ^4.1.0 + strip-ansi: ^6.0.0 + through: ^2.3.6 + wrap-ansi: ^6.0.1 + checksum: 387ffb0a513559cc7414eb42c57556a60e302f820d6960e89d376d092e257a919961cd485a1b4de693dbb5c0de8bc58320bfd6247dfd827a873aa82a4215a240 languageName: node linkType: hard -"get-uri@npm:^6.0.1": - version: 6.0.3 - resolution: "get-uri@npm:6.0.3" +"internal-slot@npm:^1.0.7, internal-slot@npm:^1.1.0": + version: 1.1.0 + resolution: "internal-slot@npm:1.1.0" dependencies: - basic-ftp: ^5.0.2 - data-uri-to-buffer: ^6.0.2 - debug: ^4.3.4 - fs-extra: ^11.2.0 - checksum: 3eda448a59fa1ba82ad4f252e58490fec586b644f2dc9c98ba3ab20e801ecc8a1bc1784829c474c9d188edb633d4dfd81c33894ca6117a33a16e8e013b41b40f + es-errors: ^1.3.0 + hasown: ^2.0.2 + side-channel: ^1.1.0 + checksum: 8e0991c2d048cc08dab0a91f573c99f6a4215075887517ea4fa32203ce8aea60fa03f95b177977fa27eb502e5168366d0f3e02c762b799691411d49900611861 languageName: node linkType: hard -"getopts@npm:2.3.0": - version: 2.3.0 - resolution: "getopts@npm:2.3.0" - checksum: bbb5fcef8d4a8582cf4499ea3fc492d95322df2184e65d550ddacede04871e7ba33194c7abd06a6c5d540de3b70112a16f988787e236e1c66b89521032b398ce +"internmap@npm:1 - 2": + version: 2.0.3 + resolution: "internmap@npm:2.0.3" + checksum: 7ca41ec6aba8f0072fc32fa8a023450a9f44503e2d8e403583c55714b25efd6390c38a87161ec456bf42d7bc83aab62eb28f5aef34876b1ac4e60693d5e1d241 languageName: node linkType: hard -"getpass@npm:^0.1.1": - version: 0.1.7 - resolution: "getpass@npm:0.1.7" - dependencies: - assert-plus: ^1.0.0 - checksum: ab18d55661db264e3eac6012c2d3daeafaab7a501c035ae0ccb193c3c23e9849c6e29b6ac762b9c2adae460266f925d55a3a2a3a3c8b94be2f222df94d70c046 +"interpret@npm:^2.2.0": + version: 2.2.0 + resolution: "interpret@npm:2.2.0" + checksum: f51efef7cb8d02da16408ffa3504cd6053014c5aeb7bb8c223727e053e4235bf565e45d67028b0c8740d917c603807aa3c27d7bd2f21bf20b6417e2bb3e5fd6e languageName: node linkType: hard -"git-up@npm:^7.0.0": - version: 7.0.0 - resolution: "git-up@npm:7.0.0" +"invariant@npm:^2.2.2": + version: 2.2.4 + resolution: "invariant@npm:2.2.4" dependencies: - is-ssh: ^1.4.0 - parse-url: ^8.1.0 - checksum: 2faadbab51e94d2ffb220e426e950087cc02c15d664e673bd5d1f734cfa8196fed8b19493f7bf28fe216d087d10e22a7fd9b63687e0ba7d24f0ddcfb0a266d6e + loose-envify: ^1.0.0 + checksum: cc3182d793aad82a8d1f0af697b462939cb46066ec48bbf1707c150ad5fad6406137e91a262022c269702e01621f35ef60269f6c0d7fd178487959809acdfb14 languageName: node linkType: hard -"git-url-parse@npm:^14.0.0": - version: 14.1.0 - resolution: "git-url-parse@npm:14.1.0" +"ioredis@npm:^5.4.1": + version: 5.4.2 + resolution: "ioredis@npm:5.4.2" dependencies: - git-up: ^7.0.0 - checksum: 16bbf5ca423352ab1b0d704dc40b46123e0bfcc0ae2959ef6a93d43c509146151cd6a1d99690f3555324d2261b36443b7978abc379dc1a7bf8f564e52d676dee + "@ioredis/commands": ^1.1.1 + cluster-key-slot: ^1.1.0 + debug: ^4.3.4 + denque: ^2.1.0 + lodash.defaults: ^4.2.0 + lodash.isarguments: ^3.1.0 + redis-errors: ^1.2.0 + redis-parser: ^3.0.0 + standard-as-callback: ^2.1.0 + checksum: 6c40ef071c5fb481f4911c69512371f0a435cc426f07b8905df415030fb9a92266d63e3a674fc3b5aa1e551cda12c00965f2618bda757f164c4a3aa696822427 languageName: node linkType: hard -"git-url-parse@npm:^15.0.0": - version: 15.0.0 - resolution: "git-url-parse@npm:15.0.0" +"ip-address@npm:^9.0.5": + version: 9.0.5 + resolution: "ip-address@npm:9.0.5" dependencies: - git-up: ^7.0.0 - checksum: 4379e9b0a1297b62d603630341a7ce1a6e17901114ee7bb70a611f62ea0fd3b3649ac754891d2746fd42031a21e97ddc0092287a04cc028cbf37df8f6be65a9e + jsbn: 1.1.0 + sprintf-js: ^1.1.3 + checksum: aa15f12cfd0ef5e38349744e3654bae649a34c3b10c77a674a167e99925d1549486c5b14730eebce9fea26f6db9d5e42097b00aa4f9f612e68c79121c71652dc languageName: node linkType: hard -"gitconfiglocal@npm:2.1.0": - version: 2.1.0 - resolution: "gitconfiglocal@npm:2.1.0" - dependencies: - ini: ^1.3.2 - checksum: 4b4b44d992a6abf2900eec8cfe960dc36e0d3c2467d20ec69e0a0f13b6b7645b926daa004df42f94c34ad28a58529cf2522fa0bf261e4e7b95958fb451dcedda +"ip-regex@npm:^4.1.0": + version: 4.3.0 + resolution: "ip-regex@npm:4.3.0" + checksum: 7ff904b891221b1847f3fdf3dbb3e6a8660dc39bc283f79eb7ed88f5338e1a3d1104b779bc83759159be266249c59c2160e779ee39446d79d4ed0890dfd06f08 languageName: node linkType: hard -"github-from-package@npm:0.0.0": - version: 0.0.0 - resolution: "github-from-package@npm:0.0.0" - checksum: 14e448192a35c1e42efee94c9d01a10f42fe790375891a24b25261246ce9336ab9df5d274585aedd4568f7922246c2a78b8a8cd2571bfe99c693a9718e7dd0e3 +"ipaddr.js@npm:1.9.1": + version: 1.9.1 + resolution: "ipaddr.js@npm:1.9.1" + checksum: f88d3825981486f5a1942414c8d77dd6674dd71c065adcfa46f578d677edcb99fda25af42675cb59db492fdf427b34a5abfcde3982da11a8fd83a500b41cfe77 languageName: node linkType: hard -"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": - version: 5.1.2 - resolution: "glob-parent@npm:5.1.2" +"ipaddr.js@npm:^2.1.0": + version: 2.2.0 + resolution: "ipaddr.js@npm:2.2.0" + checksum: 770ba8451fd9bf78015e8edac0d5abd7a708cbf75f9429ca9147a9d2f3a2d60767cd5de2aab2b1e13ca6e4445bdeff42bf12ef6f151c07a5c6cf8a44328e2859 + languageName: node + linkType: hard + +"is-alphabetical@npm:^1.0.0": + version: 1.0.4 + resolution: "is-alphabetical@npm:1.0.4" + checksum: 6508cce44fd348f06705d377b260974f4ce68c74000e7da4045f0d919e568226dc3ce9685c5a2af272195384df6930f748ce9213fc9f399b5d31b362c66312cb + languageName: node + linkType: hard + +"is-alphanumerical@npm:^1.0.0": + version: 1.0.4 + resolution: "is-alphanumerical@npm:1.0.4" dependencies: - is-glob: ^4.0.1 - checksum: f4f2bfe2425296e8a47e36864e4f42be38a996db40420fe434565e4480e3322f18eb37589617a98640c5dc8fdec1a387007ee18dbb1f3f5553409c34d17f425e + is-alphabetical: ^1.0.0 + is-decimal: ^1.0.0 + checksum: e2e491acc16fcf5b363f7c726f666a9538dba0a043665740feb45bba1652457a73441e7c5179c6768a638ed396db3437e9905f403644ec7c468fb41f4813d03f + languageName: node + linkType: hard + +"is-arguments@npm:^1.0.4, is-arguments@npm:^1.1.1": + version: 1.2.0 + resolution: "is-arguments@npm:1.2.0" + dependencies: + call-bound: ^1.0.2 + has-tostringtag: ^1.0.2 + checksum: aae9307fedfe2e5be14aebd0f48a9eeedf6b8c8f5a0b66257b965146d1e94abdc3f08e3dce3b1d908e1fa23c70039a88810ee1d753905758b9b6eebbab0bafeb languageName: node linkType: hard -"glob-parent@npm:^6.0.2": - version: 6.0.2 - resolution: "glob-parent@npm:6.0.2" +"is-array-buffer@npm:^3.0.2, is-array-buffer@npm:^3.0.4, is-array-buffer@npm:^3.0.5": + version: 3.0.5 + resolution: "is-array-buffer@npm:3.0.5" dependencies: - is-glob: ^4.0.3 - checksum: c13ee97978bef4f55106b71e66428eb1512e71a7466ba49025fc2aec59a5bfb0954d5abd58fc5ee6c9b076eef4e1f6d3375c2e964b88466ca390da4419a786a8 + call-bind: ^1.0.8 + call-bound: ^1.0.3 + get-intrinsic: ^1.2.6 + checksum: f137a2a6e77af682cdbffef1e633c140cf596f72321baf8bba0f4ef22685eb4339dde23dfe9e9ca430b5f961dee4d46577dcf12b792b68518c8449b134fb9156 languageName: node linkType: hard -"glob-to-regexp@npm:^0.4.1": - version: 0.4.1 - resolution: "glob-to-regexp@npm:0.4.1" - checksum: e795f4e8f06d2a15e86f76e4d92751cf8bbfcf0157cea5c2f0f35678a8195a750b34096b1256e436f0cebc1883b5ff0888c47348443e69546a5a87f9e1eb1167 +"is-arrayish@npm:^0.2.1": + version: 0.2.1 + resolution: "is-arrayish@npm:0.2.1" + checksum: eef4417e3c10e60e2c810b6084942b3ead455af16c4509959a27e490e7aee87cfb3f38e01bbde92220b528a0ee1a18d52b787e1458ee86174d8c7f0e58cd488f languageName: node linkType: hard -"glob@npm:9.3.5": - version: 9.3.5 - resolution: "glob@npm:9.3.5" - dependencies: - fs.realpath: ^1.0.0 - minimatch: ^8.0.2 - minipass: ^4.2.4 - path-scurry: ^1.6.1 - checksum: 94b093adbc591bc36b582f77927d1fb0dbf3ccc231828512b017601408be98d1fe798fc8c0b19c6f2d1a7660339c3502ce698de475e9d938ccbb69b47b647c84 +"is-arrayish@npm:^0.3.1": + version: 0.3.2 + resolution: "is-arrayish@npm:0.3.2" + checksum: 977e64f54d91c8f169b59afcd80ff19227e9f5c791fa28fa2e5bce355cbaf6c2c356711b734656e80c9dd4a854dd7efcf7894402f1031dfc5de5d620775b4d5f languageName: node linkType: hard -"glob@npm:^10.0.0, glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.4.1": - version: 10.4.5 - resolution: "glob@npm:10.4.5" +"is-async-function@npm:^2.0.0": + version: 2.0.0 + resolution: "is-async-function@npm:2.0.0" dependencies: - foreground-child: ^3.1.0 - jackspeak: ^3.1.2 - minimatch: ^9.0.4 - minipass: ^7.1.2 - package-json-from-dist: ^1.0.0 - path-scurry: ^1.11.1 - bin: - glob: dist/esm/bin.mjs - checksum: 0bc725de5e4862f9f387fd0f2b274baf16850dcd2714502ccf471ee401803997983e2c05590cb65f9675a3c6f2a58e7a53f9e365704108c6ad3cbf1d60934c4a + has-tostringtag: ^1.0.0 + checksum: e3471d95e6c014bf37cad8a93f2f4b6aac962178e0a5041e8903147166964fdc1c5c1d2ef87e86d77322c370ca18f2ea004fa7420581fa747bcaf7c223069dbd languageName: node linkType: hard -"glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6, glob@npm:^7.1.7": - version: 7.2.3 - resolution: "glob@npm:7.2.3" +"is-bigint@npm:^1.1.0": + version: 1.1.0 + resolution: "is-bigint@npm:1.1.0" dependencies: - fs.realpath: ^1.0.0 - inflight: ^1.0.4 - inherits: 2 - minimatch: ^3.1.1 - once: ^1.3.0 - path-is-absolute: ^1.0.0 - checksum: 29452e97b38fa704dabb1d1045350fb2467cf0277e155aa9ff7077e90ad81d1ea9d53d3ee63bd37c05b09a065e90f16aec4a65f5b8de401d1dac40bc5605d133 + has-bigints: ^1.0.2 + checksum: ee1544f0e664f253306786ed1dce494b8cf242ef415d6375d8545b4d8816b0f054bd9f948a8988ae2c6325d1c28260dd02978236b2f7b8fb70dfc4838a6c9fa7 languageName: node linkType: hard -"glob@npm:^8.0.1, glob@npm:^8.0.3, glob@npm:^8.1.0": - version: 8.1.0 - resolution: "glob@npm:8.1.0" +"is-binary-path@npm:~2.1.0": + version: 2.1.0 + resolution: "is-binary-path@npm:2.1.0" dependencies: - fs.realpath: ^1.0.0 - inflight: ^1.0.4 - inherits: 2 - minimatch: ^5.0.1 - once: ^1.3.0 - checksum: 92fbea3221a7d12075f26f0227abac435de868dd0736a17170663783296d0dd8d3d532a5672b4488a439bf5d7fb85cdd07c11185d6cd39184f0385cbdfb86a47 + binary-extensions: ^2.0.0 + checksum: 84192eb88cff70d320426f35ecd63c3d6d495da9d805b19bc65b518984b7c0760280e57dbf119b7e9be6b161784a5a673ab2c6abe83abb5198a432232ad5b35c languageName: node linkType: hard -"global-agent@npm:^3.0.0": - version: 3.0.0 - resolution: "global-agent@npm:3.0.0" +"is-boolean-object@npm:^1.2.1": + version: 1.2.1 + resolution: "is-boolean-object@npm:1.2.1" dependencies: - boolean: ^3.0.1 - es6-error: ^4.1.1 - matcher: ^3.0.0 - roarr: ^2.15.3 - semver: ^7.3.2 - serialize-error: ^7.0.1 - checksum: 75074d80733b4bd5386c47f5df028e798018025beac0ab310e9908c72bf5639e408203e7bca0130d5ee01b5f4abc6d34385d96a9f950ea5fe1979bb431c808f7 + call-bound: ^1.0.2 + has-tostringtag: ^1.0.2 + checksum: 2672609f0f2536172873810a38ec006a415e43ddc6a240f7638a1659cb20dfa91cc75c8a1bed36247bb046aa8f0eab945f20d1203bc69606418bd129c745f861 languageName: node linkType: hard -"global-modules@npm:^1.0.0": - version: 1.0.0 - resolution: "global-modules@npm:1.0.0" +"is-buffer@npm:^2.0.0": + version: 2.0.5 + resolution: "is-buffer@npm:2.0.5" + checksum: 764c9ad8b523a9f5a32af29bdf772b08eb48c04d2ad0a7240916ac2688c983bf5f8504bf25b35e66240edeb9d9085461f9b5dae1f3d2861c6b06a65fe983de42 + languageName: node + linkType: hard + +"is-callable@npm:^1.1.3, is-callable@npm:^1.2.7": + version: 1.2.7 + resolution: "is-callable@npm:1.2.7" + checksum: 61fd57d03b0d984e2ed3720fb1c7a897827ea174bd44402878e059542ea8c4aeedee0ea0985998aa5cc2736b2fa6e271c08587addb5b3959ac52cf665173d1ac + languageName: node + linkType: hard + +"is-cidr@npm:^4.0.0": + version: 4.0.2 + resolution: "is-cidr@npm:4.0.2" dependencies: - global-prefix: ^1.0.1 - is-windows: ^1.0.1 - resolve-dir: ^1.0.0 - checksum: 10be68796c1e1abc1e2ba87ec4ea507f5629873b119ab0cd29c07284ef2b930f1402d10df01beccb7391dedd9cd479611dd6a24311c71be58937beaf18edf85e + cidr-regex: ^3.1.1 + checksum: ee6e670e655a835710a7fa15268b428adbf80267114a494ce1c2ca2b09e1ca0b629fe1375aae621d4c093b32930d5ff7c4ee6da97eae14e3836bc7b3a07b171f languageName: node linkType: hard -"global-modules@npm:^2.0.0": - version: 2.0.0 - resolution: "global-modules@npm:2.0.0" +"is-core-module@npm:^2.13.0, is-core-module@npm:^2.15.1, is-core-module@npm:^2.16.0": + version: 2.16.0 + resolution: "is-core-module@npm:2.16.0" dependencies: - global-prefix: ^3.0.0 - checksum: d6197f25856c878c2fb5f038899f2dca7cbb2f7b7cf8999660c0104972d5cfa5c68b5a0a77fa8206bb536c3903a4615665acb9709b4d80846e1bb47eaef65430 + hasown: ^2.0.2 + checksum: 98aa14eaee864c2e86fff4e08813e0da3ca7ac38dd0a43b9f10aeec48bfbc4827e2677349adb626f66921caef7fa9e2745c80b8b7cafe8ac24d46dc8124cc216 languageName: node linkType: hard -"global-prefix@npm:^1.0.1": +"is-data-view@npm:^1.0.1, is-data-view@npm:^1.0.2": version: 1.0.2 - resolution: "global-prefix@npm:1.0.2" + resolution: "is-data-view@npm:1.0.2" dependencies: - expand-tilde: ^2.0.2 - homedir-polyfill: ^1.0.1 - ini: ^1.3.4 - is-windows: ^1.0.1 - which: ^1.2.14 - checksum: 061b43470fe498271bcd514e7746e8a8535032b17ab9570517014ae27d700ff0dca749f76bbde13ba384d185be4310d8ba5712cb0e74f7d54d59390db63dd9a0 + call-bound: ^1.0.2 + get-intrinsic: ^1.2.6 + is-typed-array: ^1.1.13 + checksum: 31600dd19932eae7fd304567e465709ffbfa17fa236427c9c864148e1b54eb2146357fcf3aed9b686dee13c217e1bb5a649cb3b9c479e1004c0648e9febde1b2 languageName: node linkType: hard -"global-prefix@npm:^3.0.0": - version: 3.0.0 - resolution: "global-prefix@npm:3.0.0" +"is-date-object@npm:^1.0.5, is-date-object@npm:^1.1.0": + version: 1.1.0 + resolution: "is-date-object@npm:1.1.0" dependencies: - ini: ^1.3.5 - kind-of: ^6.0.2 - which: ^1.3.1 - checksum: 8a82fc1d6f22c45484a4e34656cc91bf021a03e03213b0035098d605bfc612d7141f1e14a21097e8a0413b4884afd5b260df0b6a25605ce9d722e11f1df2881d + call-bound: ^1.0.2 + has-tostringtag: ^1.0.2 + checksum: d6c36ab9d20971d65f3fc64cef940d57a4900a2ac85fb488a46d164c2072a33da1cb51eefcc039e3e5c208acbce343d3480b84ab5ff0983f617512da2742562a languageName: node linkType: hard -"globals@npm:^11.1.0": - version: 11.12.0 - resolution: "globals@npm:11.12.0" - checksum: 67051a45eca3db904aee189dfc7cd53c20c7d881679c93f6146ddd4c9f4ab2268e68a919df740d39c71f4445d2b38ee360fc234428baea1dbdfe68bbcb46979e +"is-decimal@npm:^1.0.0": + version: 1.0.4 + resolution: "is-decimal@npm:1.0.4" + checksum: ed483a387517856dc395c68403a10201fddcc1b63dc56513fbe2fe86ab38766120090ecdbfed89223d84ca8b1cd28b0641b93cb6597b6e8f4c097a7c24e3fb96 languageName: node linkType: hard -"globals@npm:^13.19.0": - version: 13.24.0 - resolution: "globals@npm:13.24.0" - dependencies: - type-fest: ^0.20.2 - checksum: 56066ef058f6867c04ff203b8a44c15b038346a62efbc3060052a1016be9f56f4cf0b2cd45b74b22b81e521a889fc7786c73691b0549c2f3a6e825b3d394f43c +"is-docker@npm:^2.0.0, is-docker@npm:^2.1.1": + version: 2.2.1 + resolution: "is-docker@npm:2.2.1" + bin: + is-docker: cli.js + checksum: 3fef7ddbf0be25958e8991ad941901bf5922ab2753c46980b60b05c1bf9c9c2402d35e6dc32e4380b980ef5e1970a5d9d5e5aa2e02d77727c3b6b5e918474c56 languageName: node linkType: hard -"globalthis@npm:^1.0.1, globalthis@npm:^1.0.3, globalthis@npm:^1.0.4": - version: 1.0.4 - resolution: "globalthis@npm:1.0.4" - dependencies: - define-properties: ^1.2.1 - gopd: ^1.0.1 - checksum: 39ad667ad9f01476474633a1834a70842041f70a55571e8dcef5fb957980a92da5022db5430fca8aecc5d47704ae30618c0bc877a579c70710c904e9ef06108a +"is-docker@npm:^3.0.0": + version: 3.0.0 + resolution: "is-docker@npm:3.0.0" + bin: + is-docker: cli.js + checksum: b698118f04feb7eaf3338922bd79cba064ea54a1c3db6ec8c0c8d8ee7613e7e5854d802d3ef646812a8a3ace81182a085dfa0a71cc68b06f3fa794b9783b3c90 languageName: node linkType: hard -"globby@npm:^11.0.0, globby@npm:^11.0.4, globby@npm:^11.1.0": - version: 11.1.0 - resolution: "globby@npm:11.1.0" - dependencies: - array-union: ^2.1.0 - dir-glob: ^3.0.1 - fast-glob: ^3.2.9 - ignore: ^5.2.0 - merge2: ^1.4.1 - slash: ^3.0.0 - checksum: b4be8885e0cfa018fc783792942d53926c35c50b3aefd3fdcfb9d22c627639dc26bd2327a40a0b74b074100ce95bb7187bfeae2f236856aa3de183af7a02aea6 +"is-extglob@npm:^2.1.1": + version: 2.1.1 + resolution: "is-extglob@npm:2.1.1" + checksum: df033653d06d0eb567461e58a7a8c9f940bd8c22274b94bf7671ab36df5719791aae15eef6d83bbb5e23283967f2f984b8914559d4449efda578c775c4be6f85 languageName: node linkType: hard -"google-auth-library@npm:^9.6.3": - version: 9.14.2 - resolution: "google-auth-library@npm:9.14.2" +"is-finalizationregistry@npm:^1.1.0": + version: 1.1.1 + resolution: "is-finalizationregistry@npm:1.1.1" dependencies: - base64-js: ^1.3.0 - ecdsa-sig-formatter: ^1.0.11 - gaxios: ^6.1.1 - gcp-metadata: ^6.1.0 - gtoken: ^7.0.0 - jws: ^4.0.0 - checksum: 64b3a6c1b1b14f1c891dbcfb850bc4db63dc8fae17e70197636244d00c83b539ac3da8688aae0bd1f09c884fc538d203945ae751edbabf666b41066385d86e30 + call-bound: ^1.0.3 + checksum: 38c646c506e64ead41a36c182d91639833311970b6b6c6268634f109eef0a1a9d2f1f2e499ef4cb43c744a13443c4cdd2f0812d5afdcee5e9b65b72b28c48557 languageName: node linkType: hard -"gopd@npm:^1.0.1": - version: 1.0.1 - resolution: "gopd@npm:1.0.1" - dependencies: - get-intrinsic: ^1.1.3 - checksum: a5ccfb8806e0917a94e0b3de2af2ea4979c1da920bc381667c260e00e7cafdbe844e2cb9c5bcfef4e5412e8bf73bab837285bc35c7ba73aaaf0134d4583393a6 +"is-fullwidth-code-point@npm:^3.0.0": + version: 3.0.0 + resolution: "is-fullwidth-code-point@npm:3.0.0" + checksum: 44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348 languageName: node linkType: hard -"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.5, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": - version: 4.2.11 - resolution: "graceful-fs@npm:4.2.11" - checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 +"is-generator-fn@npm:^2.0.0": + version: 2.1.0 + resolution: "is-generator-fn@npm:2.1.0" + checksum: a6ad5492cf9d1746f73b6744e0c43c0020510b59d56ddcb78a91cbc173f09b5e6beff53d75c9c5a29feb618bfef2bf458e025ecf3a57ad2268e2fb2569f56215 languageName: node linkType: hard -"graphemer@npm:^1.4.0": - version: 1.4.0 - resolution: "graphemer@npm:1.4.0" - checksum: bab8f0be9b568857c7bec9fda95a89f87b783546d02951c40c33f84d05bb7da3fd10f863a9beb901463669b6583173a8c8cc6d6b306ea2b9b9d5d3d943c3a673 +"is-generator-function@npm:^1.0.10, is-generator-function@npm:^1.0.7": + version: 1.0.10 + resolution: "is-generator-function@npm:1.0.10" + dependencies: + has-tostringtag: ^1.0.0 + checksum: d54644e7dbaccef15ceb1e5d91d680eb5068c9ee9f9eb0a9e04173eb5542c9b51b5ab52c5537f5703e48d5fddfd376817c1ca07a84a407b7115b769d4bdde72b languageName: node linkType: hard -"graphql-tag@npm:^2.10.3": - version: 2.12.6 - resolution: "graphql-tag@npm:2.12.6" +"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": + version: 4.0.3 + resolution: "is-glob@npm:4.0.3" dependencies: - tslib: ^2.1.0 - peerDependencies: - graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: b15162a3d62f17b9b79302445b9ee330e041582f1c7faca74b9dec5daa74272c906ec1c34e1c50592bb6215e5c3eba80a309103f6ba9e4c1cddc350c46f010df + is-extglob: ^2.1.1 + checksum: d381c1319fcb69d341cc6e6c7cd588e17cd94722d9a32dbd60660b993c4fb7d0f19438674e68dfec686d09b7c73139c9166b47597f846af387450224a8101ab4 languageName: node linkType: hard -"graphql@npm:^16.0.0, graphql@npm:^16.8.1": - version: 16.9.0 - resolution: "graphql@npm:16.9.0" - checksum: 8cb3d54100e9227310383ce7f791ca48d12f15ed9f2021f23f8735f1121aafe4e5e611a853081dd935ce221724ea1ae4638faef5d2921fb1ad7c26b5f46611e9 +"is-hexadecimal@npm:^1.0.0": + version: 1.0.4 + resolution: "is-hexadecimal@npm:1.0.4" + checksum: a452e047587b6069332d83130f54d30da4faf2f2ebaa2ce6d073c27b5703d030d58ed9e0b729c8e4e5b52c6f1dab26781bb77b7bc6c7805f14f320e328ff8cd5 languageName: node linkType: hard -"gtoken@npm:^7.0.0": - version: 7.1.0 - resolution: "gtoken@npm:7.1.0" - dependencies: - gaxios: ^6.0.0 - jws: ^4.0.0 - checksum: 1f338dced78f9d895ea03cd507454eb5a7b77e841ecd1d45e44483b08c1e64d16a9b0342358d37586d87462ffc2d5f5bff5dfe77ed8d4f0aafc3b5b0347d5d16 +"is-in-browser@npm:^1.0.2, is-in-browser@npm:^1.1.3": + version: 1.1.3 + resolution: "is-in-browser@npm:1.1.3" + checksum: 178491f97f6663c0574565701b76f41633dbe065e4bd8d518ce017a8fa25e5109ecb6a3bd8bd55c0aba11b208f86b9f0f9c91f3664e148ebf618b74a74fcaf09 languageName: node linkType: hard -"gzip-size@npm:^6.0.0": - version: 6.0.0 - resolution: "gzip-size@npm:6.0.0" +"is-inside-container@npm:^1.0.0": + version: 1.0.0 + resolution: "is-inside-container@npm:1.0.0" dependencies: - duplexer: ^0.1.2 - checksum: 2df97f359696ad154fc171dcb55bc883fe6e833bca7a65e457b9358f3cb6312405ed70a8da24a77c1baac0639906cd52358dc0ce2ec1a937eaa631b934c94194 + is-docker: ^3.0.0 + bin: + is-inside-container: cli.js + checksum: c50b75a2ab66ab3e8b92b3bc534e1ea72ca25766832c0623ac22d134116a98bcf012197d1caabe1d1c4bd5f84363d4aa5c36bb4b585fbcaf57be172cd10a1a03 languageName: node linkType: hard -"handle-thing@npm:^2.0.0": - version: 2.0.1 - resolution: "handle-thing@npm:2.0.1" - checksum: 68071f313062315cd9dce55710e9496873945f1dd425107007058fc1629f93002a7649fcc3e464281ce02c7e809a35f5925504ab8105d972cf649f1f47cb7d6c +"is-interactive@npm:^1.0.0": + version: 1.0.0 + resolution: "is-interactive@npm:1.0.0" + checksum: 824808776e2d468b2916cdd6c16acacebce060d844c35ca6d82267da692e92c3a16fdba624c50b54a63f38bdc4016055b6f443ce57d7147240de4f8cdabaf6f9 languageName: node linkType: hard -"handlebars@npm:^4.7.3, handlebars@npm:^4.7.7": - version: 4.7.8 - resolution: "handlebars@npm:4.7.8" - dependencies: - minimist: ^1.2.5 - neo-async: ^2.6.2 - source-map: ^0.6.1 - uglify-js: ^3.1.4 - wordwrap: ^1.0.0 - dependenciesMeta: - uglify-js: - optional: true - bin: - handlebars: bin/handlebars - checksum: 00e68bb5c183fd7b8b63322e6234b5ac8fbb960d712cb3f25587d559c2951d9642df83c04a1172c918c41bcfc81bfbd7a7718bbce93b893e0135fc99edea93ff +"is-lambda@npm:^1.0.1": + version: 1.0.1 + resolution: "is-lambda@npm:1.0.1" + checksum: 93a32f01940220532e5948538699ad610d5924ac86093fcee83022252b363eb0cc99ba53ab084a04e4fb62bf7b5731f55496257a4c38adf87af9c4d352c71c35 languageName: node linkType: hard -"har-schema@npm:^2.0.0": - version: 2.0.0 - resolution: "har-schema@npm:2.0.0" - checksum: d8946348f333fb09e2bf24cc4c67eabb47c8e1d1aa1c14184c7ffec1140a49ec8aa78aa93677ae452d71d5fc0fdeec20f0c8c1237291fc2bcb3f502a5d204f9b +"is-map@npm:^2.0.2, is-map@npm:^2.0.3": + version: 2.0.3 + resolution: "is-map@npm:2.0.3" + checksum: e6ce5f6380f32b141b3153e6ba9074892bbbbd655e92e7ba5ff195239777e767a976dcd4e22f864accaf30e53ebf961ab1995424aef91af68788f0591b7396cc languageName: node linkType: hard -"har-validator@npm:~5.1.3": - version: 5.1.5 - resolution: "har-validator@npm:5.1.5" - dependencies: - ajv: ^6.12.3 - har-schema: ^2.0.0 - checksum: b998a7269ca560d7f219eedc53e2c664cd87d487e428ae854a6af4573fc94f182fe9d2e3b92ab968249baec7ebaf9ead69cf975c931dc2ab282ec182ee988280 +"is-module@npm:^1.0.0": + version: 1.0.0 + resolution: "is-module@npm:1.0.0" + checksum: 8cd5390730c7976fb4e8546dd0b38865ee6f7bacfa08dfbb2cc07219606755f0b01709d9361e01f13009bbbd8099fa2927a8ed665118a6105d66e40f1b838c3f languageName: node linkType: hard -"harmony-reflect@npm:^1.4.6": - version: 1.6.2 - resolution: "harmony-reflect@npm:1.6.2" - checksum: 2e5bae414cd2bfae5476147f9935dc69ee9b9a413206994dcb94c5b3208d4555da3d4313aff6fd14bd9991c1e3ef69cdda5c8fac1eb1d7afc064925839339b8c +"is-negative-zero@npm:^2.0.3": + version: 2.0.3 + resolution: "is-negative-zero@npm:2.0.3" + checksum: c1e6b23d2070c0539d7b36022d5a94407132411d01aba39ec549af824231f3804b1aea90b5e4e58e807a65d23ceb538ed6e355ce76b267bdd86edb757ffcbdcd languageName: node linkType: hard -"has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2": - version: 1.0.2 - resolution: "has-bigints@npm:1.0.2" - checksum: 390e31e7be7e5c6fe68b81babb73dfc35d413604d7ee5f56da101417027a4b4ce6a27e46eff97ad040c835b5d228676eae99a9b5c3bc0e23c8e81a49241ff45b +"is-network-error@npm:^1.0.0": + version: 1.1.0 + resolution: "is-network-error@npm:1.1.0" + checksum: b2fe6aac07f814a9de275efd05934c832c129e7ba292d27614e9e8eec9e043b7a0bbeaeca5d0916b0f462edbec2aa2eaee974ee0a12ac095040e9515c222c251 languageName: node linkType: hard -"has-flag@npm:^3.0.0": - version: 3.0.0 - resolution: "has-flag@npm:3.0.0" - checksum: 4a15638b454bf086c8148979aae044dd6e39d63904cd452d970374fa6a87623423da485dfb814e7be882e05c096a7ccf1ebd48e7e7501d0208d8384ff4dea73b +"is-node-process@npm:^1.2.0": + version: 1.2.0 + resolution: "is-node-process@npm:1.2.0" + checksum: 930765cdc6d81ab8f1bbecbea4a8d35c7c6d88a3ff61f3630e0fc7f22d624d7661c1df05c58547d0eb6a639dfa9304682c8e342c4113a6ed51472b704cee2928 languageName: node linkType: hard -"has-flag@npm:^4.0.0": - version: 4.0.0 - resolution: "has-flag@npm:4.0.0" - checksum: 261a1357037ead75e338156b1f9452c016a37dcd3283a972a30d9e4a87441ba372c8b81f818cd0fbcd9c0354b4ae7e18b9e1afa1971164aef6d18c2b6095a8ad +"is-number-object@npm:^1.1.1": + version: 1.1.1 + resolution: "is-number-object@npm:1.1.1" + dependencies: + call-bound: ^1.0.3 + has-tostringtag: ^1.0.2 + checksum: 6517f0a0e8c4b197a21afb45cd3053dc711e79d45d8878aa3565de38d0102b130ca8732485122c7b336e98c27dacd5236854e3e6526e0eb30cae64956535662f languageName: node linkType: hard -"has-property-descriptors@npm:^1.0.0, has-property-descriptors@npm:^1.0.2": - version: 1.0.2 - resolution: "has-property-descriptors@npm:1.0.2" - dependencies: - es-define-property: ^1.0.0 - checksum: fcbb246ea2838058be39887935231c6d5788babed499d0e9d0cc5737494c48aba4fe17ba1449e0d0fbbb1e36175442faa37f9c427ae357d6ccb1d895fbcd3de3 +"is-number@npm:^7.0.0": + version: 7.0.0 + resolution: "is-number@npm:7.0.0" + checksum: 456ac6f8e0f3111ed34668a624e45315201dff921e5ac181f8ec24923b99e9f32ca1a194912dc79d539c97d33dba17dc635202ff0b2cf98326f608323276d27a languageName: node linkType: hard -"has-proto@npm:^1.0.1, has-proto@npm:^1.0.3": - version: 1.0.3 - resolution: "has-proto@npm:1.0.3" - checksum: fe7c3d50b33f50f3933a04413ed1f69441d21d2d2944f81036276d30635cad9279f6b43bc8f32036c31ebdfcf6e731150f46c1907ad90c669ffe9b066c3ba5c4 +"is-path-inside@npm:^3.0.3": + version: 3.0.3 + resolution: "is-path-inside@npm:3.0.3" + checksum: abd50f06186a052b349c15e55b182326f1936c89a78bf6c8f2b707412517c097ce04bc49a0ca221787bc44e1049f51f09a2ffb63d22899051988d3a618ba13e9 languageName: node linkType: hard -"has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": - version: 1.0.3 - resolution: "has-symbols@npm:1.0.3" - checksum: a054c40c631c0d5741a8285010a0777ea0c068f99ed43e5d6eb12972da223f8af553a455132fdb0801bdcfa0e0f443c0c03a68d8555aa529b3144b446c3f2410 +"is-plain-obj@npm:^3.0.0": + version: 3.0.0 + resolution: "is-plain-obj@npm:3.0.0" + checksum: a6ebdf8e12ab73f33530641972a72a4b8aed6df04f762070d823808303e4f76d87d5ea5bd76f96a7bbe83d93f04ac7764429c29413bd9049853a69cb630fb21c languageName: node linkType: hard -"has-tostringtag@npm:^1.0.0, has-tostringtag@npm:^1.0.2": - version: 1.0.2 - resolution: "has-tostringtag@npm:1.0.2" +"is-plain-obj@npm:^4.0.0": + version: 4.1.0 + resolution: "is-plain-obj@npm:4.1.0" + checksum: 6dc45da70d04a81f35c9310971e78a6a3c7a63547ef782e3a07ee3674695081b6ca4e977fbb8efc48dae3375e0b34558d2bcd722aec9bddfa2d7db5b041be8ce + languageName: node + linkType: hard + +"is-plain-object@npm:^2.0.4": + version: 2.0.4 + resolution: "is-plain-object@npm:2.0.4" dependencies: - has-symbols: ^1.0.3 - checksum: 999d60bb753ad714356b2c6c87b7fb74f32463b8426e159397da4bde5bca7e598ab1073f4d8d4deafac297f2eb311484cd177af242776bf05f0d11565680468d + isobject: ^3.0.1 + checksum: 2a401140cfd86cabe25214956ae2cfee6fbd8186809555cd0e84574f88de7b17abacb2e477a6a658fa54c6083ecbda1e6ae404c7720244cd198903848fca70ca languageName: node linkType: hard -"has-unicode@npm:^2.0.1": - version: 2.0.1 - resolution: "has-unicode@npm:2.0.1" - checksum: 1eab07a7436512db0be40a710b29b5dc21fa04880b7f63c9980b706683127e3c1b57cb80ea96d47991bdae2dfe479604f6a1ba410106ee1046a41d1bd0814400 +"is-plain-object@npm:^5.0.0": + version: 5.0.0 + resolution: "is-plain-object@npm:5.0.0" + checksum: e32d27061eef62c0847d303125440a38660517e586f2f3db7c9d179ae5b6674ab0f469d519b2e25c147a1a3bc87156d0d5f4d8821e0ce4a9ee7fe1fcf11ce45c languageName: node linkType: hard -"hash-base@npm:^3.0.0": - version: 3.1.0 - resolution: "hash-base@npm:3.1.0" - dependencies: - inherits: ^2.0.4 - readable-stream: ^3.6.0 - safe-buffer: ^5.2.0 - checksum: 26b7e97ac3de13cb23fc3145e7e3450b0530274a9562144fc2bf5c1e2983afd0e09ed7cc3b20974ba66039fad316db463da80eb452e7373e780cbee9a0d2f2dc +"is-potential-custom-element-name@npm:^1.0.1": + version: 1.0.1 + resolution: "is-potential-custom-element-name@npm:1.0.1" + checksum: ced7bbbb6433a5b684af581872afe0e1767e2d1146b2207ca0068a648fb5cab9d898495d1ac0583524faaf24ca98176a7d9876363097c2d14fee6dd324f3a1ab languageName: node linkType: hard -"hash-base@npm:~3.0, hash-base@npm:~3.0.4": - version: 3.0.4 - resolution: "hash-base@npm:3.0.4" - dependencies: - inherits: ^2.0.1 - safe-buffer: ^5.0.1 - checksum: 878465a0dfcc33cce195c2804135352c590d6d10980adc91a9005fd377e77f2011256c2b7cfce472e3f2e92d561d1bf3228d2da06348a9017ce9a258b3b49764 +"is-primitive@npm:^3.0.1": + version: 3.0.1 + resolution: "is-primitive@npm:3.0.1" + checksum: c4da6a6e6d487f31d85b9259b67695fffcc75dca6c9612b0a002e3050c734227b9911be09b877539ec6309710229c19f4edd0f9e26ed2a67924ee0916baf0bed languageName: node linkType: hard -"hash.js@npm:^1.0.0, hash.js@npm:^1.0.3": - version: 1.1.7 - resolution: "hash.js@npm:1.1.7" - dependencies: - inherits: ^2.0.3 - minimalistic-assert: ^1.0.1 - checksum: e350096e659c62422b85fa508e4b3669017311aa4c49b74f19f8e1bc7f3a54a584fdfd45326d4964d6011f2b2d882e38bea775a96046f2a61b7779a979629d8f +"is-promise@npm:^4.0.0": + version: 4.0.0 + resolution: "is-promise@npm:4.0.0" + checksum: 0b46517ad47b00b6358fd6553c83ec1f6ba9acd7ffb3d30a0bf519c5c69e7147c132430452351b8a9fc198f8dd6c4f76f8e6f5a7f100f8c77d57d9e0f4261a8a languageName: node linkType: hard -"hasown@npm:^2.0.0, hasown@npm:^2.0.1, hasown@npm:^2.0.2": - version: 2.0.2 - resolution: "hasown@npm:2.0.2" - dependencies: - function-bind: ^1.1.2 - checksum: e8516f776a15149ca6c6ed2ae3110c417a00b62260e222590e54aa367cbcd6ed99122020b37b7fbdf05748df57b265e70095d7bf35a47660587619b15ffb93db +"is-property@npm:^1.0.2": + version: 1.0.2 + resolution: "is-property@npm:1.0.2" + checksum: 33b661a3690bcc88f7e47bb0a21b9e3187e76a317541ea7ec5e8096d954f441b77a46d8930c785f7fbf4ef8dfd624c25495221e026e50f74c9048fe501773be5 languageName: node linkType: hard -"he@npm:^1.2.0": - version: 1.2.0 - resolution: "he@npm:1.2.0" - bin: - he: bin/he - checksum: 3d4d6babccccd79c5c5a3f929a68af33360d6445587d628087f39a965079d84f18ce9c3d3f917ee1e3978916fc833bb8b29377c3b403f919426f91bc6965e7a7 +"is-reference@npm:1.2.1": + version: 1.2.1 + resolution: "is-reference@npm:1.2.1" + dependencies: + "@types/estree": "*" + checksum: e7b48149f8abda2c10849ea51965904d6a714193d68942ad74e30522231045acf06cbfae5a4be2702fede5d232e61bf50b3183acdc056e6e3afe07fcf4f4b2bc languageName: node linkType: hard -"headers-polyfill@npm:3.2.5": - version: 3.2.5 - resolution: "headers-polyfill@npm:3.2.5" - checksum: a3c4bdd661584fd39e40c0f91412abc514616edfbd20d29a75567e591f90ef5c445c8e209b7f3c2b2375d27e95e4690f33417368a168d4832484a93861ab6a3c +"is-regex@npm:^1.1.4, is-regex@npm:^1.2.1": + version: 1.2.1 + resolution: "is-regex@npm:1.2.1" + dependencies: + call-bound: ^1.0.2 + gopd: ^1.2.0 + has-tostringtag: ^1.0.2 + hasown: ^2.0.2 + checksum: 99ee0b6d30ef1bb61fa4b22fae7056c6c9b3c693803c0c284ff7a8570f83075a7d38cda53b06b7996d441215c27895ea5d1af62124562e13d91b3dbec41a5e13 languageName: node linkType: hard -"helmet@npm:^6.0.0": - version: 6.2.0 - resolution: "helmet@npm:6.2.0" - checksum: cf01e024244205bd10d70fd2f3874244b72ba37a10a4604e4383bbd63fe1438ee24bae7672c4ee5c5e16e6cd88ac58003274034fab0ba199761471555a322b37 +"is-root@npm:^2.1.0": + version: 2.1.0 + resolution: "is-root@npm:2.1.0" + checksum: 37eea0822a2a9123feb58a9d101558ba276771a6d830f87005683349a9acff15958a9ca590a44e778c6b335660b83e85c744789080d734f6081a935a4880aee2 languageName: node linkType: hard -"hexoid@npm:^1.0.0": - version: 1.0.0 - resolution: "hexoid@npm:1.0.0" - checksum: 27a148ca76a2358287f40445870116baaff4a0ed0acc99900bf167f0f708ffd82e044ff55e9949c71963852b580fc024146d3ac6d5d76b508b78d927fa48ae2d +"is-set@npm:^2.0.2, is-set@npm:^2.0.3": + version: 2.0.3 + resolution: "is-set@npm:2.0.3" + checksum: 36e3f8c44bdbe9496c9689762cc4110f6a6a12b767c5d74c0398176aa2678d4467e3bf07595556f2dba897751bde1422480212b97d973c7b08a343100b0c0dfe languageName: node linkType: hard -"hmac-drbg@npm:^1.0.1": - version: 1.0.1 - resolution: "hmac-drbg@npm:1.0.1" +"is-shared-array-buffer@npm:^1.0.2, is-shared-array-buffer@npm:^1.0.3": + version: 1.0.4 + resolution: "is-shared-array-buffer@npm:1.0.4" dependencies: - hash.js: ^1.0.3 - minimalistic-assert: ^1.0.0 - minimalistic-crypto-utils: ^1.0.1 - checksum: bd30b6a68d7f22d63f10e1888aee497d7c2c5c0bb469e66bbdac99f143904d1dfe95f8131f95b3e86c86dd239963c9d972fcbe147e7cffa00e55d18585c43fe0 + call-bound: ^1.0.3 + checksum: 1611fedc175796eebb88f4dfc393dd969a4a8e6c69cadaff424ee9d4464f9f026399a5f84a90f7c62d6d7ee04e3626a912149726de102b0bd6c1ee6a9868fa5a languageName: node linkType: hard -"homedir-polyfill@npm:^1.0.1": - version: 1.0.3 - resolution: "homedir-polyfill@npm:1.0.3" +"is-ssh@npm:^1.4.0": + version: 1.4.0 + resolution: "is-ssh@npm:1.4.0" dependencies: - parse-passwd: ^1.0.0 - checksum: 18dd4db87052c6a2179d1813adea0c4bfcfa4f9996f0e226fefb29eb3d548e564350fa28ec46b0bf1fbc0a1d2d6922ceceb80093115ea45ff8842a4990139250 + protocols: ^2.0.1 + checksum: 75eaa17b538bee24b661fbeb0f140226ac77e904a6039f787bea418431e2162f1f9c4c4ccad3bd169e036cd701cc631406e8c505d9fa7e20164e74b47f86f40f languageName: node linkType: hard -"hoopy@npm:^0.1.4": - version: 0.1.4 - resolution: "hoopy@npm:0.1.4" - checksum: cfa60c7684c5e1ee4efe26e167bc54b73f839ffb59d1d44a5c4bf891e26b4f5bcc666555219a98fec95508fea4eda3a79540c53c05cc79afc1f66f9a238f4d9e +"is-stream@npm:^2.0.0, is-stream@npm:^2.0.1": + version: 2.0.1 + resolution: "is-stream@npm:2.0.1" + checksum: b8e05ccdf96ac330ea83c12450304d4a591f9958c11fd17bed240af8d5ffe08aedafa4c0f4cfccd4d28dc9d4d129daca1023633d5c11601a6cbc77521f6fae66 languageName: node linkType: hard -"hpack.js@npm:^2.1.6": - version: 2.1.6 - resolution: "hpack.js@npm:2.1.6" +"is-string@npm:^1.0.7, is-string@npm:^1.1.1": + version: 1.1.1 + resolution: "is-string@npm:1.1.1" dependencies: - inherits: ^2.0.1 - obuf: ^1.0.0 - readable-stream: ^2.0.1 - wbuf: ^1.1.0 - checksum: 2de144115197967ad6eeee33faf41096c6ba87078703c5cb011632dcfbffeb45784569e0cf02c317bd79c48375597c8ec88c30fff5bb0b023e8f654fb6e9c06e + call-bound: ^1.0.3 + has-tostringtag: ^1.0.2 + checksum: 2eeaaff605250f5e836ea3500d33d1a5d3aa98d008641d9d42fb941e929ffd25972326c2ef912987e54c95b6f10416281aaf1b35cdf81992cfb7524c5de8e193 languageName: node linkType: hard -"html-encoding-sniffer@npm:^3.0.0": - version: 3.0.0 - resolution: "html-encoding-sniffer@npm:3.0.0" +"is-subdir@npm:^1.1.1": + version: 1.2.0 + resolution: "is-subdir@npm:1.2.0" dependencies: - whatwg-encoding: ^2.0.0 - checksum: 8d806aa00487e279e5ccb573366a951a9f68f65c90298eac9c3a2b440a7ffe46615aff2995a2f61c6746c639234e6179a97e18ca5ccbbf93d3725ef2099a4502 + better-path-resolve: 1.0.0 + checksum: 31029a383972bff4cc4f1bd1463fd04dde017e0a04ae3a6f6e08124a90c6c4656312d593101b0f38805fa3f3c8f6bc4583524bbf72c50784fa5ca0d3e5a76279 languageName: node linkType: hard -"html-entities@npm:^2.1.0, html-entities@npm:^2.3.2, html-entities@npm:^2.4.0, html-entities@npm:^2.5.2": - version: 2.5.2 - resolution: "html-entities@npm:2.5.2" - checksum: b23f4a07d33d49ade1994069af4e13d31650e3fb62621e92ae10ecdf01d1a98065c78fd20fdc92b4c7881612210b37c275f2c9fba9777650ab0d6f2ceb3b99b6 +"is-symbol@npm:^1.0.4, is-symbol@npm:^1.1.1": + version: 1.1.1 + resolution: "is-symbol@npm:1.1.1" + dependencies: + call-bound: ^1.0.2 + has-symbols: ^1.1.0 + safe-regex-test: ^1.1.0 + checksum: bfafacf037af6f3c9d68820b74be4ae8a736a658a3344072df9642a090016e281797ba8edbeb1c83425879aae55d1cb1f30b38bf132d703692b2570367358032 languageName: node linkType: hard -"html-escaper@npm:^2.0.0": - version: 2.0.2 - resolution: "html-escaper@npm:2.0.2" - checksum: d2df2da3ad40ca9ee3a39c5cc6475ef67c8f83c234475f24d8e9ce0dc80a2c82df8e1d6fa78ddd1e9022a586ea1bd247a615e80a5cd9273d90111ddda7d9e974 +"is-typed-array@npm:^1.1.13, is-typed-array@npm:^1.1.14, is-typed-array@npm:^1.1.15, is-typed-array@npm:^1.1.3": + version: 1.1.15 + resolution: "is-typed-array@npm:1.1.15" + dependencies: + which-typed-array: ^1.1.16 + checksum: ea7cfc46c282f805d19a9ab2084fd4542fed99219ee9dbfbc26284728bd713a51eac66daa74eca00ae0a43b61322920ba334793607dc39907465913e921e0892 languageName: node linkType: hard -"html-minifier-terser@npm:^6.0.2": - version: 6.1.0 - resolution: "html-minifier-terser@npm:6.1.0" - dependencies: - camel-case: ^4.1.2 - clean-css: ^5.2.2 - commander: ^8.3.0 - he: ^1.2.0 - param-case: ^3.0.4 - relateurl: ^0.2.7 - terser: ^5.10.0 - bin: - html-minifier-terser: cli.js - checksum: ac52c14006476f773204c198b64838477859dc2879490040efab8979c0207424da55d59df7348153f412efa45a0840a1ca3c757bf14767d23a15e3e389d37a93 +"is-typedarray@npm:~1.0.0": + version: 1.0.0 + resolution: "is-typedarray@npm:1.0.0" + checksum: 3508c6cd0a9ee2e0df2fa2e9baabcdc89e911c7bd5cf64604586697212feec525aa21050e48affb5ffc3df20f0f5d2e2cf79b08caa64e1ccc9578e251763aef7 languageName: node linkType: hard -"html-webpack-plugin@npm:^5.3.1": - version: 5.6.3 - resolution: "html-webpack-plugin@npm:5.6.3" - dependencies: - "@types/html-minifier-terser": ^6.0.0 - html-minifier-terser: ^6.0.2 - lodash: ^4.17.21 - pretty-error: ^4.0.0 - tapable: ^2.0.0 - peerDependencies: - "@rspack/core": 0.x || 1.x - webpack: ^5.20.0 - peerDependenciesMeta: - "@rspack/core": - optional: true - webpack: - optional: true - checksum: 59e7d971b0cfd9ba34c7acaa3c161e43c62596474dd8cd35d7b690498ff5891f21296de0aa1d2e7810348caa657e938461267155dda47913b5eeca7124406270 +"is-unicode-supported@npm:^0.1.0": + version: 0.1.0 + resolution: "is-unicode-supported@npm:0.1.0" + checksum: a2aab86ee7712f5c2f999180daaba5f361bdad1efadc9610ff5b8ab5495b86e4f627839d085c6530363c6d6d4ecbde340fb8e54bdb83da4ba8e0865ed5513c52 languageName: node linkType: hard -"htmlparser2@npm:^6.1.0": - version: 6.1.0 - resolution: "htmlparser2@npm:6.1.0" - dependencies: - domelementtype: ^2.0.1 - domhandler: ^4.0.0 - domutils: ^2.5.2 - entities: ^2.0.0 - checksum: 81a7b3d9c3bb9acb568a02fc9b1b81ffbfa55eae7f1c41ae0bf840006d1dbf54cb3aa245b2553e2c94db674840a9f0fdad7027c9a9d01a062065314039058c4e +"is-url@npm:^1.2.4": + version: 1.2.4 + resolution: "is-url@npm:1.2.4" + checksum: 100e74b3b1feab87a43ef7653736e88d997eb7bd32e71fd3ebc413e58c1cbe56269699c776aaea84244b0567f2a7d68dfaa512a062293ed2f9fdecb394148432 languageName: node linkType: hard -"http-assert@npm:^1.3.0": - version: 1.5.0 - resolution: "http-assert@npm:1.5.0" +"is-weakmap@npm:^2.0.2": + version: 2.0.2 + resolution: "is-weakmap@npm:2.0.2" + checksum: f36aef758b46990e0d3c37269619c0a08c5b29428c0bb11ecba7f75203442d6c7801239c2f31314bc79199217ef08263787f3837d9e22610ad1da62970d6616d + languageName: node + linkType: hard + +"is-weakref@npm:^1.0.2, is-weakref@npm:^1.1.0": + version: 1.1.0 + resolution: "is-weakref@npm:1.1.0" dependencies: - deep-equal: ~1.0.1 - http-errors: ~1.8.0 - checksum: 69c9b3c14cf8b2822916360a365089ce936c883c49068f91c365eccba5c141a9964d19fdda589150a480013bf503bf37d8936c732e9635819339e730ab0e7527 + call-bound: ^1.0.2 + checksum: 2a2f3a1746ee1baecf9ac6483d903cd3f8ef3cca88e2baa42f2e85ea064bd246d218eed5f6d479fc1c76dae2231e71133b6b86160e821d176932be9fae3da4da languageName: node linkType: hard -"http-cache-semantics@npm:^4.1.0, http-cache-semantics@npm:^4.1.1": - version: 4.1.1 - resolution: "http-cache-semantics@npm:4.1.1" - checksum: 83ac0bc60b17a3a36f9953e7be55e5c8f41acc61b22583060e8dedc9dd5e3607c823a88d0926f9150e571f90946835c7fe150732801010845c72cd8bbff1a236 +"is-weakset@npm:^2.0.3": + version: 2.0.4 + resolution: "is-weakset@npm:2.0.4" + dependencies: + call-bound: ^1.0.3 + get-intrinsic: ^1.2.6 + checksum: 5c6c8415a06065d78bdd5e3a771483aa1cd928df19138aa73c4c51333226f203f22117b4325df55cc8b3085a6716870a320c2d757efee92d7a7091a039082041 languageName: node linkType: hard -"http-deceiver@npm:^1.2.7": - version: 1.2.7 - resolution: "http-deceiver@npm:1.2.7" - checksum: 64d7d1ae3a6933eb0e9a94e6f27be4af45a53a96c3c34e84ff57113787105a89fff9d1c3df263ef63add823df019b0e8f52f7121e32393bb5ce9a713bf100b41 +"is-windows@npm:^1.0.0, is-windows@npm:^1.0.1": + version: 1.0.2 + resolution: "is-windows@npm:1.0.2" + checksum: 438b7e52656fe3b9b293b180defb4e448088e7023a523ec21a91a80b9ff8cdb3377ddb5b6e60f7c7de4fa8b63ab56e121b6705fe081b3cf1b828b0a380009ad7 languageName: node linkType: hard -"http-errors@npm:2.0.0": - version: 2.0.0 - resolution: "http-errors@npm:2.0.0" +"is-wsl@npm:^2.2.0": + version: 2.2.0 + resolution: "is-wsl@npm:2.2.0" dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.1 - toidentifier: 1.0.1 - checksum: 9b0a3782665c52ce9dc658a0d1560bcb0214ba5699e4ea15aefb2a496e2ca83db03ebc42e1cce4ac1f413e4e0d2d736a3fd755772c556a9a06853ba2a0b7d920 + is-docker: ^2.0.0 + checksum: 20849846ae414997d290b75e16868e5261e86ff5047f104027026fd61d8b5a9b0b3ade16239f35e1a067b3c7cc02f70183cb661010ed16f4b6c7c93dad1b19d8 languageName: node linkType: hard -"http-errors@npm:^1.6.3, http-errors@npm:~1.8.0": - version: 1.8.1 - resolution: "http-errors@npm:1.8.1" +"is-wsl@npm:^3.1.0": + version: 3.1.0 + resolution: "is-wsl@npm:3.1.0" dependencies: - depd: ~1.1.2 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: ">= 1.5.0 < 2" - toidentifier: 1.0.1 - checksum: d3c7e7e776fd51c0a812baff570bdf06fe49a5dc448b700ab6171b1250e4cf7db8b8f4c0b133e4bfe2451022a5790c1ca6c2cae4094dedd6ac8304a1267f91d2 + is-inside-container: ^1.0.0 + checksum: f9734c81f2f9cf9877c5db8356bfe1ff61680f1f4c1011e91278a9c0564b395ae796addb4bf33956871041476ec82c3e5260ed57b22ac91794d4ae70a1d2f0a9 languageName: node linkType: hard -"http-errors@npm:~1.6.2": - version: 1.6.3 - resolution: "http-errors@npm:1.6.3" - dependencies: - depd: ~1.1.2 - inherits: 2.0.3 - setprototypeof: 1.1.0 - statuses: ">= 1.4.0 < 2" - checksum: a9654ee027e3d5de305a56db1d1461f25709ac23267c6dc28cdab8323e3f96caa58a9a6a5e93ac15d7285cee0c2f019378c3ada9026e7fe19c872d695f27de7c +"isarray@npm:^1.0.0, isarray@npm:~1.0.0": + version: 1.0.0 + resolution: "isarray@npm:1.0.0" + checksum: f032df8e02dce8ec565cf2eb605ea939bdccea528dbcf565cdf92bfa2da9110461159d86a537388ef1acef8815a330642d7885b29010e8f7eac967c9993b65ab languageName: node linkType: hard -"http-parser-js@npm:>=0.5.1": - version: 0.5.8 - resolution: "http-parser-js@npm:0.5.8" - checksum: 6bbdf2429858e8cf13c62375b0bfb6dc3955ca0f32e58237488bc86cd2378f31d31785fd3ac4ce93f1c74e0189cf8823c91f5cb061696214fd368d2452dc871d +"isarray@npm:^2.0.5": + version: 2.0.5 + resolution: "isarray@npm:2.0.5" + checksum: bd5bbe4104438c4196ba58a54650116007fa0262eccef13a4c55b2e09a5b36b59f1e75b9fcc49883dd9d4953892e6fc007eef9e9155648ceea036e184b0f930a languageName: node linkType: hard -"http-proxy-agent@npm:^5.0.0": - version: 5.0.0 - resolution: "http-proxy-agent@npm:5.0.0" - dependencies: - "@tootallnate/once": 2 - agent-base: 6 - debug: 4 - checksum: e2ee1ff1656a131953839b2a19cd1f3a52d97c25ba87bd2559af6ae87114abf60971e498021f9b73f9fd78aea8876d1fb0d4656aac8a03c6caa9fc175f22b786 +"isbinaryfile@npm:^5.0.0": + version: 5.0.4 + resolution: "isbinaryfile@npm:5.0.4" + checksum: d88982a889369d83a5937b4b4d2288ed3b3dbbcee8fc74db40058f3c089a2c7beb9e5305b7177e82d87ff38fb62be8d60960f7a2d669ca08240ef31c1435b884 languageName: node linkType: hard -"http-proxy-agent@npm:^7.0.0, http-proxy-agent@npm:^7.0.1": - version: 7.0.2 - resolution: "http-proxy-agent@npm:7.0.2" - dependencies: - agent-base: ^7.1.0 - debug: ^4.3.4 - checksum: 670858c8f8f3146db5889e1fa117630910101db601fff7d5a8aa637da0abedf68c899f03d3451cac2f83bcc4c3d2dabf339b3aa00ff8080571cceb02c3ce02f3 +"isexe@npm:^2.0.0": + version: 2.0.0 + resolution: "isexe@npm:2.0.0" + checksum: 26bf6c5480dda5161c820c5b5c751ae1e766c587b1f951ea3fcfc973bafb7831ae5b54a31a69bd670220e42e99ec154475025a468eae58ea262f813fdc8d1c62 languageName: node linkType: hard -"http-proxy-middleware@npm:^2.0.3": - version: 2.0.7 - resolution: "http-proxy-middleware@npm:2.0.7" - dependencies: - "@types/http-proxy": ^1.17.8 - http-proxy: ^1.18.1 - is-glob: ^4.0.1 - is-plain-obj: ^3.0.0 - micromatch: ^4.0.2 - peerDependencies: - "@types/express": ^4.17.13 - peerDependenciesMeta: - "@types/express": - optional: true - checksum: 18caa21145917aa1054740353916e8f03f5a3a93bede9106f1f44d84f7b174df17af1c72bf5fade5cc440c2058ee813f47cbb2bdd6ae6874af1cf33e0ac575f3 +"isexe@npm:^3.1.1": + version: 3.1.1 + resolution: "isexe@npm:3.1.1" + checksum: 7fe1931ee4e88eb5aa524cd3ceb8c882537bc3a81b02e438b240e47012eef49c86904d0f0e593ea7c3a9996d18d0f1f3be8d3eaa92333977b0c3a9d353d5563e languageName: node linkType: hard -"http-proxy@npm:^1.18.1": - version: 1.18.1 - resolution: "http-proxy@npm:1.18.1" - dependencies: - eventemitter3: ^4.0.0 - follow-redirects: ^1.0.0 - requires-port: ^1.0.0 - checksum: f5bd96bf83e0b1e4226633dbb51f8b056c3e6321917df402deacec31dd7fe433914fc7a2c1831cf7ae21e69c90b3a669b8f434723e9e8b71fd68afe30737b6a5 +"isobject@npm:^3.0.1": + version: 3.0.1 + resolution: "isobject@npm:3.0.1" + checksum: db85c4c970ce30693676487cca0e61da2ca34e8d4967c2e1309143ff910c207133a969f9e4ddb2dc6aba670aabce4e0e307146c310350b298e74a31f7d464703 languageName: node linkType: hard -"http-signature@npm:~1.2.0": - version: 1.2.0 - resolution: "http-signature@npm:1.2.0" +"isolated-vm@npm:^5.0.1": + version: 5.0.3 + resolution: "isolated-vm@npm:5.0.3" dependencies: - assert-plus: ^1.0.0 - jsprim: ^1.2.2 - sshpk: ^1.7.0 - checksum: 3324598712266a9683585bb84a75dec4fd550567d5e0dd4a0fff6ff3f74348793404d3eeac4918fa0902c810eeee1a86419e4a2e92a164132dfe6b26743fb47c + node-gyp: latest + prebuild-install: ^7.1.2 + checksum: 71ec0c45fe00ed5e48b598281682e46bea7b478177d303326a0ba0602a3186059164d89935820b6648d3ea68aa73d23cd47378752189a7a6877bdfcec140985a languageName: node linkType: hard -"https-browserify@npm:^1.0.0": - version: 1.0.0 - resolution: "https-browserify@npm:1.0.0" - checksum: 09b35353e42069fde2435760d13f8a3fb7dd9105e358270e2e225b8a94f811b461edd17cb57594e5f36ec1218f121c160ddceeec6e8be2d55e01dcbbbed8cbae +"isomorphic-dompurify@npm:^0.13.0": + version: 0.13.0 + resolution: "isomorphic-dompurify@npm:0.13.0" + dependencies: + "@types/dompurify": ^2.1.0 + dompurify: ^2.2.7 + jsdom: ^16.5.2 + checksum: 144069c00c5ec2c8a9b5bca0abc8d1f5f091bb791564d5e8495cb7d45a4b23899fb7fda4fb91cbb80e3651f300df29a7b3225c0ae22071a56ac6e5362e8afbe3 languageName: node linkType: hard -"https-proxy-agent@npm:^5.0.0, https-proxy-agent@npm:^5.0.1": - version: 5.0.1 - resolution: "https-proxy-agent@npm:5.0.1" +"isomorphic-form-data@npm:^2.0.0": + version: 2.0.0 + resolution: "isomorphic-form-data@npm:2.0.0" dependencies: - agent-base: 6 - debug: 4 - checksum: 571fccdf38184f05943e12d37d6ce38197becdd69e58d03f43637f7fa1269cf303a7d228aa27e5b27bbd3af8f09fd938e1c91dcfefff2df7ba77c20ed8dfc765 + form-data: ^2.3.2 + checksum: 234bfaa1ed037b1d6cf659eb7a5806889f1f60bc4c7effe5f54e52506004604a9d7229a03a8f9656a1a7ea5fcedca4342277083e38f88ff910b64eefa97dd95e languageName: node linkType: hard -"https-proxy-agent@npm:^7.0.0, https-proxy-agent@npm:^7.0.1, https-proxy-agent@npm:^7.0.3, https-proxy-agent@npm:^7.0.5": - version: 7.0.5 - resolution: "https-proxy-agent@npm:7.0.5" +"isomorphic-git@npm:^1.23.0": + version: 1.27.2 + resolution: "isomorphic-git@npm:1.27.2" dependencies: - agent-base: ^7.0.2 - debug: 4 - checksum: 2e1a28960f13b041a50702ee74f240add8e75146a5c37fc98f1960f0496710f6918b3a9fe1e5aba41e50f58e6df48d107edd9c405c5f0d73ac260dabf2210857 + async-lock: ^1.4.1 + clean-git-ref: ^2.0.1 + crc-32: ^1.2.0 + diff3: 0.0.3 + ignore: ^5.1.4 + minimisted: ^2.0.0 + pako: ^1.0.10 + path-browserify: ^1.0.1 + pify: ^4.0.1 + readable-stream: ^3.4.0 + sha.js: ^2.4.9 + simple-get: ^4.0.1 + bin: + isogit: cli.cjs + checksum: 93077ba9192a67a9c2ebc3d4d00d7647cc6a20c546bd2c4fce6716cc5c2ce7772eb16b5493ab77fe3331eddb8b43d6f58855293a1dd5536130e7c6a60d9d4125 languageName: node linkType: hard -"human-id@npm:^1.0.2": - version: 1.0.2 - resolution: "human-id@npm:1.0.2" - checksum: 95ee57ffae849f008e2ef3fe6e437be8c999861b4256f18c3b194c8928670a8a149e0576917105d5fd77e5edbb621c5a4736fade20bb7bf130113c1ebc95cb74 +"isomorphic-rslog@npm:0.0.5": + version: 0.0.5 + resolution: "isomorphic-rslog@npm:0.0.5" + checksum: ba3d8a5ca4691ae4e6ef8a50c404b94658618c87bd2ac7618946f8ea067489ee4a16a152b74afe24bcbdfe975e3b3a63e3c5149bf2a929aa781bdd7eb3f1370f languageName: node linkType: hard -"human-signals@npm:^2.1.0": - version: 2.1.0 - resolution: "human-signals@npm:2.1.0" - checksum: b87fd89fce72391625271454e70f67fe405277415b48bcc0117ca73d31fa23a4241787afdc8d67f5a116cf37258c052f59ea82daffa72364d61351423848e3b8 +"isomorphic-ws@npm:5.0.0, isomorphic-ws@npm:^5.0.0": + version: 5.0.0 + resolution: "isomorphic-ws@npm:5.0.0" + peerDependencies: + ws: "*" + checksum: e20eb2aee09ba96247465fda40c6d22c1153394c0144fa34fe6609f341af4c8c564f60ea3ba762335a7a9c306809349f9b863c8beedf2beea09b299834ad5398 languageName: node linkType: hard -"humanize-ms@npm:^1.2.1": - version: 1.2.1 - resolution: "humanize-ms@npm:1.2.1" - dependencies: - ms: ^2.0.0 - checksum: 9c7a74a2827f9294c009266c82031030eae811ca87b0da3dceb8d6071b9bde22c9f3daef0469c3c533cc67a97d8a167cd9fc0389350e5f415f61a79b171ded16 +"isomorphic-ws@npm:^4.0.1": + version: 4.0.1 + resolution: "isomorphic-ws@npm:4.0.1" + peerDependencies: + ws: "*" + checksum: d7190eadefdc28bdb93d67b5f0c603385aaf87724fa2974abb382ac1ec9756ed2cfb27065cbe76122879c2d452e2982bc4314317f3d6c737ddda6c047328771a languageName: node linkType: hard -"hyperdyperid@npm:^1.2.0": - version: 1.2.0 - resolution: "hyperdyperid@npm:1.2.0" - checksum: 210029d1c86926f09109f6317d143f8b056fc38e8dd11b0c3e3205fc6c6ff8429fb55b4b9c2bce065462719ed9d34366eced387aaa0035d93eb76b306a8547ef +"isstream@npm:~0.1.2": + version: 0.1.2 + resolution: "isstream@npm:0.1.2" + checksum: 1eb2fe63a729f7bdd8a559ab552c69055f4f48eb5c2f03724430587c6f450783c8f1cd936c1c952d0a927925180fcc892ebd5b174236cf1065d4bd5bdb37e963 languageName: node linkType: hard -"iconv-lite@npm:0.4.24, iconv-lite@npm:^0.4.24": - version: 0.4.24 - resolution: "iconv-lite@npm:0.4.24" - dependencies: - safer-buffer: ">= 2.1.2 < 3" - checksum: bd9f120f5a5b306f0bc0b9ae1edeb1577161503f5f8252a20f1a9e56ef8775c9959fd01c55f2d3a39d9a8abaf3e30c1abeb1895f367dcbbe0a8fd1c9ca01c4f6 +"istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0": + version: 3.2.2 + resolution: "istanbul-lib-coverage@npm:3.2.2" + checksum: 2367407a8d13982d8f7a859a35e7f8dd5d8f75aae4bb5484ede3a9ea1b426dc245aff28b976a2af48ee759fdd9be374ce2bd2669b644f31e76c5f46a2e29a831 languageName: node linkType: hard -"iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2, iconv-lite@npm:^0.6.3": - version: 0.6.3 - resolution: "iconv-lite@npm:0.6.3" +"istanbul-lib-instrument@npm:^5.0.4": + version: 5.2.1 + resolution: "istanbul-lib-instrument@npm:5.2.1" dependencies: - safer-buffer: ">= 2.1.2 < 3.0.0" - checksum: 3f60d47a5c8fc3313317edfd29a00a692cc87a19cac0159e2ce711d0ebc9019064108323b5e493625e25594f11c6236647d8e256fbe7a58f4a3b33b89e6d30bf + "@babel/core": ^7.12.3 + "@babel/parser": ^7.14.7 + "@istanbuljs/schema": ^0.1.2 + istanbul-lib-coverage: ^3.2.0 + semver: ^6.3.0 + checksum: bf16f1803ba5e51b28bbd49ed955a736488381e09375d830e42ddeb403855b2006f850711d95ad726f2ba3f1ae8e7366de7e51d2b9ac67dc4d80191ef7ddf272 languageName: node linkType: hard -"icss-replace-symbols@npm:^1.1.0": - version: 1.1.0 - resolution: "icss-replace-symbols@npm:1.1.0" - checksum: 24575b2c2f7e762bfc6f4beee31be9ba98a01cad521b5aa9954090a5de2b5e1bf67814c17e22f9e51b7d798238db8215a173d6c2b4726ce634ce06b68ece8045 +"istanbul-lib-instrument@npm:^6.0.0": + version: 6.0.3 + resolution: "istanbul-lib-instrument@npm:6.0.3" + dependencies: + "@babel/core": ^7.23.9 + "@babel/parser": ^7.23.9 + "@istanbuljs/schema": ^0.1.3 + istanbul-lib-coverage: ^3.2.0 + semver: ^7.5.4 + checksum: 74104c60c65c4fa0e97cc76f039226c356123893929f067bfad5f86fe839e08f5d680354a68fead3bc9c1e2f3fa6f3f53cded70778e821d911e851d349f3545a languageName: node linkType: hard -"icss-utils@npm:^5.0.0, icss-utils@npm:^5.1.0": - version: 5.1.0 - resolution: "icss-utils@npm:5.1.0" - peerDependencies: - postcss: ^8.1.0 - checksum: 5c324d283552b1269cfc13a503aaaa172a280f914e5b81544f3803bc6f06a3b585fb79f66f7c771a2c052db7982c18bf92d001e3b47282e3abbbb4c4cc488d68 +"istanbul-lib-report@npm:^3.0.0": + version: 3.0.1 + resolution: "istanbul-lib-report@npm:3.0.1" + dependencies: + istanbul-lib-coverage: ^3.0.0 + make-dir: ^4.0.0 + supports-color: ^7.1.0 + checksum: fd17a1b879e7faf9bb1dc8f80b2a16e9f5b7b8498fe6ed580a618c34df0bfe53d2abd35bf8a0a00e628fb7405462576427c7df20bbe4148d19c14b431c974b21 languageName: node linkType: hard -"identity-obj-proxy@npm:3.0.0": - version: 3.0.0 - resolution: "identity-obj-proxy@npm:3.0.0" +"istanbul-lib-source-maps@npm:^4.0.0": + version: 4.0.1 + resolution: "istanbul-lib-source-maps@npm:4.0.1" dependencies: - harmony-reflect: ^1.4.6 - checksum: 97559f8ea2aeaa1a880d279d8c49550dce01148321e00a2102cda5ddf9ce622fa1d7f3efc7bed63458af78889de888fdaebaf31c816312298bb3fdd0ef8aaf2c + debug: ^4.1.1 + istanbul-lib-coverage: ^3.0.0 + source-map: ^0.6.1 + checksum: 21ad3df45db4b81852b662b8d4161f6446cd250c1ddc70ef96a585e2e85c26ed7cd9c2a396a71533cfb981d1a645508bc9618cae431e55d01a0628e7dec62ef2 languageName: node linkType: hard -"ieee754@npm:^1.1.13, ieee754@npm:^1.1.4, ieee754@npm:^1.2.1": - version: 1.2.1 - resolution: "ieee754@npm:1.2.1" - checksum: 5144c0c9815e54ada181d80a0b810221a253562422e7c6c3a60b1901154184f49326ec239d618c416c1c5945a2e197107aee8d986a3dd836b53dffefd99b5e7e +"istanbul-reports@npm:^3.1.3": + version: 3.1.7 + resolution: "istanbul-reports@npm:3.1.7" + dependencies: + html-escaper: ^2.0.0 + istanbul-lib-report: ^3.0.0 + checksum: 2072db6e07bfbb4d0eb30e2700250636182398c1af811aea5032acb219d2080f7586923c09fa194029efd6b92361afb3dcbe1ebcc3ee6651d13340f7c6c4ed95 languageName: node linkType: hard -"ignore-walk@npm:^5.0.1": - version: 5.0.1 - resolution: "ignore-walk@npm:5.0.1" - dependencies: - minimatch: ^5.0.1 - checksum: 1a4ef35174653a1aa6faab3d9f8781269166536aee36a04946f6e2b319b2475c1903a75ed42f04219274128242f49d0a10e20c4354ee60d9548e97031451150b +"iterall@npm:^1.2.1, iterall@npm:^1.3.0": + version: 1.3.0 + resolution: "iterall@npm:1.3.0" + checksum: c78b99678f8c99be488cca7f33e4acca9b72c1326e050afbaf023f086e55619ee466af0464af94a0cb3f292e60cb5bac53a8fd86bd4249ecad26e09f17bb158b languageName: node linkType: hard -"ignore@npm:^3.3.10": - version: 3.3.10 - resolution: "ignore@npm:3.3.10" - checksum: 23e8cc776e367b56615ab21b78decf973a35dfca5522b39d9b47643d8168473b0d1f18dd1321a1bab466a12ea11a2411903f3b21644f4d5461ee0711ec8678bd +"iterare@npm:1.2.1": + version: 1.2.1 + resolution: "iterare@npm:1.2.1" + checksum: 70bc80038e3718aa9072bc63b3a0135166d7120bde46bfcaf80a88d11005dcef1b2d69cd353849f87a3f58ba8f546a8c6e6983408236ff01fa50b52339ee5223 languageName: node linkType: hard -"ignore@npm:^5.1.4, ignore@npm:^5.1.8, ignore@npm:^5.2.0, ignore@npm:^5.2.4": - version: 5.3.2 - resolution: "ignore@npm:5.3.2" - checksum: 2acfd32a573260ea522ea0bfeff880af426d68f6831f973129e2ba7363f422923cf53aab62f8369cbf4667c7b25b6f8a3761b34ecdb284ea18e87a5262a865be +"iterator.prototype@npm:^1.1.3": + version: 1.1.4 + resolution: "iterator.prototype@npm:1.1.4" + dependencies: + define-data-property: ^1.1.4 + es-object-atoms: ^1.0.0 + get-intrinsic: ^1.2.6 + has-symbols: ^1.1.0 + reflect.getprototypeof: ^1.0.8 + set-function-name: ^2.0.2 + checksum: e2b1f0f7678cf6ff02b74085dbd708bdfb6c18357af46cedc18a34e08d066c9b26e9dfb7dd2619dc199d17e681f30200b122425f793e9ad0105671191433d50f languageName: node linkType: hard -"immer@npm:^9.0.6, immer@npm:^9.0.7": - version: 9.0.21 - resolution: "immer@npm:9.0.21" - checksum: 70e3c274165995352f6936695f0ef4723c52c92c92dd0e9afdfe008175af39fa28e76aafb3a2ca9d57d1fb8f796efc4dd1e1cc36f18d33fa5b74f3dfb0375432 +"jackspeak@npm:^3.1.2": + version: 3.4.3 + resolution: "jackspeak@npm:3.4.3" + dependencies: + "@isaacs/cliui": ^8.0.2 + "@pkgjs/parseargs": ^0.11.0 + dependenciesMeta: + "@pkgjs/parseargs": + optional: true + checksum: be31027fc72e7cc726206b9f560395604b82e0fddb46c4cbf9f97d049bcef607491a5afc0699612eaa4213ca5be8fd3e1e7cd187b3040988b65c9489838a7c00 languageName: node linkType: hard -"import-cwd@npm:^3.0.0": - version: 3.0.0 - resolution: "import-cwd@npm:3.0.0" +"jest-canvas-mock@npm:2.5.2": + version: 2.5.2 + resolution: "jest-canvas-mock@npm:2.5.2" dependencies: - import-from: ^3.0.0 - checksum: f2c4230e8389605154a390124381f9136811306ae4ba1c8017398c3c6926bc5cf75cf89350372b4938f79792ea373776b4efabd27506440ec301ce34c4e867eb + cssfontparser: ^1.2.1 + moo-color: ^1.0.2 + checksum: a3004d2e96473049045e49dcf98e5ea6011494048ab42b5422b3089d9ff406aaca8353e79587055d840fa145541668eb8f78613765f252ad5901a8217e91ea5d languageName: node linkType: hard -"import-fresh@npm:^3.1.0, import-fresh@npm:^3.2.1, import-fresh@npm:^3.3.0": - version: 3.3.0 - resolution: "import-fresh@npm:3.3.0" +"jest-changed-files@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-changed-files@npm:29.7.0" dependencies: - parent-module: ^1.0.0 - resolve-from: ^4.0.0 - checksum: 2cacfad06e652b1edc50be650f7ec3be08c5e5a6f6d12d035c440a42a8cc028e60a5b99ca08a77ab4d6b1346da7d971915828f33cdab730d3d42f08242d09baa + execa: ^5.0.0 + jest-util: ^29.7.0 + p-limit: ^3.1.0 + checksum: 963e203893c396c5dfc75e00a49426688efea7361b0f0e040035809cecd2d46b3c01c02be2d9e8d38b1138357d2de7719ea5b5be21f66c10f2e9685a5a73bb99 languageName: node linkType: hard -"import-from@npm:^3.0.0": - version: 3.0.0 - resolution: "import-from@npm:3.0.0" +"jest-circus@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-circus@npm:29.7.0" dependencies: - resolve-from: ^5.0.0 - checksum: 5040a7400e77e41e2c3bb6b1b123b52a15a284de1ffc03d605879942c00e3a87428499d8d031d554646108a0f77652549411167f6a7788e4fc7027eefccf3356 + "@jest/environment": ^29.7.0 + "@jest/expect": ^29.7.0 + "@jest/test-result": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/node": "*" + chalk: ^4.0.0 + co: ^4.6.0 + dedent: ^1.0.0 + is-generator-fn: ^2.0.0 + jest-each: ^29.7.0 + jest-matcher-utils: ^29.7.0 + jest-message-util: ^29.7.0 + jest-runtime: ^29.7.0 + jest-snapshot: ^29.7.0 + jest-util: ^29.7.0 + p-limit: ^3.1.0 + pretty-format: ^29.7.0 + pure-rand: ^6.0.0 + slash: ^3.0.0 + stack-utils: ^2.0.3 + checksum: 349437148924a5a109c9b8aad6d393a9591b4dac1918fc97d81b7fc515bc905af9918495055071404af1fab4e48e4b04ac3593477b1d5dcf48c4e71b527c70a7 languageName: node linkType: hard -"import-lazy@npm:~4.0.0": - version: 4.0.0 - resolution: "import-lazy@npm:4.0.0" - checksum: 22f5e51702134aef78890156738454f620e5fe7044b204ebc057c614888a1dd6fdf2ede0fdcca44d5c173fd64f65c985f19a51775b06967ef58cc3d26898df07 +"jest-cli@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-cli@npm:29.7.0" + dependencies: + "@jest/core": ^29.7.0 + "@jest/test-result": ^29.7.0 + "@jest/types": ^29.6.3 + chalk: ^4.0.0 + create-jest: ^29.7.0 + exit: ^0.1.2 + import-local: ^3.0.2 + jest-config: ^29.7.0 + jest-util: ^29.7.0 + jest-validate: ^29.7.0 + yargs: ^17.3.1 + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + bin: + jest: bin/jest.js + checksum: 664901277a3f5007ea4870632ed6e7889db9da35b2434e7cb488443e6bf5513889b344b7fddf15112135495b9875892b156faeb2d7391ddb9e2a849dcb7b6c36 languageName: node linkType: hard -"import-local@npm:^3.0.2": - version: 3.2.0 - resolution: "import-local@npm:3.2.0" +"jest-config@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-config@npm:29.7.0" dependencies: - pkg-dir: ^4.2.0 - resolve-cwd: ^3.0.0 - bin: - import-local-fixture: fixtures/cli.js - checksum: 0b0b0b412b2521739fbb85eeed834a3c34de9bc67e670b3d0b86248fc460d990a7b116ad056c084b87a693ef73d1f17268d6a5be626bb43c998a8b1c8a230004 + "@babel/core": ^7.11.6 + "@jest/test-sequencer": ^29.7.0 + "@jest/types": ^29.6.3 + babel-jest: ^29.7.0 + chalk: ^4.0.0 + ci-info: ^3.2.0 + deepmerge: ^4.2.2 + glob: ^7.1.3 + graceful-fs: ^4.2.9 + jest-circus: ^29.7.0 + jest-environment-node: ^29.7.0 + jest-get-type: ^29.6.3 + jest-regex-util: ^29.6.3 + jest-resolve: ^29.7.0 + jest-runner: ^29.7.0 + jest-util: ^29.7.0 + jest-validate: ^29.7.0 + micromatch: ^4.0.4 + parse-json: ^5.2.0 + pretty-format: ^29.7.0 + slash: ^3.0.0 + strip-json-comments: ^3.1.1 + peerDependencies: + "@types/node": "*" + ts-node: ">=9.0.0" + peerDependenciesMeta: + "@types/node": + optional: true + ts-node: + optional: true + checksum: 4cabf8f894c180cac80b7df1038912a3fc88f96f2622de33832f4b3314f83e22b08fb751da570c0ab2b7988f21604bdabade95e3c0c041068ac578c085cf7dff languageName: node linkType: hard -"imurmurhash@npm:^0.1.4": - version: 0.1.4 - resolution: "imurmurhash@npm:0.1.4" - checksum: 7cae75c8cd9a50f57dadd77482359f659eaebac0319dd9368bcd1714f55e65badd6929ca58569da2b6494ef13fdd5598cd700b1eba23f8b79c5f19d195a3ecf7 +"jest-css-modules@npm:^2.1.0": + version: 2.1.0 + resolution: "jest-css-modules@npm:2.1.0" + dependencies: + identity-obj-proxy: 3.0.0 + checksum: ddf01a327379f0186fc506b0c2a6cecad59acf3a7c947113f75530d1ea87e4f09aa98c9894283c0ead29688ef9fbc3c91ce1b158756034872fa097e491ee9f8c languageName: node linkType: hard -"indent-string@npm:^4.0.0": - version: 4.0.0 - resolution: "indent-string@npm:4.0.0" - checksum: 824cfb9929d031dabf059bebfe08cf3137365e112019086ed3dcff6a0a7b698cb80cf67ccccde0e25b9e2d7527aa6cc1fed1ac490c752162496caba3e6699612 +"jest-diff@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-diff@npm:29.7.0" + dependencies: + chalk: ^4.0.0 + diff-sequences: ^29.6.3 + jest-get-type: ^29.6.3 + pretty-format: ^29.7.0 + checksum: 08e24a9dd43bfba1ef07a6374e5af138f53137b79ec3d5cc71a2303515335898888fa5409959172e1e05de966c9e714368d15e8994b0af7441f0721ee8e1bb77 languageName: node linkType: hard -"infer-owner@npm:^1.0.4": - version: 1.0.4 - resolution: "infer-owner@npm:1.0.4" - checksum: 181e732764e4a0611576466b4b87dac338972b839920b2a8cde43642e4ed6bd54dc1fb0b40874728f2a2df9a1b097b8ff83b56d5f8f8e3927f837fdcb47d8a89 +"jest-docblock@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-docblock@npm:29.7.0" + dependencies: + detect-newline: ^3.0.0 + checksum: 66390c3e9451f8d96c5da62f577a1dad701180cfa9b071c5025acab2f94d7a3efc2515cfa1654ebe707213241541ce9c5530232cdc8017c91ed64eea1bd3b192 languageName: node linkType: hard -"inflight@npm:^1.0.4": - version: 1.0.6 - resolution: "inflight@npm:1.0.6" +"jest-each@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-each@npm:29.7.0" dependencies: - once: ^1.3.0 - wrappy: 1 - checksum: f4f76aa072ce19fae87ce1ef7d221e709afb59d445e05d47fba710e85470923a75de35bfae47da6de1b18afc3ce83d70facf44cfb0aff89f0a3f45c0a0244dfd + "@jest/types": ^29.6.3 + chalk: ^4.0.0 + jest-get-type: ^29.6.3 + jest-util: ^29.7.0 + pretty-format: ^29.7.0 + checksum: e88f99f0184000fc8813f2a0aa79e29deeb63700a3b9b7928b8a418d7d93cd24933608591dbbdea732b473eb2021c72991b5cc51a17966842841c6e28e6f691c languageName: node linkType: hard -"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.1, inherits@npm:~2.0.3": - version: 2.0.4 - resolution: "inherits@npm:2.0.4" - checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 +"jest-environment-jsdom@npm:^29.0.2": + version: 29.7.0 + resolution: "jest-environment-jsdom@npm:29.7.0" + dependencies: + "@jest/environment": ^29.7.0 + "@jest/fake-timers": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/jsdom": ^20.0.0 + "@types/node": "*" + jest-mock: ^29.7.0 + jest-util: ^29.7.0 + jsdom: ^20.0.0 + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + checksum: 559aac134c196fccc1dfc794d8fc87377e9f78e894bb13012b0831d88dec0abd7ece99abec69da564b8073803be4f04a9eb4f4d1bb80e29eec0cb252c254deb8 languageName: node linkType: hard -"inherits@npm:2.0.3": - version: 2.0.3 - resolution: "inherits@npm:2.0.3" - checksum: 78cb8d7d850d20a5e9a7f3620db31483aa00ad5f722ce03a55b110e5a723539b3716a3b463e2b96ce3fe286f33afc7c131fa2f91407528ba80cea98a7545d4c0 +"jest-environment-node@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-environment-node@npm:29.7.0" + dependencies: + "@jest/environment": ^29.7.0 + "@jest/fake-timers": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/node": "*" + jest-mock: ^29.7.0 + jest-util: ^29.7.0 + checksum: 501a9966292cbe0ca3f40057a37587cb6def25e1e0c5e39ac6c650fe78d3c70a2428304341d084ac0cced5041483acef41c477abac47e9a290d5545fd2f15646 languageName: node linkType: hard -"ini@npm:^1.3.2, ini@npm:^1.3.4, ini@npm:^1.3.5, ini@npm:~1.3.0": - version: 1.3.8 - resolution: "ini@npm:1.3.8" - checksum: dfd98b0ca3a4fc1e323e38a6c8eb8936e31a97a918d3b377649ea15bdb15d481207a0dda1021efbd86b464cae29a0d33c1d7dcaf6c5672bee17fa849bc50a1b3 +"jest-get-type@npm:^29.6.3": + version: 29.6.3 + resolution: "jest-get-type@npm:29.6.3" + checksum: 88ac9102d4679d768accae29f1e75f592b760b44277df288ad76ce5bf038c3f5ce3719dea8aa0f035dac30e9eb034b848ce716b9183ad7cc222d029f03e92205 languageName: node linkType: hard -"inquirer@npm:8.2.6, inquirer@npm:^8.2.0": - version: 8.2.6 - resolution: "inquirer@npm:8.2.6" +"jest-haste-map@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-haste-map@npm:29.7.0" dependencies: - ansi-escapes: ^4.2.1 - chalk: ^4.1.1 - cli-cursor: ^3.1.0 - cli-width: ^3.0.0 - external-editor: ^3.0.3 - figures: ^3.0.0 - lodash: ^4.17.21 - mute-stream: 0.0.8 - ora: ^5.4.1 - run-async: ^2.4.0 - rxjs: ^7.5.5 - string-width: ^4.1.0 - strip-ansi: ^6.0.0 - through: ^2.3.6 - wrap-ansi: ^6.0.1 - checksum: 387ffb0a513559cc7414eb42c57556a60e302f820d6960e89d376d092e257a919961cd485a1b4de693dbb5c0de8bc58320bfd6247dfd827a873aa82a4215a240 + "@jest/types": ^29.6.3 + "@types/graceful-fs": ^4.1.3 + "@types/node": "*" + anymatch: ^3.0.3 + fb-watchman: ^2.0.0 + fsevents: ^2.3.2 + graceful-fs: ^4.2.9 + jest-regex-util: ^29.6.3 + jest-util: ^29.7.0 + jest-worker: ^29.7.0 + micromatch: ^4.0.4 + walker: ^1.0.8 + dependenciesMeta: + fsevents: + optional: true + checksum: c2c8f2d3e792a963940fbdfa563ce14ef9e14d4d86da645b96d3cd346b8d35c5ce0b992ee08593939b5f718cf0a1f5a90011a056548a1dbf58397d4356786f01 languageName: node linkType: hard -"internal-slot@npm:^1.0.7": - version: 1.0.7 - resolution: "internal-slot@npm:1.0.7" +"jest-leak-detector@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-leak-detector@npm:29.7.0" dependencies: - es-errors: ^1.3.0 - hasown: ^2.0.0 - side-channel: ^1.0.4 - checksum: cadc5eea5d7d9bc2342e93aae9f31f04c196afebb11bde97448327049f492cd7081e18623ae71388aac9cd237b692ca3a105be9c68ac39c1dec679d7409e33eb + jest-get-type: ^29.6.3 + pretty-format: ^29.7.0 + checksum: e3950e3ddd71e1d0c22924c51a300a1c2db6cf69ec1e51f95ccf424bcc070f78664813bef7aed4b16b96dfbdeea53fe358f8aeaaea84346ae15c3735758f1605 languageName: node linkType: hard -"interpret@npm:^2.2.0": - version: 2.2.0 - resolution: "interpret@npm:2.2.0" - checksum: f51efef7cb8d02da16408ffa3504cd6053014c5aeb7bb8c223727e053e4235bf565e45d67028b0c8740d917c603807aa3c27d7bd2f21bf20b6417e2bb3e5fd6e +"jest-matcher-utils@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-matcher-utils@npm:29.7.0" + dependencies: + chalk: ^4.0.0 + jest-diff: ^29.7.0 + jest-get-type: ^29.6.3 + pretty-format: ^29.7.0 + checksum: d7259e5f995d915e8a37a8fd494cb7d6af24cd2a287b200f831717ba0d015190375f9f5dc35393b8ba2aae9b2ebd60984635269c7f8cff7d85b077543b7744cd languageName: node linkType: hard -"ioredis@npm:^5.4.1": - version: 5.4.1 - resolution: "ioredis@npm:5.4.1" +"jest-message-util@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-message-util@npm:29.7.0" dependencies: - "@ioredis/commands": ^1.1.1 - cluster-key-slot: ^1.1.0 - debug: ^4.3.4 - denque: ^2.1.0 - lodash.defaults: ^4.2.0 - lodash.isarguments: ^3.1.0 - redis-errors: ^1.2.0 - redis-parser: ^3.0.0 - standard-as-callback: ^2.1.0 - checksum: 92210294f75800febe7544c27b07e4892480172363b11971aa575be5b68f023bfed4bc858abc9792230c153aa80409047a358f174062c14d17536aa4499fe10b + "@babel/code-frame": ^7.12.13 + "@jest/types": ^29.6.3 + "@types/stack-utils": ^2.0.0 + chalk: ^4.0.0 + graceful-fs: ^4.2.9 + micromatch: ^4.0.4 + pretty-format: ^29.7.0 + slash: ^3.0.0 + stack-utils: ^2.0.3 + checksum: a9d025b1c6726a2ff17d54cc694de088b0489456c69106be6b615db7a51b7beb66788bea7a59991a019d924fbf20f67d085a445aedb9a4d6760363f4d7d09930 languageName: node linkType: hard -"ip-address@npm:^9.0.5": - version: 9.0.5 - resolution: "ip-address@npm:9.0.5" +"jest-mock@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-mock@npm:29.7.0" dependencies: - jsbn: 1.1.0 - sprintf-js: ^1.1.3 - checksum: aa15f12cfd0ef5e38349744e3654bae649a34c3b10c77a674a167e99925d1549486c5b14730eebce9fea26f6db9d5e42097b00aa4f9f612e68c79121c71652dc + "@jest/types": ^29.6.3 + "@types/node": "*" + jest-util: ^29.7.0 + checksum: 81ba9b68689a60be1482212878973700347cb72833c5e5af09895882b9eb5c4e02843a1bbdf23f94c52d42708bab53a30c45a3482952c9eec173d1eaac5b86c5 languageName: node linkType: hard -"ipaddr.js@npm:1.9.1": - version: 1.9.1 - resolution: "ipaddr.js@npm:1.9.1" - checksum: f88d3825981486f5a1942414c8d77dd6674dd71c065adcfa46f578d677edcb99fda25af42675cb59db492fdf427b34a5abfcde3982da11a8fd83a500b41cfe77 +"jest-pnp-resolver@npm:^1.2.2": + version: 1.2.3 + resolution: "jest-pnp-resolver@npm:1.2.3" + peerDependencies: + jest-resolve: "*" + peerDependenciesMeta: + jest-resolve: + optional: true + checksum: db1a8ab2cb97ca19c01b1cfa9a9c8c69a143fde833c14df1fab0766f411b1148ff0df878adea09007ac6a2085ec116ba9a996a6ad104b1e58c20adbf88eed9b2 languageName: node linkType: hard -"ipaddr.js@npm:^2.0.1, ipaddr.js@npm:^2.1.0": - version: 2.2.0 - resolution: "ipaddr.js@npm:2.2.0" - checksum: 770ba8451fd9bf78015e8edac0d5abd7a708cbf75f9429ca9147a9d2f3a2d60767cd5de2aab2b1e13ca6e4445bdeff42bf12ef6f151c07a5c6cf8a44328e2859 +"jest-regex-util@npm:^29.6.3": + version: 29.6.3 + resolution: "jest-regex-util@npm:29.6.3" + checksum: 0518beeb9bf1228261695e54f0feaad3606df26a19764bc19541e0fc6e2a3737191904607fb72f3f2ce85d9c16b28df79b7b1ec9443aa08c3ef0e9efda6f8f2a languageName: node linkType: hard -"is-arguments@npm:^1.0.4": - version: 1.1.1 - resolution: "is-arguments@npm:1.1.1" +"jest-resolve-dependencies@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-resolve-dependencies@npm:29.7.0" dependencies: - call-bind: ^1.0.2 - has-tostringtag: ^1.0.0 - checksum: 7f02700ec2171b691ef3e4d0e3e6c0ba408e8434368504bb593d0d7c891c0dbfda6d19d30808b904a6cb1929bca648c061ba438c39f296c2a8ca083229c49f27 + jest-regex-util: ^29.6.3 + jest-snapshot: ^29.7.0 + checksum: aeb75d8150aaae60ca2bb345a0d198f23496494677cd6aefa26fc005faf354061f073982175daaf32b4b9d86b26ca928586344516e3e6969aa614cb13b883984 languageName: node linkType: hard -"is-array-buffer@npm:^3.0.4": - version: 3.0.4 - resolution: "is-array-buffer@npm:3.0.4" +"jest-resolve@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-resolve@npm:29.7.0" dependencies: - call-bind: ^1.0.2 - get-intrinsic: ^1.2.1 - checksum: e4e3e6ef0ff2239e75371d221f74bc3c26a03564a22efb39f6bb02609b598917ddeecef4e8c877df2a25888f247a98198959842a5e73236bc7f22cabdf6351a7 - languageName: node - linkType: hard - -"is-arrayish@npm:^0.2.1": - version: 0.2.1 - resolution: "is-arrayish@npm:0.2.1" - checksum: eef4417e3c10e60e2c810b6084942b3ead455af16c4509959a27e490e7aee87cfb3f38e01bbde92220b528a0ee1a18d52b787e1458ee86174d8c7f0e58cd488f - languageName: node - linkType: hard - -"is-arrayish@npm:^0.3.1": - version: 0.3.2 - resolution: "is-arrayish@npm:0.3.2" - checksum: 977e64f54d91c8f169b59afcd80ff19227e9f5c791fa28fa2e5bce355cbaf6c2c356711b734656e80c9dd4a854dd7efcf7894402f1031dfc5de5d620775b4d5f + chalk: ^4.0.0 + graceful-fs: ^4.2.9 + jest-haste-map: ^29.7.0 + jest-pnp-resolver: ^1.2.2 + jest-util: ^29.7.0 + jest-validate: ^29.7.0 + resolve: ^1.20.0 + resolve.exports: ^2.0.0 + slash: ^3.0.0 + checksum: 0ca218e10731aa17920526ec39deaec59ab9b966237905ffc4545444481112cd422f01581230eceb7e82d86f44a543d520a71391ec66e1b4ef1a578bd5c73487 languageName: node linkType: hard -"is-async-function@npm:^2.0.0": - version: 2.0.0 - resolution: "is-async-function@npm:2.0.0" +"jest-runner@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-runner@npm:29.7.0" dependencies: - has-tostringtag: ^1.0.0 - checksum: e3471d95e6c014bf37cad8a93f2f4b6aac962178e0a5041e8903147166964fdc1c5c1d2ef87e86d77322c370ca18f2ea004fa7420581fa747bcaf7c223069dbd + "@jest/console": ^29.7.0 + "@jest/environment": ^29.7.0 + "@jest/test-result": ^29.7.0 + "@jest/transform": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/node": "*" + chalk: ^4.0.0 + emittery: ^0.13.1 + graceful-fs: ^4.2.9 + jest-docblock: ^29.7.0 + jest-environment-node: ^29.7.0 + jest-haste-map: ^29.7.0 + jest-leak-detector: ^29.7.0 + jest-message-util: ^29.7.0 + jest-resolve: ^29.7.0 + jest-runtime: ^29.7.0 + jest-util: ^29.7.0 + jest-watcher: ^29.7.0 + jest-worker: ^29.7.0 + p-limit: ^3.1.0 + source-map-support: 0.5.13 + checksum: f0405778ea64812bf9b5c50b598850d94ccf95d7ba21f090c64827b41decd680ee19fcbb494007cdd7f5d0d8906bfc9eceddd8fa583e753e736ecd462d4682fb languageName: node linkType: hard -"is-bigint@npm:^1.0.1": - version: 1.0.4 - resolution: "is-bigint@npm:1.0.4" +"jest-runtime@npm:^29.0.2, jest-runtime@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-runtime@npm:29.7.0" dependencies: - has-bigints: ^1.0.1 - checksum: c56edfe09b1154f8668e53ebe8252b6f185ee852a50f9b41e8d921cb2bed425652049fbe438723f6cb48a63ca1aa051e948e7e401e093477c99c84eba244f666 + "@jest/environment": ^29.7.0 + "@jest/fake-timers": ^29.7.0 + "@jest/globals": ^29.7.0 + "@jest/source-map": ^29.6.3 + "@jest/test-result": ^29.7.0 + "@jest/transform": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/node": "*" + chalk: ^4.0.0 + cjs-module-lexer: ^1.0.0 + collect-v8-coverage: ^1.0.0 + glob: ^7.1.3 + graceful-fs: ^4.2.9 + jest-haste-map: ^29.7.0 + jest-message-util: ^29.7.0 + jest-mock: ^29.7.0 + jest-regex-util: ^29.6.3 + jest-resolve: ^29.7.0 + jest-snapshot: ^29.7.0 + jest-util: ^29.7.0 + slash: ^3.0.0 + strip-bom: ^4.0.0 + checksum: d19f113d013e80691e07047f68e1e3448ef024ff2c6b586ce4f90cd7d4c62a2cd1d460110491019719f3c59bfebe16f0e201ed005ef9f80e2cf798c374eed54e languageName: node linkType: hard -"is-binary-path@npm:~2.1.0": - version: 2.1.0 - resolution: "is-binary-path@npm:2.1.0" +"jest-snapshot@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-snapshot@npm:29.7.0" dependencies: - binary-extensions: ^2.0.0 - checksum: 84192eb88cff70d320426f35ecd63c3d6d495da9d805b19bc65b518984b7c0760280e57dbf119b7e9be6b161784a5a673ab2c6abe83abb5198a432232ad5b35c + "@babel/core": ^7.11.6 + "@babel/generator": ^7.7.2 + "@babel/plugin-syntax-jsx": ^7.7.2 + "@babel/plugin-syntax-typescript": ^7.7.2 + "@babel/types": ^7.3.3 + "@jest/expect-utils": ^29.7.0 + "@jest/transform": ^29.7.0 + "@jest/types": ^29.6.3 + babel-preset-current-node-syntax: ^1.0.0 + chalk: ^4.0.0 + expect: ^29.7.0 + graceful-fs: ^4.2.9 + jest-diff: ^29.7.0 + jest-get-type: ^29.6.3 + jest-matcher-utils: ^29.7.0 + jest-message-util: ^29.7.0 + jest-util: ^29.7.0 + natural-compare: ^1.4.0 + pretty-format: ^29.7.0 + semver: ^7.5.3 + checksum: 86821c3ad0b6899521ce75ee1ae7b01b17e6dfeff9166f2cf17f012e0c5d8c798f30f9e4f8f7f5bed01ea7b55a6bc159f5eda778311162cbfa48785447c237ad languageName: node linkType: hard -"is-boolean-object@npm:^1.1.0": - version: 1.1.2 - resolution: "is-boolean-object@npm:1.1.2" +"jest-util@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-util@npm:29.7.0" dependencies: - call-bind: ^1.0.2 - has-tostringtag: ^1.0.0 - checksum: c03b23dbaacadc18940defb12c1c0e3aaece7553ef58b162a0f6bba0c2a7e1551b59f365b91e00d2dbac0522392d576ef322628cb1d036a0fe51eb466db67222 + "@jest/types": ^29.6.3 + "@types/node": "*" + chalk: ^4.0.0 + ci-info: ^3.2.0 + graceful-fs: ^4.2.9 + picomatch: ^2.2.3 + checksum: 042ab4980f4ccd4d50226e01e5c7376a8556b472442ca6091a8f102488c0f22e6e8b89ea874111d2328a2080083bf3225c86f3788c52af0bd0345a00eb57a3ca languageName: node linkType: hard -"is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.7": - version: 1.2.7 - resolution: "is-callable@npm:1.2.7" - checksum: 61fd57d03b0d984e2ed3720fb1c7a897827ea174bd44402878e059542ea8c4aeedee0ea0985998aa5cc2736b2fa6e271c08587addb5b3959ac52cf665173d1ac +"jest-validate@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-validate@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + camelcase: ^6.2.0 + chalk: ^4.0.0 + jest-get-type: ^29.6.3 + leven: ^3.1.0 + pretty-format: ^29.7.0 + checksum: 191fcdc980f8a0de4dbdd879fa276435d00eb157a48683af7b3b1b98b0f7d9de7ffe12689b617779097ff1ed77601b9f7126b0871bba4f776e222c40f62e9dae languageName: node linkType: hard -"is-core-module@npm:^2.13.0, is-core-module@npm:^2.15.1": - version: 2.15.1 - resolution: "is-core-module@npm:2.15.1" +"jest-watcher@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-watcher@npm:29.7.0" dependencies: - hasown: ^2.0.2 - checksum: df134c168115690724b62018c37b2f5bba0d5745fa16960b329c5a00883a8bea6a5632fdb1e3efcce237c201826ba09f93197b7cd95577ea56b0df335be23633 + "@jest/test-result": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/node": "*" + ansi-escapes: ^4.2.1 + chalk: ^4.0.0 + emittery: ^0.13.1 + jest-util: ^29.7.0 + string-length: ^4.0.1 + checksum: 67e6e7fe695416deff96b93a14a561a6db69389a0667e9489f24485bb85e5b54e12f3b2ba511ec0b777eca1e727235b073e3ebcdd473d68888650489f88df92f languageName: node linkType: hard -"is-data-view@npm:^1.0.1": - version: 1.0.1 - resolution: "is-data-view@npm:1.0.1" +"jest-worker@npm:^27.4.5": + version: 27.5.1 + resolution: "jest-worker@npm:27.5.1" dependencies: - is-typed-array: ^1.1.13 - checksum: 4ba4562ac2b2ec005fefe48269d6bd0152785458cd253c746154ffb8a8ab506a29d0cfb3b74af87513843776a88e4981ae25c89457bf640a33748eab1a7216b5 + "@types/node": "*" + merge-stream: ^2.0.0 + supports-color: ^8.0.0 + checksum: 98cd68b696781caed61c983a3ee30bf880b5bd021c01d98f47b143d4362b85d0737f8523761e2713d45e18b4f9a2b98af1eaee77afade4111bb65c77d6f7c980 languageName: node linkType: hard -"is-date-object@npm:^1.0.1, is-date-object@npm:^1.0.5": - version: 1.0.5 - resolution: "is-date-object@npm:1.0.5" +"jest-worker@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-worker@npm:29.7.0" dependencies: - has-tostringtag: ^1.0.0 - checksum: baa9077cdf15eb7b58c79398604ca57379b2fc4cf9aa7a9b9e295278648f628c9b201400c01c5e0f7afae56507d741185730307cbe7cad3b9f90a77e5ee342fc + "@types/node": "*" + jest-util: ^29.7.0 + merge-stream: ^2.0.0 + supports-color: ^8.0.0 + checksum: 30fff60af49675273644d408b650fc2eb4b5dcafc5a0a455f238322a8f9d8a98d847baca9d51ff197b6747f54c7901daa2287799230b856a0f48287d131f8c13 languageName: node linkType: hard -"is-directory@npm:^0.3.1": - version: 0.3.1 - resolution: "is-directory@npm:0.3.1" - checksum: dce9a9d3981e38f2ded2a80848734824c50ee8680cd09aa477bef617949715cfc987197a2ca0176c58a9fb192a1a0d69b535c397140d241996a609d5906ae524 +"jest@npm:^29.7.0": + version: 29.7.0 + resolution: "jest@npm:29.7.0" + dependencies: + "@jest/core": ^29.7.0 + "@jest/types": ^29.6.3 + import-local: ^3.0.2 + jest-cli: ^29.7.0 + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + bin: + jest: bin/jest.js + checksum: 17ca8d67504a7dbb1998cf3c3077ec9031ba3eb512da8d71cb91bcabb2b8995c4e4b292b740cb9bf1cbff5ce3e110b3f7c777b0cefb6f41ab05445f248d0ee0b languageName: node linkType: hard -"is-docker@npm:^2.0.0, is-docker@npm:^2.1.1": - version: 2.2.1 - resolution: "is-docker@npm:2.2.1" +"jiti@npm:^2.0.0, jiti@npm:^2.4.0": + version: 2.4.2 + resolution: "jiti@npm:2.4.2" bin: - is-docker: cli.js - checksum: 3fef7ddbf0be25958e8991ad941901bf5922ab2753c46980b60b05c1bf9c9c2402d35e6dc32e4380b980ef5e1970a5d9d5e5aa2e02d77727c3b6b5e918474c56 + jiti: lib/jiti-cli.mjs + checksum: c6c30c7b6b293e9f26addfb332b63d964a9f143cdd2cf5e946dbe5143db89f7c1b50ad9223b77fb1f6ddb0b9c5ecef995fea024ecf7d2861d285d779cde66e1e languageName: node linkType: hard -"is-docker@npm:^3.0.0": - version: 3.0.0 - resolution: "is-docker@npm:3.0.0" - bin: - is-docker: cli.js - checksum: b698118f04feb7eaf3338922bd79cba064ea54a1c3db6ec8c0c8d8ee7613e7e5854d802d3ef646812a8a3ace81182a085dfa0a71cc68b06f3fa794b9783b3c90 +"jju@npm:~1.4.0": + version: 1.4.0 + resolution: "jju@npm:1.4.0" + checksum: 3790481bd2b7827dd6336e6e3dc2dcc6d425679ba7ebde7b679f61dceb4457ea0cda330972494de608571f4973c6dfb5f70fab6f3c5037dbab19ac449a60424f languageName: node linkType: hard -"is-extglob@npm:^2.1.1": - version: 2.1.1 - resolution: "is-extglob@npm:2.1.1" - checksum: df033653d06d0eb567461e58a7a8c9f940bd8c22274b94bf7671ab36df5719791aae15eef6d83bbb5e23283967f2f984b8914559d4449efda578c775c4be6f85 +"jmespath@npm:^0.15.0": + version: 0.15.0 + resolution: "jmespath@npm:0.15.0" + checksum: 353bb9e69cc4c1560be0a4df43cb4020abc246e1c60cb5b55dcc76d8c858383f1633faf22ccaf6a5e09568a2077d0f4f1e989e6fcfd496b5cef87964cc8cb9e7 languageName: node linkType: hard -"is-finalizationregistry@npm:^1.0.2": - version: 1.0.2 - resolution: "is-finalizationregistry@npm:1.0.2" +"joi@npm:^17.13.3": + version: 17.13.3 + resolution: "joi@npm:17.13.3" dependencies: - call-bind: ^1.0.2 - checksum: 4f243a8e06228cd45bdab8608d2cb7abfc20f6f0189c8ac21ea8d603f1f196eabd531ce0bb8e08cbab047e9845ef2c191a3761c9a17ad5cabf8b35499c4ad35d + "@hapi/hoek": ^9.3.0 + "@hapi/topo": ^5.1.0 + "@sideway/address": ^4.1.5 + "@sideway/formula": ^3.0.1 + "@sideway/pinpoint": ^2.0.0 + checksum: 66ed454fee3d8e8da1ce21657fd2c7d565d98f3e539d2c5c028767e5f38cbd6297ce54df8312d1d094e62eb38f9452ebb43da4ce87321df66cf5e3f128cbc400 languageName: node linkType: hard -"is-fullwidth-code-point@npm:^3.0.0": - version: 3.0.0 - resolution: "is-fullwidth-code-point@npm:3.0.0" - checksum: 44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348 +"jose@npm:^4.15.9": + version: 4.15.9 + resolution: "jose@npm:4.15.9" + checksum: 41abe1c99baa3cf8a78ebbf93da8f8e50e417b7a26754c4afa21865d87527b8ac2baf66de2c5f6accc3f7d7158658dae7364043677236ea1d07895b040097f15 languageName: node linkType: hard -"is-generator-fn@npm:^2.0.0": - version: 2.1.0 - resolution: "is-generator-fn@npm:2.1.0" - checksum: a6ad5492cf9d1746f73b6744e0c43c0020510b59d56ddcb78a91cbc173f09b5e6beff53d75c9c5a29feb618bfef2bf458e025ecf3a57ad2268e2fb2569f56215 +"jose@npm:^5.0.0": + version: 5.9.6 + resolution: "jose@npm:5.9.6" + checksum: 4b536da0201858ed4c4582e8bb479081f11e0c63dd0f5e473adde16fc539785e1f2f0409bc1fc7cbbb5b68026776c960b4952da3a06f6fdfff0b9764c9127ae0 languageName: node linkType: hard -"is-generator-function@npm:^1.0.10, is-generator-function@npm:^1.0.7": - version: 1.0.10 - resolution: "is-generator-function@npm:1.0.10" - dependencies: - has-tostringtag: ^1.0.0 - checksum: d54644e7dbaccef15ceb1e5d91d680eb5068c9ee9f9eb0a9e04173eb5542c9b51b5ab52c5537f5703e48d5fddfd376817c1ca07a84a407b7115b769d4bdde72b +"js-base64@npm:^3.6.0": + version: 3.7.7 + resolution: "js-base64@npm:3.7.7" + checksum: d1b02971db9dc0fd35baecfaf6ba499731fb44fe3373e7e1d6681fbd3ba665f29e8d9d17910254ef8104e2cb8b44117fe4202d3dc54c7cafe9ba300fe5433358 languageName: node linkType: hard -"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": - version: 4.0.3 - resolution: "is-glob@npm:4.0.3" - dependencies: - is-extglob: ^2.1.1 - checksum: d381c1319fcb69d341cc6e6c7cd588e17cd94722d9a32dbd60660b993c4fb7d0f19438674e68dfec686d09b7c73139c9166b47597f846af387450224a8101ab4 +"js-cookie@npm:^2.2.1": + version: 2.2.1 + resolution: "js-cookie@npm:2.2.1" + checksum: 9b1fb980a1c5e624fd4b28ea4867bb30c71e04c4484bb3a42766344c533faa684de9498e443425479ec68609e96e27b60614bfe354877c449c631529b6d932f2 languageName: node linkType: hard -"is-inside-container@npm:^1.0.0": - version: 1.0.0 - resolution: "is-inside-container@npm:1.0.0" - dependencies: - is-docker: ^3.0.0 - bin: - is-inside-container: cli.js - checksum: c50b75a2ab66ab3e8b92b3bc534e1ea72ca25766832c0623ac22d134116a98bcf012197d1caabe1d1c4bd5f84363d4aa5c36bb4b585fbcaf57be172cd10a1a03 +"js-file-download@npm:^0.4.12": + version: 0.4.12 + resolution: "js-file-download@npm:0.4.12" + checksum: a03847eef0184fbf34a7b7fd365ea6aa1a6cc142efeac52c4baa0cdde845dc93718eb66808dfcffd6c91b37ddc9d058d352ac9698b4280744bad3587240c93b6 languageName: node linkType: hard -"is-interactive@npm:^1.0.0": - version: 1.0.0 - resolution: "is-interactive@npm:1.0.0" - checksum: 824808776e2d468b2916cdd6c16acacebce060d844c35ca6d82267da692e92c3a16fdba624c50b54a63f38bdc4016055b6f443ce57d7147240de4f8cdabaf6f9 +"js-levenshtein@npm:^1.1.6": + version: 1.1.6 + resolution: "js-levenshtein@npm:1.1.6" + checksum: 409f052a7f1141be4058d97da7860e08efd97fc588b7a4c5cfa0548bc04f6d576644dae65ab630266dff685d56fb90d494e03d4d79cb484c287746b4f1bf0694 languageName: node linkType: hard -"is-lambda@npm:^1.0.1": - version: 1.0.1 - resolution: "is-lambda@npm:1.0.1" - checksum: 93a32f01940220532e5948538699ad610d5924ac86093fcee83022252b363eb0cc99ba53ab084a04e4fb62bf7b5731f55496257a4c38adf87af9c4d352c71c35 +"js-md4@npm:^0.3.2": + version: 0.3.2 + resolution: "js-md4@npm:0.3.2" + checksum: aa7b7cbd738b105f86fc0fa50ce2a7a6b6b329ff3f713d1bd38b12c2a72929bab5a16e658a03830faa8d656356aa89b4f77f1fbf05ffa8d095bda6d831441c2d languageName: node linkType: hard -"is-map@npm:^2.0.3": - version: 2.0.3 - resolution: "is-map@npm:2.0.3" - checksum: e6ce5f6380f32b141b3153e6ba9074892bbbbd655e92e7ba5ff195239777e767a976dcd4e22f864accaf30e53ebf961ab1995424aef91af68788f0591b7396cc +"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": + version: 4.0.0 + resolution: "js-tokens@npm:4.0.0" + checksum: 8a95213a5a77deb6cbe94d86340e8d9ace2b93bc367790b260101d2f36a2eaf4e4e22d9fa9cf459b38af3a32fb4190e638024cf82ec95ef708680e405ea7cc78 languageName: node linkType: hard -"is-module@npm:^1.0.0": - version: 1.0.0 - resolution: "is-module@npm:1.0.0" - checksum: 8cd5390730c7976fb4e8546dd0b38865ee6f7bacfa08dfbb2cc07219606755f0b01709d9361e01f13009bbbd8099fa2927a8ed665118a6105d66e40f1b838c3f +"js-yaml@npm:=4.1.0, js-yaml@npm:^4.0.0, js-yaml@npm:^4.1.0": + version: 4.1.0 + resolution: "js-yaml@npm:4.1.0" + dependencies: + argparse: ^2.0.1 + bin: + js-yaml: bin/js-yaml.js + checksum: c7830dfd456c3ef2c6e355cc5a92e6700ceafa1d14bba54497b34a99f0376cecbb3e9ac14d3e5849b426d5a5140709a66237a8c991c675431271c4ce5504151a languageName: node linkType: hard -"is-native-module@npm:^1.1.3": - version: 1.1.3 - resolution: "is-native-module@npm:1.1.3" +"js-yaml@npm:^3.10.0, js-yaml@npm:^3.13.1, js-yaml@npm:^3.6.1, js-yaml@npm:^3.8.3": + version: 3.14.1 + resolution: "js-yaml@npm:3.14.1" + dependencies: + argparse: ^1.0.7 + esprima: ^4.0.0 bin: - is-native-module: bin.js - checksum: cd118b670247bd1dbb45c35ad35c2f702b80071d0331565f975d61efd71b2a028cc4fb764c99b5883d508fcc172099e466373ffbd12a3b9880b1b5ba7e62c907 + js-yaml: bin/js-yaml.js + checksum: bef146085f472d44dee30ec34e5cf36bf89164f5d585435a3d3da89e52622dff0b188a580e4ad091c3341889e14cb88cac6e4deb16dc5b1e9623bb0601fc255c languageName: node linkType: hard -"is-negative-zero@npm:^2.0.3": - version: 2.0.3 - resolution: "is-negative-zero@npm:2.0.3" - checksum: c1e6b23d2070c0539d7b36022d5a94407132411d01aba39ec549af824231f3804b1aea90b5e4e58e807a65d23ceb538ed6e355ce76b267bdd86edb757ffcbdcd +"js-yaml@npm:~3.13.1": + version: 3.13.1 + resolution: "js-yaml@npm:3.13.1" + dependencies: + argparse: ^1.0.7 + esprima: ^4.0.0 + bin: + js-yaml: bin/js-yaml.js + checksum: 7511b764abb66d8aa963379f7d2a404f078457d106552d05a7b556d204f7932384e8477513c124749fa2de52eb328961834562bd09924902c6432e40daa408bc languageName: node linkType: hard -"is-network-error@npm:^1.0.0": +"jsbn@npm:1.1.0": version: 1.1.0 - resolution: "is-network-error@npm:1.1.0" - checksum: b2fe6aac07f814a9de275efd05934c832c129e7ba292d27614e9e8eec9e043b7a0bbeaeca5d0916b0f462edbec2aa2eaee974ee0a12ac095040e9515c222c251 + resolution: "jsbn@npm:1.1.0" + checksum: 944f924f2bd67ad533b3850eee47603eed0f6ae425fd1ee8c760f477e8c34a05f144c1bd4f5a5dd1963141dc79a2c55f89ccc5ab77d039e7077f3ad196b64965 languageName: node linkType: hard -"is-node-process@npm:^1.2.0": - version: 1.2.0 - resolution: "is-node-process@npm:1.2.0" - checksum: 930765cdc6d81ab8f1bbecbea4a8d35c7c6d88a3ff61f3630e0fc7f22d624d7661c1df05c58547d0eb6a639dfa9304682c8e342c4113a6ed51472b704cee2928 +"jsbn@npm:~0.1.0": + version: 0.1.1 + resolution: "jsbn@npm:0.1.1" + checksum: e5ff29c1b8d965017ef3f9c219dacd6e40ad355c664e277d31246c90545a02e6047018c16c60a00f36d561b3647215c41894f5d869ada6908a2e0ce4200c88f2 languageName: node linkType: hard -"is-number-object@npm:^1.0.4": - version: 1.0.7 - resolution: "is-number-object@npm:1.0.7" +"jsdom@npm:^16.5.2": + version: 16.7.0 + resolution: "jsdom@npm:16.7.0" dependencies: - has-tostringtag: ^1.0.0 - checksum: d1e8d01bb0a7134c74649c4e62da0c6118a0bfc6771ea3c560914d52a627873e6920dd0fd0ebc0e12ad2ff4687eac4c308f7e80320b973b2c8a2c8f97a7524f7 - languageName: node - linkType: hard - -"is-number@npm:^7.0.0": - version: 7.0.0 - resolution: "is-number@npm:7.0.0" - checksum: 456ac6f8e0f3111ed34668a624e45315201dff921e5ac181f8ec24923b99e9f32ca1a194912dc79d539c97d33dba17dc635202ff0b2cf98326f608323276d27a - languageName: node - linkType: hard - -"is-path-inside@npm:^3.0.3": - version: 3.0.3 - resolution: "is-path-inside@npm:3.0.3" - checksum: abd50f06186a052b349c15e55b182326f1936c89a78bf6c8f2b707412517c097ce04bc49a0ca221787bc44e1049f51f09a2ffb63d22899051988d3a618ba13e9 - languageName: node - linkType: hard - -"is-plain-obj@npm:^3.0.0": - version: 3.0.0 - resolution: "is-plain-obj@npm:3.0.0" - checksum: a6ebdf8e12ab73f33530641972a72a4b8aed6df04f762070d823808303e4f76d87d5ea5bd76f96a7bbe83d93f04ac7764429c29413bd9049853a69cb630fb21c + abab: ^2.0.5 + acorn: ^8.2.4 + acorn-globals: ^6.0.0 + cssom: ^0.4.4 + cssstyle: ^2.3.0 + data-urls: ^2.0.0 + decimal.js: ^10.2.1 + domexception: ^2.0.1 + escodegen: ^2.0.0 + form-data: ^3.0.0 + html-encoding-sniffer: ^2.0.1 + http-proxy-agent: ^4.0.1 + https-proxy-agent: ^5.0.0 + is-potential-custom-element-name: ^1.0.1 + nwsapi: ^2.2.0 + parse5: 6.0.1 + saxes: ^5.0.1 + symbol-tree: ^3.2.4 + tough-cookie: ^4.0.0 + w3c-hr-time: ^1.0.2 + w3c-xmlserializer: ^2.0.0 + webidl-conversions: ^6.1.0 + whatwg-encoding: ^1.0.5 + whatwg-mimetype: ^2.3.0 + whatwg-url: ^8.5.0 + ws: ^7.4.6 + xml-name-validator: ^3.0.0 + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + checksum: 454b83371857000763ed31130a049acd1b113e3b927e6dcd75c67ddc30cdd242d7ebcac5c2294b7a1a6428155cb1398709c573b3c6d809218692ea68edd93370 languageName: node linkType: hard -"is-plain-object@npm:^5.0.0": - version: 5.0.0 - resolution: "is-plain-object@npm:5.0.0" - checksum: e32d27061eef62c0847d303125440a38660517e586f2f3db7c9d179ae5b6674ab0f469d519b2e25c147a1a3bc87156d0d5f4d8821e0ce4a9ee7fe1fcf11ce45c +"jsdom@npm:^20.0.0": + version: 20.0.3 + resolution: "jsdom@npm:20.0.3" + dependencies: + abab: ^2.0.6 + acorn: ^8.8.1 + acorn-globals: ^7.0.0 + cssom: ^0.5.0 + cssstyle: ^2.3.0 + data-urls: ^3.0.2 + decimal.js: ^10.4.2 + domexception: ^4.0.0 + escodegen: ^2.0.0 + form-data: ^4.0.0 + html-encoding-sniffer: ^3.0.0 + http-proxy-agent: ^5.0.0 + https-proxy-agent: ^5.0.1 + is-potential-custom-element-name: ^1.0.1 + nwsapi: ^2.2.2 + parse5: ^7.1.1 + saxes: ^6.0.0 + symbol-tree: ^3.2.4 + tough-cookie: ^4.1.2 + w3c-xmlserializer: ^4.0.0 + webidl-conversions: ^7.0.0 + whatwg-encoding: ^2.0.0 + whatwg-mimetype: ^3.0.0 + whatwg-url: ^11.0.0 + ws: ^8.11.0 + xml-name-validator: ^4.0.0 + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + checksum: 6e2ae21db397133a061b270c26d2dbc0b9051733ea3b896a7ece78d79f475ff0974f766a413c1198a79c793159119169f2335ddb23150348fbfdcfa6f3105536 languageName: node linkType: hard -"is-potential-custom-element-name@npm:^1.0.1": - version: 1.0.1 - resolution: "is-potential-custom-element-name@npm:1.0.1" - checksum: ced7bbbb6433a5b684af581872afe0e1767e2d1146b2207ca0068a648fb5cab9d898495d1ac0583524faaf24ca98176a7d9876363097c2d14fee6dd324f3a1ab +"jsep@npm:^1.2.0, jsep@npm:^1.3.6, jsep@npm:^1.4.0": + version: 1.4.0 + resolution: "jsep@npm:1.4.0" + checksum: 8e7af5ecb91483b227092b87a3e85b5df3e848dbe6f201b19efcb18047567530d21dfeecb0978e09d1f66554fcfaed84176819eeacdfc86f61dc05c40c18f824 languageName: node linkType: hard -"is-promise@npm:^4.0.0": - version: 4.0.0 - resolution: "is-promise@npm:4.0.0" - checksum: 0b46517ad47b00b6358fd6553c83ec1f6ba9acd7ffb3d30a0bf519c5c69e7147c132430452351b8a9fc198f8dd6c4f76f8e6f5a7f100f8c77d57d9e0f4261a8a +"jsesc@npm:^3.0.2": + version: 3.1.0 + resolution: "jsesc@npm:3.1.0" + bin: + jsesc: bin/jsesc + checksum: 19c94095ea026725540c0d29da33ab03144f6bcf2d4159e4833d534976e99e0c09c38cefa9a575279a51fc36b31166f8d6d05c9fe2645d5f15851d690b41f17f languageName: node linkType: hard -"is-property@npm:^1.0.2": - version: 1.0.2 - resolution: "is-property@npm:1.0.2" - checksum: 33b661a3690bcc88f7e47bb0a21b9e3187e76a317541ea7ec5e8096d954f441b77a46d8930c785f7fbf4ef8dfd624c25495221e026e50f74c9048fe501773be5 +"jsesc@npm:~3.0.2": + version: 3.0.2 + resolution: "jsesc@npm:3.0.2" + bin: + jsesc: bin/jsesc + checksum: a36d3ca40574a974d9c2063bf68c2b6141c20da8f2a36bd3279fc802563f35f0527a6c828801295bdfb2803952cf2cf387786c2c90ed564f88d5782475abfe3c languageName: node linkType: hard -"is-reference@npm:1.2.1": - version: 1.2.1 - resolution: "is-reference@npm:1.2.1" - dependencies: - "@types/estree": "*" - checksum: e7b48149f8abda2c10849ea51965904d6a714193d68942ad74e30522231045acf06cbfae5a4be2702fede5d232e61bf50b3183acdc056e6e3afe07fcf4f4b2bc +"json-beautify@npm:1.1.1": + version: 1.1.1 + resolution: "json-beautify@npm:1.1.1" + bin: + json-beautify: ./bin/json-beautify + checksum: 4d81bae69b310f789a16690097c7d303207b09e897a46e91dcf2beea1acffe05275248c099b88268e0a0a32ccf3dd12b529974cddc908844c081166117a93cad languageName: node linkType: hard -"is-regex@npm:^1.1.4": - version: 1.1.4 - resolution: "is-regex@npm:1.1.4" +"json-bigint@npm:^1.0.0": + version: 1.0.0 + resolution: "json-bigint@npm:1.0.0" dependencies: - call-bind: ^1.0.2 - has-tostringtag: ^1.0.0 - checksum: 362399b33535bc8f386d96c45c9feb04cf7f8b41c182f54174c1a45c9abbbe5e31290bbad09a458583ff6bf3b2048672cdb1881b13289569a7c548370856a652 + bignumber.js: ^9.0.0 + checksum: c67bb93ccb3c291e60eb4b62931403e378906aab113ec1c2a8dd0f9a7f065ad6fd9713d627b732abefae2e244ac9ce1721c7a3142b2979532f12b258634ce6f6 languageName: node linkType: hard -"is-root@npm:^2.1.0": - version: 2.1.0 - resolution: "is-root@npm:2.1.0" - checksum: 37eea0822a2a9123feb58a9d101558ba276771a6d830f87005683349a9acff15958a9ca590a44e778c6b335660b83e85c744789080d734f6081a935a4880aee2 +"json-buffer@npm:3.0.1, json-buffer@npm:^3.0.1": + version: 3.0.1 + resolution: "json-buffer@npm:3.0.1" + checksum: 9026b03edc2847eefa2e37646c579300a1f3a4586cfb62bf857832b60c852042d0d6ae55d1afb8926163fa54c2b01d83ae24705f34990348bdac6273a29d4581 languageName: node linkType: hard -"is-set@npm:^2.0.3": - version: 2.0.3 - resolution: "is-set@npm:2.0.3" - checksum: 36e3f8c44bdbe9496c9689762cc4110f6a6a12b767c5d74c0398176aa2678d4467e3bf07595556f2dba897751bde1422480212b97d973c7b08a343100b0c0dfe +"json-parse-even-better-errors@npm:^2.3.0, json-parse-even-better-errors@npm:^2.3.1": + version: 2.3.1 + resolution: "json-parse-even-better-errors@npm:2.3.1" + checksum: 798ed4cf3354a2d9ccd78e86d2169515a0097a5c133337807cdf7f1fc32e1391d207ccfc276518cc1d7d8d4db93288b8a50ba4293d212ad1336e52a8ec0a941f languageName: node linkType: hard -"is-shared-array-buffer@npm:^1.0.2, is-shared-array-buffer@npm:^1.0.3": - version: 1.0.3 - resolution: "is-shared-array-buffer@npm:1.0.3" +"json-pointer@npm:0.6.2": + version: 0.6.2 + resolution: "json-pointer@npm:0.6.2" dependencies: - call-bind: ^1.0.7 - checksum: a4fff602c309e64ccaa83b859255a43bb011145a42d3f56f67d9268b55bc7e6d98a5981a1d834186ad3105d6739d21547083fe7259c76c0468483fc538e716d8 + foreach: ^2.0.4 + checksum: 668143014b16d7f90e6f0e6c2d756b00b799424f58d750794a79a24cbce595855b224f7861986aaff719579558fbab81fb83c7371f5e24aded9dc33b3838de30 languageName: node linkType: hard -"is-ssh@npm:^1.4.0": - version: 1.4.0 - resolution: "is-ssh@npm:1.4.0" +"json-schema-compare@npm:^0.2.2": + version: 0.2.2 + resolution: "json-schema-compare@npm:0.2.2" dependencies: - protocols: ^2.0.1 - checksum: 75eaa17b538bee24b661fbeb0f140226ac77e904a6039f787bea418431e2162f1f9c4c4ccad3bd169e036cd701cc631406e8c505d9fa7e20164e74b47f86f40f - languageName: node - linkType: hard - -"is-stream@npm:^2.0.0, is-stream@npm:^2.0.1": - version: 2.0.1 - resolution: "is-stream@npm:2.0.1" - checksum: b8e05ccdf96ac330ea83c12450304d4a591f9958c11fd17bed240af8d5ffe08aedafa4c0f4cfccd4d28dc9d4d129daca1023633d5c11601a6cbc77521f6fae66 + lodash: ^4.17.4 + checksum: dd6f2173857c8e3b77d6ebdfa05bd505bba5b08709ab46b532722f5d1c33b5fee1fc8f3c97d0c0d011db25f9f3b0baf7ab783bb5f55c32abd9f1201760e43c2c languageName: node linkType: hard -"is-string@npm:^1.0.5, is-string@npm:^1.0.7": - version: 1.0.7 - resolution: "is-string@npm:1.0.7" +"json-schema-library@npm:^9.0.0": + version: 9.3.5 + resolution: "json-schema-library@npm:9.3.5" dependencies: - has-tostringtag: ^1.0.0 - checksum: 323b3d04622f78d45077cf89aab783b2f49d24dc641aa89b5ad1a72114cfeff2585efc8c12ef42466dff32bde93d839ad321b26884cf75e5a7892a938b089989 + "@sagold/json-pointer": ^5.1.2 + "@sagold/json-query": ^6.1.3 + deepmerge: ^4.3.1 + fast-copy: ^3.0.2 + fast-deep-equal: ^3.1.3 + smtp-address-parser: 1.0.10 + valid-url: ^1.0.9 + checksum: 8c8a8c993f998a3485d5675781a0330f4e5abc43781f1fa03b709dd5a5157fb2a524c704966f8c4fc31873c5816d4a07058214873b78b1d54f8b4a0cf6737bcf languageName: node linkType: hard -"is-subdir@npm:^1.1.1": - version: 1.2.0 - resolution: "is-subdir@npm:1.2.0" +"json-schema-merge-allof@npm:^0.8.1": + version: 0.8.1 + resolution: "json-schema-merge-allof@npm:0.8.1" dependencies: - better-path-resolve: 1.0.0 - checksum: 31029a383972bff4cc4f1bd1463fd04dde017e0a04ae3a6f6e08124a90c6c4656312d593101b0f38805fa3f3c8f6bc4583524bbf72c50784fa5ca0d3e5a76279 + compute-lcm: ^1.1.2 + json-schema-compare: ^0.2.2 + lodash: ^4.17.20 + checksum: 82700f6ac77351959138d6b153d77375a8c29cf48d907241b85c8292dd77aabd8cb816400f2b0d17062c4ccc8893832ec4f664ab9c814927ef502e7a595ea873 languageName: node linkType: hard -"is-symbol@npm:^1.0.2, is-symbol@npm:^1.0.3": - version: 1.0.4 - resolution: "is-symbol@npm:1.0.4" +"json-schema-to-ts@npm:^3.0.0": + version: 3.1.1 + resolution: "json-schema-to-ts@npm:3.1.1" dependencies: - has-symbols: ^1.0.2 - checksum: 92805812ef590738d9de49d677cd17dfd486794773fb6fa0032d16452af46e9b91bb43ffe82c983570f015b37136f4b53b28b8523bfb10b0ece7a66c31a54510 + "@babel/runtime": ^7.18.3 + ts-algebra: ^2.0.0 + checksum: b616f1c2d7492502e11eec4f8e4539ee1e897543a679d929494afdc164d9557275cead8372747b73f239b1e68056ffbf551b03ae82d0047bba0dfe2bbd6b64f4 languageName: node linkType: hard -"is-typed-array@npm:^1.1.13, is-typed-array@npm:^1.1.3": - version: 1.1.13 - resolution: "is-typed-array@npm:1.1.13" - dependencies: - which-typed-array: ^1.1.14 - checksum: 150f9ada183a61554c91e1c4290086d2c100b0dff45f60b028519be72a8db964da403c48760723bf5253979b8dffe7b544246e0e5351dcd05c5fdb1dcc1dc0f0 +"json-schema-traverse@npm:^0.4.1": + version: 0.4.1 + resolution: "json-schema-traverse@npm:0.4.1" + checksum: 7486074d3ba247769fda17d5181b345c9fb7d12e0da98b22d1d71a5db9698d8b4bd900a3ec1a4ffdd60846fc2556274a5c894d0c48795f14cb03aeae7b55260b languageName: node linkType: hard -"is-typedarray@npm:~1.0.0": +"json-schema-traverse@npm:^1.0.0": version: 1.0.0 - resolution: "is-typedarray@npm:1.0.0" - checksum: 3508c6cd0a9ee2e0df2fa2e9baabcdc89e911c7bd5cf64604586697212feec525aa21050e48affb5ffc3df20f0f5d2e2cf79b08caa64e1ccc9578e251763aef7 - languageName: node - linkType: hard - -"is-unicode-supported@npm:^0.1.0": - version: 0.1.0 - resolution: "is-unicode-supported@npm:0.1.0" - checksum: a2aab86ee7712f5c2f999180daaba5f361bdad1efadc9610ff5b8ab5495b86e4f627839d085c6530363c6d6d4ecbde340fb8e54bdb83da4ba8e0865ed5513c52 + resolution: "json-schema-traverse@npm:1.0.0" + checksum: 02f2f466cdb0362558b2f1fd5e15cce82ef55d60cd7f8fa828cf35ba74330f8d767fcae5c5c2adb7851fa811766c694b9405810879bc4e1ddd78a7c0e03658ad languageName: node linkType: hard -"is-url@npm:^1.2.4": - version: 1.2.4 - resolution: "is-url@npm:1.2.4" - checksum: 100e74b3b1feab87a43ef7653736e88d997eb7bd32e71fd3ebc413e58c1cbe56269699c776aaea84244b0567f2a7d68dfaa512a062293ed2f9fdecb394148432 +"json-schema@npm:0.4.0, json-schema@npm:^0.4.0": + version: 0.4.0 + resolution: "json-schema@npm:0.4.0" + checksum: 66389434c3469e698da0df2e7ac5a3281bcff75e797a5c127db7c5b56270e01ae13d9afa3c03344f76e32e81678337a8c912bdbb75101c62e487dc3778461d72 languageName: node linkType: hard -"is-weakmap@npm:^2.0.2": - version: 2.0.2 - resolution: "is-weakmap@npm:2.0.2" - checksum: f36aef758b46990e0d3c37269619c0a08c5b29428c0bb11ecba7f75203442d6c7801239c2f31314bc79199217ef08263787f3837d9e22610ad1da62970d6616d +"json-stable-stringify-without-jsonify@npm:^1.0.1": + version: 1.0.1 + resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" + checksum: cff44156ddce9c67c44386ad5cddf91925fe06b1d217f2da9c4910d01f358c6e3989c4d5a02683c7a5667f9727ff05831f7aa8ae66c8ff691c556f0884d49215 languageName: node linkType: hard -"is-weakref@npm:^1.0.2": - version: 1.0.2 - resolution: "is-weakref@npm:1.0.2" +"json-stable-stringify@npm:^1.0.1": + version: 1.2.0 + resolution: "json-stable-stringify@npm:1.2.0" dependencies: - call-bind: ^1.0.2 - checksum: 95bd9a57cdcb58c63b1c401c60a474b0f45b94719c30f548c891860f051bc2231575c290a6b420c6bc6e7ed99459d424c652bd5bf9a1d5259505dc35b4bf83de + call-bind: ^1.0.8 + call-bound: ^1.0.3 + isarray: ^2.0.5 + jsonify: ^0.0.1 + object-keys: ^1.1.1 + checksum: bfa2b28475734f584e3880158658eb621fc1ac528a4773bd2c6c4c3131b587bd6bd731e9e590f6c34b65fb15fe3dc13115e87ed566f6f71754199bd235448a9b languageName: node linkType: hard -"is-weakset@npm:^2.0.3": - version: 2.0.3 - resolution: "is-weakset@npm:2.0.3" - dependencies: - call-bind: ^1.0.7 - get-intrinsic: ^1.2.4 - checksum: 8b6a20ee9f844613ff8f10962cfee49d981d584525f2357fee0a04dfbcde9fd607ed60cb6dab626dbcc470018ae6392e1ff74c0c1aced2d487271411ad9d85ae +"json-stringify-safe@npm:^5.0.1, json-stringify-safe@npm:~5.0.1": + version: 5.0.1 + resolution: "json-stringify-safe@npm:5.0.1" + checksum: 48ec0adad5280b8a96bb93f4563aa1667fd7a36334f79149abd42446d0989f2ddc58274b479f4819f1f00617957e6344c886c55d05a4e15ebb4ab931e4a6a8ee languageName: node linkType: hard -"is-windows@npm:^1.0.0, is-windows@npm:^1.0.1": +"json5@npm:^1.0.1, json5@npm:^1.0.2": version: 1.0.2 - resolution: "is-windows@npm:1.0.2" - checksum: 438b7e52656fe3b9b293b180defb4e448088e7023a523ec21a91a80b9ff8cdb3377ddb5b6e60f7c7de4fa8b63ab56e121b6705fe081b3cf1b828b0a380009ad7 - languageName: node - linkType: hard - -"is-wsl@npm:^2.2.0": - version: 2.2.0 - resolution: "is-wsl@npm:2.2.0" - dependencies: - is-docker: ^2.0.0 - checksum: 20849846ae414997d290b75e16868e5261e86ff5047f104027026fd61d8b5a9b0b3ade16239f35e1a067b3c7cc02f70183cb661010ed16f4b6c7c93dad1b19d8 - languageName: node - linkType: hard - -"is-wsl@npm:^3.1.0": - version: 3.1.0 - resolution: "is-wsl@npm:3.1.0" + resolution: "json5@npm:1.0.2" dependencies: - is-inside-container: ^1.0.0 - checksum: f9734c81f2f9cf9877c5db8356bfe1ff61680f1f4c1011e91278a9c0564b395ae796addb4bf33956871041476ec82c3e5260ed57b22ac91794d4ae70a1d2f0a9 - languageName: node - linkType: hard - -"isarray@npm:^1.0.0, isarray@npm:~1.0.0": - version: 1.0.0 - resolution: "isarray@npm:1.0.0" - checksum: f032df8e02dce8ec565cf2eb605ea939bdccea528dbcf565cdf92bfa2da9110461159d86a537388ef1acef8815a330642d7885b29010e8f7eac967c9993b65ab + minimist: ^1.2.0 + bin: + json5: lib/cli.js + checksum: 866458a8c58a95a49bef3adba929c625e82532bcff1fe93f01d29cb02cac7c3fe1f4b79951b7792c2da9de0b32871a8401a6e3c5b36778ad852bf5b8a61165d7 languageName: node linkType: hard -"isarray@npm:^2.0.5": - version: 2.0.5 - resolution: "isarray@npm:2.0.5" - checksum: bd5bbe4104438c4196ba58a54650116007fa0262eccef13a4c55b2e09a5b36b59f1e75b9fcc49883dd9d4953892e6fc007eef9e9155648ceea036e184b0f930a +"json5@npm:^2.1.2, json5@npm:^2.1.3, json5@npm:^2.2.3": + version: 2.2.3 + resolution: "json5@npm:2.2.3" + bin: + json5: lib/cli.js + checksum: 2a7436a93393830bce797d4626275152e37e877b265e94ca69c99e3d20c2b9dab021279146a39cdb700e71b2dd32a4cebd1514cd57cee102b1af906ce5040349 languageName: node linkType: hard -"isexe@npm:^2.0.0": - version: 2.0.0 - resolution: "isexe@npm:2.0.0" - checksum: 26bf6c5480dda5161c820c5b5c751ae1e766c587b1f951ea3fcfc973bafb7831ae5b54a31a69bd670220e42e99ec154475025a468eae58ea262f813fdc8d1c62 +"jsonc-parser@npm:^3.2.0": + version: 3.3.1 + resolution: "jsonc-parser@npm:3.3.1" + checksum: 81ef19d98d9c6bd6e4a37a95e2753c51c21705cbeffd895e177f4b542cca9cda5fda12fb942a71a2e824a9132cf119dc2e642e9286386055e1365b5478f49a47 languageName: node linkType: hard -"isexe@npm:^3.1.1": - version: 3.1.1 - resolution: "isexe@npm:3.1.1" - checksum: 7fe1931ee4e88eb5aa524cd3ceb8c882537bc3a81b02e438b240e47012eef49c86904d0f0e593ea7c3a9996d18d0f1f3be8d3eaa92333977b0c3a9d353d5563e +"jsonc-parser@npm:~2.2.1": + version: 2.2.1 + resolution: "jsonc-parser@npm:2.2.1" + checksum: c113878b5edd4232ba0742c7e0ddefb22a2a8ef1aafa1674c0eb4c5df0be11ed02bc8288f52ebe44b1696de336e1bc06e7bbc1458d0f910540d72b57ee7c8084 languageName: node linkType: hard -"isomorphic-git@npm:^1.23.0": - version: 1.27.1 - resolution: "isomorphic-git@npm:1.27.1" +"jsonfile@npm:^4.0.0": + version: 4.0.0 + resolution: "jsonfile@npm:4.0.0" dependencies: - async-lock: ^1.4.1 - clean-git-ref: ^2.0.1 - crc-32: ^1.2.0 - diff3: 0.0.3 - ignore: ^5.1.4 - minimisted: ^2.0.0 - pako: ^1.0.10 - pify: ^4.0.1 - readable-stream: ^3.4.0 - sha.js: ^2.4.9 - simple-get: ^4.0.1 - bin: - isogit: cli.cjs - checksum: ba6f3c10b3160dac74185881f1da1c5a9b6cbd32d5f273ebce7291055566e5c58f466f89be9039e9c83ededd86a69e367bc4050262bbfbc6b785eea211a7f923 + graceful-fs: ^4.1.6 + dependenciesMeta: + graceful-fs: + optional: true + checksum: 6447d6224f0d31623eef9b51185af03ac328a7553efcee30fa423d98a9e276ca08db87d71e17f2310b0263fd3ffa6c2a90a6308367f661dc21580f9469897c9e languageName: node linkType: hard -"isomorphic-ws@npm:5.0.0, isomorphic-ws@npm:^5.0.0": - version: 5.0.0 - resolution: "isomorphic-ws@npm:5.0.0" - peerDependencies: - ws: "*" - checksum: e20eb2aee09ba96247465fda40c6d22c1153394c0144fa34fe6609f341af4c8c564f60ea3ba762335a7a9c306809349f9b863c8beedf2beea09b299834ad5398 +"jsonfile@npm:^6.0.1": + version: 6.1.0 + resolution: "jsonfile@npm:6.1.0" + dependencies: + graceful-fs: ^4.1.6 + universalify: ^2.0.0 + dependenciesMeta: + graceful-fs: + optional: true + checksum: 7af3b8e1ac8fe7f1eccc6263c6ca14e1966fcbc74b618d3c78a0a2075579487547b94f72b7a1114e844a1e15bb00d440e5d1720bfc4612d790a6f285d5ea8354 languageName: node linkType: hard -"isstream@npm:~0.1.2": - version: 0.1.2 - resolution: "isstream@npm:0.1.2" - checksum: 1eb2fe63a729f7bdd8a559ab552c69055f4f48eb5c2f03724430587c6f450783c8f1cd936c1c952d0a927925180fcc892ebd5b174236cf1065d4bd5bdb37e963 +"jsonify@npm:^0.0.1": + version: 0.0.1 + resolution: "jsonify@npm:0.0.1" + checksum: 027287e1c0294fce15f18c0ff990cfc2318e7f01fb76515f784d5cd0784abfec6fc5c2355c3a2f2cb0ad7f4aa2f5b74ebbfe4e80476c35b2d13cabdb572e1134 languageName: node linkType: hard -"istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0": - version: 3.2.2 - resolution: "istanbul-lib-coverage@npm:3.2.2" - checksum: 2367407a8d13982d8f7a859a35e7f8dd5d8f75aae4bb5484ede3a9ea1b426dc245aff28b976a2af48ee759fdd9be374ce2bd2669b644f31e76c5f46a2e29a831 +"jsonpath-plus@npm:10.2.0, jsonpath-plus@npm:^10.0.0, jsonpath-plus@npm:^6.0.1 || ^10.1.0": + version: 10.2.0 + resolution: "jsonpath-plus@npm:10.2.0" + dependencies: + "@jsep-plugin/assignment": ^1.3.0 + "@jsep-plugin/regex": ^1.0.4 + jsep: ^1.4.0 + bin: + jsonpath: bin/jsonpath-cli.js + jsonpath-plus: bin/jsonpath-cli.js + checksum: 862a96a0179f342fa6c012065fa78458d4ae4835f18a6ef580d18807101d8c2c3509dc20c9857474503205bff8f06c309e17d7420b68196262d15ad1e4f22146 languageName: node linkType: hard -"istanbul-lib-instrument@npm:^5.0.4": - version: 5.2.1 - resolution: "istanbul-lib-instrument@npm:5.2.1" - dependencies: - "@babel/core": ^7.12.3 - "@babel/parser": ^7.14.7 - "@istanbuljs/schema": ^0.1.2 - istanbul-lib-coverage: ^3.2.0 - semver: ^6.3.0 - checksum: bf16f1803ba5e51b28bbd49ed955a736488381e09375d830e42ddeb403855b2006f850711d95ad726f2ba3f1ae8e7366de7e51d2b9ac67dc4d80191ef7ddf272 +"jsonpath-plus@npm:^7.2.0": + version: 7.2.0 + resolution: "jsonpath-plus@npm:7.2.0" + checksum: 05f447339d29be861e307d6e812aec1b9b88a3ba6bba286966a4e8bed3e752bee3d715eabfc21dce968be85ccb48bf79d2c1af78da7b9b74cd1b446d4d5d02f5 languageName: node linkType: hard -"istanbul-lib-instrument@npm:^6.0.0": - version: 6.0.3 - resolution: "istanbul-lib-instrument@npm:6.0.3" +"jsonpath@npm:^1.1.1": + version: 1.1.1 + resolution: "jsonpath@npm:1.1.1" dependencies: - "@babel/core": ^7.23.9 - "@babel/parser": ^7.23.9 - "@istanbuljs/schema": ^0.1.3 - istanbul-lib-coverage: ^3.2.0 - semver: ^7.5.4 - checksum: 74104c60c65c4fa0e97cc76f039226c356123893929f067bfad5f86fe839e08f5d680354a68fead3bc9c1e2f3fa6f3f53cded70778e821d911e851d349f3545a + esprima: 1.2.2 + static-eval: 2.0.2 + underscore: 1.12.1 + checksum: 5480d8e9e424fe2ed4ade6860b6e2cefddb21adb3a99abe0254cd9428e8ef9b0c9fb5729d6a5a514e90df50d645ccea9f3be48d627570e6222dd5dadc28eba7b languageName: node linkType: hard -"istanbul-lib-report@npm:^3.0.0": - version: 3.0.1 - resolution: "istanbul-lib-report@npm:3.0.1" - dependencies: - istanbul-lib-coverage: ^3.0.0 - make-dir: ^4.0.0 - supports-color: ^7.1.0 - checksum: fd17a1b879e7faf9bb1dc8f80b2a16e9f5b7b8498fe6ed580a618c34df0bfe53d2abd35bf8a0a00e628fb7405462576427c7df20bbe4148d19c14b431c974b21 +"jsonpointer@npm:^5.0.0, jsonpointer@npm:^5.0.1": + version: 5.0.1 + resolution: "jsonpointer@npm:5.0.1" + checksum: 0b40f712900ad0c846681ea2db23b6684b9d5eedf55807b4708c656f5894b63507d0e28ae10aa1bddbea551241035afe62b6df0800fc94c2e2806a7f3adecd7c languageName: node linkType: hard -"istanbul-lib-source-maps@npm:^4.0.0": - version: 4.0.1 - resolution: "istanbul-lib-source-maps@npm:4.0.1" - dependencies: - debug: ^4.1.1 - istanbul-lib-coverage: ^3.0.0 - source-map: ^0.6.1 - checksum: 21ad3df45db4b81852b662b8d4161f6446cd250c1ddc70ef96a585e2e85c26ed7cd9c2a396a71533cfb981d1a645508bc9618cae431e55d01a0628e7dec62ef2 +"jsonschema@npm:^1.2.6": + version: 1.4.1 + resolution: "jsonschema@npm:1.4.1" + checksum: 1ef02a6cd9bc32241ec86bbf1300bdbc3b5f2d8df6eb795517cf7d1cd9909e7beba1e54fdf73990fd66be98a182bda9add9607296b0cb00b1348212988e424b2 languageName: node linkType: hard -"istanbul-reports@npm:^3.1.3": - version: 3.1.7 - resolution: "istanbul-reports@npm:3.1.7" +"jsonwebtoken@npm:^9.0.0, jsonwebtoken@npm:^9.0.2": + version: 9.0.2 + resolution: "jsonwebtoken@npm:9.0.2" dependencies: - html-escaper: ^2.0.0 - istanbul-lib-report: ^3.0.0 - checksum: 2072db6e07bfbb4d0eb30e2700250636182398c1af811aea5032acb219d2080f7586923c09fa194029efd6b92361afb3dcbe1ebcc3ee6651d13340f7c6c4ed95 + jws: ^3.2.2 + lodash.includes: ^4.3.0 + lodash.isboolean: ^3.0.3 + lodash.isinteger: ^4.0.4 + lodash.isnumber: ^3.0.3 + lodash.isplainobject: ^4.0.6 + lodash.isstring: ^4.0.1 + lodash.once: ^4.0.0 + ms: ^2.1.1 + semver: ^7.5.4 + checksum: fc739a6a8b33f1974f9772dca7f8493ca8df4cc31c5a09dcfdb7cff77447dcf22f4236fb2774ef3fe50df0abeb8e1c6f4c41eba82f500a804ab101e2fbc9d61a languageName: node linkType: hard -"iterare@npm:1.2.1": - version: 1.2.1 - resolution: "iterare@npm:1.2.1" - checksum: 70bc80038e3718aa9072bc63b3a0135166d7120bde46bfcaf80a88d11005dcef1b2d69cd353849f87a3f58ba8f546a8c6e6983408236ff01fa50b52339ee5223 +"jsprim@npm:^1.2.2": + version: 1.4.2 + resolution: "jsprim@npm:1.4.2" + dependencies: + assert-plus: 1.0.0 + extsprintf: 1.3.0 + json-schema: 0.4.0 + verror: 1.10.0 + checksum: 2ad1b9fdcccae8b3d580fa6ced25de930eaa1ad154db21bbf8478a4d30bbbec7925b5f5ff29b933fba9412b16a17bd484a8da4fdb3663b5e27af95dd693bab2a languageName: node linkType: hard -"iterator.prototype@npm:^1.1.3": - version: 1.1.3 - resolution: "iterator.prototype@npm:1.1.3" +"jss-plugin-camel-case@npm:^10.5.1": + version: 10.10.0 + resolution: "jss-plugin-camel-case@npm:10.10.0" dependencies: - define-properties: ^1.2.1 - get-intrinsic: ^1.2.1 - has-symbols: ^1.0.3 - reflect.getprototypeof: ^1.0.4 - set-function-name: ^2.0.1 - checksum: 7d2a1f8bcbba7b76f72e956faaf7b25405f4de54430c9d099992e6fb9d571717c3044604e8cdfb8e624cb881337d648030ee8b1541d544af8b338835e3f47ebe + "@babel/runtime": ^7.3.1 + hyphenate-style-name: ^1.0.3 + jss: 10.10.0 + checksum: 693485b86f7a0e0bd0c16b8ddd057ca02a993fc088558c96501f9131e7e6261cc9f4b08047879a68441c688c40dceeb5219b1f15ade9043935aade4f37f5ca85 languageName: node linkType: hard -"jackspeak@npm:^3.1.2": - version: 3.4.3 - resolution: "jackspeak@npm:3.4.3" +"jss-plugin-default-unit@npm:^10.5.1": + version: 10.10.0 + resolution: "jss-plugin-default-unit@npm:10.10.0" dependencies: - "@isaacs/cliui": ^8.0.2 - "@pkgjs/parseargs": ^0.11.0 - dependenciesMeta: - "@pkgjs/parseargs": - optional: true - checksum: be31027fc72e7cc726206b9f560395604b82e0fddb46c4cbf9f97d049bcef607491a5afc0699612eaa4213ca5be8fd3e1e7cd187b3040988b65c9489838a7c00 + "@babel/runtime": ^7.3.1 + jss: 10.10.0 + checksum: 6e56213830753ad80bca3824973a667106defaef698d5996d45d03a0e2a3e035b33cd257aa8015040c41bd6669e7598dce72c36099d7ae69db758a7b2ca453fa languageName: node linkType: hard -"jest-changed-files@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-changed-files@npm:29.7.0" +"jss-plugin-global@npm:^10.5.1": + version: 10.10.0 + resolution: "jss-plugin-global@npm:10.10.0" dependencies: - execa: ^5.0.0 - jest-util: ^29.7.0 - p-limit: ^3.1.0 - checksum: 963e203893c396c5dfc75e00a49426688efea7361b0f0e040035809cecd2d46b3c01c02be2d9e8d38b1138357d2de7719ea5b5be21f66c10f2e9685a5a73bb99 + "@babel/runtime": ^7.3.1 + jss: 10.10.0 + checksum: f3af4f40358e96cf89e0c7c84b6e441dc9b4d543cd6109fdf9314a9818fd780d252035f46cc526c3d3fb4393bc29effc6993cc22e04f4e67ec3c889ab760d580 languageName: node linkType: hard -"jest-circus@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-circus@npm:29.7.0" +"jss-plugin-nested@npm:^10.5.1": + version: 10.10.0 + resolution: "jss-plugin-nested@npm:10.10.0" dependencies: - "@jest/environment": ^29.7.0 - "@jest/expect": ^29.7.0 - "@jest/test-result": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/node": "*" - chalk: ^4.0.0 - co: ^4.6.0 - dedent: ^1.0.0 - is-generator-fn: ^2.0.0 - jest-each: ^29.7.0 - jest-matcher-utils: ^29.7.0 - jest-message-util: ^29.7.0 - jest-runtime: ^29.7.0 - jest-snapshot: ^29.7.0 - jest-util: ^29.7.0 - p-limit: ^3.1.0 - pretty-format: ^29.7.0 - pure-rand: ^6.0.0 - slash: ^3.0.0 - stack-utils: ^2.0.3 - checksum: 349437148924a5a109c9b8aad6d393a9591b4dac1918fc97d81b7fc515bc905af9918495055071404af1fab4e48e4b04ac3593477b1d5dcf48c4e71b527c70a7 + "@babel/runtime": ^7.3.1 + jss: 10.10.0 + tiny-warning: ^1.0.2 + checksum: 190094375972b68eb8f683387c74e97dc8347e7cc4f2fbfd40b3baf077dfde83d70e57be56744690d22537c0390e0a398714d86736df820c64e498df95f937de languageName: node linkType: hard -"jest-cli@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-cli@npm:29.7.0" +"jss-plugin-props-sort@npm:^10.5.1": + version: 10.10.0 + resolution: "jss-plugin-props-sort@npm:10.10.0" dependencies: - "@jest/core": ^29.7.0 - "@jest/test-result": ^29.7.0 - "@jest/types": ^29.6.3 - chalk: ^4.0.0 - create-jest: ^29.7.0 - exit: ^0.1.2 - import-local: ^3.0.2 - jest-config: ^29.7.0 - jest-util: ^29.7.0 - jest-validate: ^29.7.0 - yargs: ^17.3.1 - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - bin: - jest: bin/jest.js - checksum: 664901277a3f5007ea4870632ed6e7889db9da35b2434e7cb488443e6bf5513889b344b7fddf15112135495b9875892b156faeb2d7391ddb9e2a849dcb7b6c36 + "@babel/runtime": ^7.3.1 + jss: 10.10.0 + checksum: 274483444b6733bd58d229ebdcdb32b3c24172bc83cb2f6f8364926de19acd872758bcf06c7b3af11cf75504a67a7d67abba62b25081d144585a56b4df9512ba languageName: node linkType: hard -"jest-config@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-config@npm:29.7.0" +"jss-plugin-rule-value-function@npm:^10.5.1": + version: 10.10.0 + resolution: "jss-plugin-rule-value-function@npm:10.10.0" dependencies: - "@babel/core": ^7.11.6 - "@jest/test-sequencer": ^29.7.0 - "@jest/types": ^29.6.3 - babel-jest: ^29.7.0 - chalk: ^4.0.0 - ci-info: ^3.2.0 - deepmerge: ^4.2.2 - glob: ^7.1.3 - graceful-fs: ^4.2.9 - jest-circus: ^29.7.0 - jest-environment-node: ^29.7.0 - jest-get-type: ^29.6.3 - jest-regex-util: ^29.6.3 - jest-resolve: ^29.7.0 - jest-runner: ^29.7.0 - jest-util: ^29.7.0 - jest-validate: ^29.7.0 - micromatch: ^4.0.4 - parse-json: ^5.2.0 - pretty-format: ^29.7.0 - slash: ^3.0.0 - strip-json-comments: ^3.1.1 - peerDependencies: - "@types/node": "*" - ts-node: ">=9.0.0" - peerDependenciesMeta: - "@types/node": - optional: true - ts-node: - optional: true - checksum: 4cabf8f894c180cac80b7df1038912a3fc88f96f2622de33832f4b3314f83e22b08fb751da570c0ab2b7988f21604bdabade95e3c0c041068ac578c085cf7dff + "@babel/runtime": ^7.3.1 + jss: 10.10.0 + tiny-warning: ^1.0.2 + checksum: 009c9593b9be8b9f1030b797e58e3c233d90e034e5c68b0cabd25bffc7da965c69dc1ccb1bb6a542d72bb824df89036b2264fe564e8538320ef99febaf2882ee languageName: node linkType: hard -"jest-css-modules@npm:^2.1.0": - version: 2.1.0 - resolution: "jest-css-modules@npm:2.1.0" +"jss-plugin-vendor-prefixer@npm:^10.5.1": + version: 10.10.0 + resolution: "jss-plugin-vendor-prefixer@npm:10.10.0" dependencies: - identity-obj-proxy: 3.0.0 - checksum: ddf01a327379f0186fc506b0c2a6cecad59acf3a7c947113f75530d1ea87e4f09aa98c9894283c0ead29688ef9fbc3c91ce1b158756034872fa097e491ee9f8c + "@babel/runtime": ^7.3.1 + css-vendor: ^2.0.8 + jss: 10.10.0 + checksum: 879b7233f9b0b571074dc2b88d97a05dbb949012ba2405f1481bbedd521167dc835133632adb3f2d8ffceddd337c8c13e3e8b1931590516c0664039598752dff languageName: node linkType: hard -"jest-diff@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-diff@npm:29.7.0" +"jss@npm:10.10.0, jss@npm:^10.5.1, jss@npm:~10.10.0": + version: 10.10.0 + resolution: "jss@npm:10.10.0" dependencies: - chalk: ^4.0.0 - diff-sequences: ^29.6.3 - jest-get-type: ^29.6.3 - pretty-format: ^29.7.0 - checksum: 08e24a9dd43bfba1ef07a6374e5af138f53137b79ec3d5cc71a2303515335898888fa5409959172e1e05de966c9e714368d15e8994b0af7441f0721ee8e1bb77 + "@babel/runtime": ^7.3.1 + csstype: ^3.0.2 + is-in-browser: ^1.1.3 + tiny-warning: ^1.0.2 + checksum: ecf71971df42729668c283e432e841349b7fdbe52e520f7704991cf4a738fd2451ec0feeb25c12cdc5addf7facecf838e74e62936fd461fb4c99f23d54a4792d languageName: node linkType: hard -"jest-docblock@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-docblock@npm:29.7.0" +"jsx-ast-utils@npm:^2.4.1 || ^3.0.0, jsx-ast-utils@npm:^3.3.5": + version: 3.3.5 + resolution: "jsx-ast-utils@npm:3.3.5" dependencies: - detect-newline: ^3.0.0 - checksum: 66390c3e9451f8d96c5da62f577a1dad701180cfa9b071c5025acab2f94d7a3efc2515cfa1654ebe707213241541ce9c5530232cdc8017c91ed64eea1bd3b192 + array-includes: ^3.1.6 + array.prototype.flat: ^1.3.1 + object.assign: ^4.1.4 + object.values: ^1.1.6 + checksum: f4b05fa4d7b5234230c905cfa88d36dc8a58a6666975a3891429b1a8cdc8a140bca76c297225cb7a499fad25a2c052ac93934449a2c31a44fc9edd06c773780a languageName: node linkType: hard -"jest-each@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-each@npm:29.7.0" +"jszip@npm:^3.10.1": + version: 3.10.1 + resolution: "jszip@npm:3.10.1" dependencies: - "@jest/types": ^29.6.3 - chalk: ^4.0.0 - jest-get-type: ^29.6.3 - jest-util: ^29.7.0 - pretty-format: ^29.7.0 - checksum: e88f99f0184000fc8813f2a0aa79e29deeb63700a3b9b7928b8a418d7d93cd24933608591dbbdea732b473eb2021c72991b5cc51a17966842841c6e28e6f691c + lie: ~3.3.0 + pako: ~1.0.2 + readable-stream: ~2.3.6 + setimmediate: ^1.0.5 + checksum: abc77bfbe33e691d4d1ac9c74c8851b5761fba6a6986630864f98d876f3fcc2d36817dfc183779f32c00157b5d53a016796677298272a714ae096dfe6b1c8b60 languageName: node linkType: hard -"jest-environment-jsdom@npm:^29.0.2": - version: 29.7.0 - resolution: "jest-environment-jsdom@npm:29.7.0" +"jwa@npm:^1.4.1": + version: 1.4.1 + resolution: "jwa@npm:1.4.1" dependencies: - "@jest/environment": ^29.7.0 - "@jest/fake-timers": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/jsdom": ^20.0.0 - "@types/node": "*" - jest-mock: ^29.7.0 - jest-util: ^29.7.0 - jsdom: ^20.0.0 - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - checksum: 559aac134c196fccc1dfc794d8fc87377e9f78e894bb13012b0831d88dec0abd7ece99abec69da564b8073803be4f04a9eb4f4d1bb80e29eec0cb252c254deb8 + buffer-equal-constant-time: 1.0.1 + ecdsa-sig-formatter: 1.0.11 + safe-buffer: ^5.0.1 + checksum: ff30ea7c2dcc61f3ed2098d868bf89d43701605090c5b21b5544b512843ec6fd9e028381a4dda466cbcdb885c2d1150f7c62e7168394ee07941b4098e1035e2f languageName: node linkType: hard -"jest-environment-node@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-environment-node@npm:29.7.0" +"jwa@npm:^2.0.0": + version: 2.0.0 + resolution: "jwa@npm:2.0.0" dependencies: - "@jest/environment": ^29.7.0 - "@jest/fake-timers": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/node": "*" - jest-mock: ^29.7.0 - jest-util: ^29.7.0 - checksum: 501a9966292cbe0ca3f40057a37587cb6def25e1e0c5e39ac6c650fe78d3c70a2428304341d084ac0cced5041483acef41c477abac47e9a290d5545fd2f15646 + buffer-equal-constant-time: 1.0.1 + ecdsa-sig-formatter: 1.0.11 + safe-buffer: ^5.0.1 + checksum: 8f00b71ad5fe94cb55006d0d19202f8f56889109caada2f7eeb63ca81755769ce87f4f48101967f398462e3b8ae4faebfbd5a0269cb755dead5d63c77ba4d2f1 languageName: node linkType: hard -"jest-get-type@npm:^29.6.3": - version: 29.6.3 - resolution: "jest-get-type@npm:29.6.3" - checksum: 88ac9102d4679d768accae29f1e75f592b760b44277df288ad76ce5bf038c3f5ce3719dea8aa0f035dac30e9eb034b848ce716b9183ad7cc222d029f03e92205 +"jws@npm:^3.2.2": + version: 3.2.2 + resolution: "jws@npm:3.2.2" + dependencies: + jwa: ^1.4.1 + safe-buffer: ^5.0.1 + checksum: f0213fe5b79344c56cd443428d8f65c16bf842dc8cb8f5aed693e1e91d79c20741663ad6eff07a6d2c433d1831acc9814e8d7bada6a0471fbb91d09ceb2bf5c2 languageName: node linkType: hard -"jest-haste-map@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-haste-map@npm:29.7.0" +"jws@npm:^4.0.0": + version: 4.0.0 + resolution: "jws@npm:4.0.0" dependencies: - "@jest/types": ^29.6.3 - "@types/graceful-fs": ^4.1.3 - "@types/node": "*" - anymatch: ^3.0.3 - fb-watchman: ^2.0.0 - fsevents: ^2.3.2 - graceful-fs: ^4.2.9 - jest-regex-util: ^29.6.3 - jest-util: ^29.7.0 - jest-worker: ^29.7.0 - micromatch: ^4.0.4 - walker: ^1.0.8 - dependenciesMeta: - fsevents: - optional: true - checksum: c2c8f2d3e792a963940fbdfa563ce14ef9e14d4d86da645b96d3cd346b8d35c5ce0b992ee08593939b5f718cf0a1f5a90011a056548a1dbf58397d4356786f01 + jwa: ^2.0.0 + safe-buffer: ^5.0.1 + checksum: d68d07aa6d1b8cb35c363a9bd2b48f15064d342a5d9dc18a250dbbce8dc06bd7e4792516c50baa16b8d14f61167c19e851fd7f66b59ecc68b7f6a013759765f7 languageName: node linkType: hard -"jest-leak-detector@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-leak-detector@npm:29.7.0" +"keygrip@npm:~1.1.0": + version: 1.1.0 + resolution: "keygrip@npm:1.1.0" dependencies: - jest-get-type: ^29.6.3 - pretty-format: ^29.7.0 - checksum: e3950e3ddd71e1d0c22924c51a300a1c2db6cf69ec1e51f95ccf424bcc070f78664813bef7aed4b16b96dfbdeea53fe358f8aeaaea84346ae15c3735758f1605 + tsscmp: 1.0.6 + checksum: 078cd16a463d187121f0a27c1c9c95c52ad392b620f823431689f345a0501132cee60f6e96914b07d570105af470b96960402accd6c48a0b1f3cd8fac4fa2cae languageName: node linkType: hard -"jest-matcher-utils@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-matcher-utils@npm:29.7.0" +"keyv@npm:*, keyv@npm:^5.2.1": + version: 5.2.2 + resolution: "keyv@npm:5.2.2" dependencies: - chalk: ^4.0.0 - jest-diff: ^29.7.0 - jest-get-type: ^29.6.3 - pretty-format: ^29.7.0 - checksum: d7259e5f995d915e8a37a8fd494cb7d6af24cd2a287b200f831717ba0d015190375f9f5dc35393b8ba2aae9b2ebd60984635269c7f8cff7d85b077543b7744cd + "@keyv/serialize": ^1.0.1 + checksum: d5476d8dd674c55c1754bcd05da118dc71eb4609f38677d891da799600fdc532f2015b1ffd3d8e03c0891b3ca88e4b50a34e1eac7787844f6af9cfb2f72c946c languageName: node linkType: hard -"jest-message-util@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-message-util@npm:29.7.0" +"keyv@npm:^4.5.2, keyv@npm:^4.5.3": + version: 4.5.4 + resolution: "keyv@npm:4.5.4" dependencies: - "@babel/code-frame": ^7.12.13 - "@jest/types": ^29.6.3 - "@types/stack-utils": ^2.0.0 - chalk: ^4.0.0 - graceful-fs: ^4.2.9 - micromatch: ^4.0.4 - pretty-format: ^29.7.0 - slash: ^3.0.0 - stack-utils: ^2.0.3 - checksum: a9d025b1c6726a2ff17d54cc694de088b0489456c69106be6b615db7a51b7beb66788bea7a59991a019d924fbf20f67d085a445aedb9a4d6760363f4d7d09930 + json-buffer: 3.0.1 + checksum: 74a24395b1c34bd44ad5cb2b49140d087553e170625240b86755a6604cd65aa16efdbdeae5cdb17ba1284a0fbb25ad06263755dbc71b8d8b06f74232ce3cdd72 languageName: node linkType: hard -"jest-mock@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-mock@npm:29.7.0" - dependencies: - "@jest/types": ^29.6.3 - "@types/node": "*" - jest-util: ^29.7.0 - checksum: 81ba9b68689a60be1482212878973700347cb72833c5e5af09895882b9eb5c4e02843a1bbdf23f94c52d42708bab53a30c45a3482952c9eec173d1eaac5b86c5 +"kind-of@npm:^6.0.2": + version: 6.0.3 + resolution: "kind-of@npm:6.0.3" + checksum: 3ab01e7b1d440b22fe4c31f23d8d38b4d9b91d9f291df683476576493d5dfd2e03848a8b05813dd0c3f0e835bc63f433007ddeceb71f05cb25c45ae1b19c6d3b languageName: node linkType: hard -"jest-pnp-resolver@npm:^1.2.2": - version: 1.2.3 - resolution: "jest-pnp-resolver@npm:1.2.3" - peerDependencies: - jest-resolve: "*" +"kleur@npm:^3.0.3": + version: 3.0.3 + resolution: "kleur@npm:3.0.3" + checksum: df82cd1e172f957bae9c536286265a5cdbd5eeca487cb0a3b2a7b41ef959fc61f8e7c0e9aeea9c114ccf2c166b6a8dd45a46fd619c1c569d210ecd2765ad5169 + languageName: node + linkType: hard + +"kleur@npm:^4.0.3": + version: 4.1.5 + resolution: "kleur@npm:4.1.5" + checksum: 1dc476e32741acf0b1b5b0627ffd0d722e342c1b0da14de3e8ae97821327ca08f9fb944542fb3c126d90ac5f27f9d804edbe7c585bf7d12ef495d115e0f22c12 + languageName: node + linkType: hard + +"knex@npm:3, knex@npm:^3.0.0": + version: 3.1.0 + resolution: "knex@npm:3.1.0" + dependencies: + colorette: 2.0.19 + commander: ^10.0.0 + debug: 4.3.4 + escalade: ^3.1.1 + esm: ^3.2.25 + get-package-type: ^0.1.0 + getopts: 2.3.0 + interpret: ^2.2.0 + lodash: ^4.17.21 + pg-connection-string: 2.6.2 + rechoir: ^0.8.0 + resolve-from: ^5.0.0 + tarn: ^3.0.2 + tildify: 2.0.0 peerDependenciesMeta: - jest-resolve: + better-sqlite3: optional: true - checksum: db1a8ab2cb97ca19c01b1cfa9a9c8c69a143fde833c14df1fab0766f411b1148ff0df878adea09007ac6a2085ec116ba9a996a6ad104b1e58c20adbf88eed9b2 + mysql: + optional: true + mysql2: + optional: true + pg: + optional: true + pg-native: + optional: true + sqlite3: + optional: true + tedious: + optional: true + bin: + knex: bin/cli.js + checksum: 3905f8d27960975f7f57f3f488d1ef3ccf47784acc8eb627e8a28cbbe1f296c6879c8ef0cbd9e17e867be80117d305cd948545f3fbd4c74b24c90d2413bbc021 languageName: node linkType: hard -"jest-regex-util@npm:^29.6.3": - version: 29.6.3 - resolution: "jest-regex-util@npm:29.6.3" - checksum: 0518beeb9bf1228261695e54f0feaad3606df26a19764bc19541e0fc6e2a3737191904607fb72f3f2ce85d9c16b28df79b7b1ec9443aa08c3ef0e9efda6f8f2a +"knip@npm:^5.27.4": + version: 5.41.1 + resolution: "knip@npm:5.41.1" + dependencies: + "@nodelib/fs.walk": 1.2.8 + "@snyk/github-codeowners": 1.1.0 + easy-table: 1.2.0 + enhanced-resolve: ^5.17.1 + fast-glob: ^3.3.2 + jiti: ^2.4.0 + js-yaml: ^4.1.0 + minimist: ^1.2.8 + picocolors: ^1.1.0 + picomatch: ^4.0.1 + pretty-ms: ^9.0.0 + smol-toml: ^1.3.1 + strip-json-comments: 5.0.1 + summary: 2.1.0 + zod: ^3.22.4 + zod-validation-error: ^3.0.3 + peerDependencies: + "@types/node": ">=18" + typescript: ">=5.0.4" + bin: + knip: bin/knip.js + knip-bun: bin/knip-bun.js + checksum: d8b1d072493e624abc3ed08d855940a4877c86c7c0b9211e69d930e597c683badd035c1bfb1dc3f9c53c4223507fa0556b413cef63c2e732190275c553587cad languageName: node linkType: hard -"jest-resolve-dependencies@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-resolve-dependencies@npm:29.7.0" - dependencies: - jest-regex-util: ^29.6.3 - jest-snapshot: ^29.7.0 - checksum: aeb75d8150aaae60ca2bb345a0d198f23496494677cd6aefa26fc005faf354061f073982175daaf32b4b9d86b26ca928586344516e3e6969aa614cb13b883984 +"koa-compose@npm:^4.1.0": + version: 4.1.0 + resolution: "koa-compose@npm:4.1.0" + checksum: 46cb16792d96425e977c2ae4e5cb04930280740e907242ec9c25e3fb8b4a1d7b54451d7432bc24f40ec62255edea71894d2ceeb8238501842b4e48014f2e83db languageName: node linkType: hard -"jest-resolve@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-resolve@npm:29.7.0" +"koa-convert@npm:^2.0.0": + version: 2.0.0 + resolution: "koa-convert@npm:2.0.0" dependencies: - chalk: ^4.0.0 - graceful-fs: ^4.2.9 - jest-haste-map: ^29.7.0 - jest-pnp-resolver: ^1.2.2 - jest-util: ^29.7.0 - jest-validate: ^29.7.0 - resolve: ^1.20.0 - resolve.exports: ^2.0.0 - slash: ^3.0.0 - checksum: 0ca218e10731aa17920526ec39deaec59ab9b966237905ffc4545444481112cd422f01581230eceb7e82d86f44a543d520a71391ec66e1b4ef1a578bd5c73487 + co: ^4.6.0 + koa-compose: ^4.1.0 + checksum: 7385b3391995f59c1312142e110d5dff677f9850dbfbcf387cd36a7b0af03b5d26e82b811eb9bb008b4f3e661cdab1f8817596e46b1929da2cf6e97a2f7456ed languageName: node linkType: hard -"jest-runner@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-runner@npm:29.7.0" +"koa@npm:2.15.3": + version: 2.15.3 + resolution: "koa@npm:2.15.3" dependencies: - "@jest/console": ^29.7.0 - "@jest/environment": ^29.7.0 - "@jest/test-result": ^29.7.0 - "@jest/transform": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/node": "*" - chalk: ^4.0.0 - emittery: ^0.13.1 - graceful-fs: ^4.2.9 - jest-docblock: ^29.7.0 - jest-environment-node: ^29.7.0 - jest-haste-map: ^29.7.0 - jest-leak-detector: ^29.7.0 - jest-message-util: ^29.7.0 - jest-resolve: ^29.7.0 - jest-runtime: ^29.7.0 - jest-util: ^29.7.0 - jest-watcher: ^29.7.0 - jest-worker: ^29.7.0 - p-limit: ^3.1.0 - source-map-support: 0.5.13 - checksum: f0405778ea64812bf9b5c50b598850d94ccf95d7ba21f090c64827b41decd680ee19fcbb494007cdd7f5d0d8906bfc9eceddd8fa583e753e736ecd462d4682fb + accepts: ^1.3.5 + cache-content-type: ^1.0.0 + content-disposition: ~0.5.2 + content-type: ^1.0.4 + cookies: ~0.9.0 + debug: ^4.3.2 + delegates: ^1.0.0 + depd: ^2.0.0 + destroy: ^1.0.4 + encodeurl: ^1.0.2 + escape-html: ^1.0.3 + fresh: ~0.5.2 + http-assert: ^1.3.0 + http-errors: ^1.6.3 + is-generator-function: ^1.0.7 + koa-compose: ^4.1.0 + koa-convert: ^2.0.0 + on-finished: ^2.3.0 + only: ~0.0.2 + parseurl: ^1.3.2 + statuses: ^1.5.0 + type-is: ^1.6.16 + vary: ^1.1.2 + checksum: 7c3537443b1a588cf5c3e5554b914ff2bad510323d22b41861d5e0c97d47e9c5997965f303ede8be8bd83d309a4eea1f82cd45d35d6838bc21bb1bb6a90d5d25 languageName: node linkType: hard -"jest-runtime@npm:^29.0.2, jest-runtime@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-runtime@npm:29.7.0" +"kubernetes-models@npm:^4.1.0, kubernetes-models@npm:^4.3.1": + version: 4.4.2 + resolution: "kubernetes-models@npm:4.4.2" dependencies: - "@jest/environment": ^29.7.0 - "@jest/fake-timers": ^29.7.0 - "@jest/globals": ^29.7.0 - "@jest/source-map": ^29.6.3 - "@jest/test-result": ^29.7.0 - "@jest/transform": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/node": "*" - chalk: ^4.0.0 - cjs-module-lexer: ^1.0.0 - collect-v8-coverage: ^1.0.0 - glob: ^7.1.3 - graceful-fs: ^4.2.9 - jest-haste-map: ^29.7.0 - jest-message-util: ^29.7.0 - jest-mock: ^29.7.0 - jest-regex-util: ^29.6.3 - jest-resolve: ^29.7.0 - jest-snapshot: ^29.7.0 - jest-util: ^29.7.0 - slash: ^3.0.0 - strip-bom: ^4.0.0 - checksum: d19f113d013e80691e07047f68e1e3448ef024ff2c6b586ce4f90cd7d4c62a2cd1d460110491019719f3c59bfebe16f0e201ed005ef9f80e2cf798c374eed54e + "@kubernetes-models/apimachinery": ^2.0.2 + "@kubernetes-models/base": ^5.0.1 + "@kubernetes-models/validate": ^4.0.0 + "@swc/helpers": ^0.5.8 + checksum: 7c449f69cdda44b177e02185305489dbf492a264c8d71debac0d051831bef76936ed1ec6669fa2090ceb5a20ab9a82b4698d72cac6447c636fdeb6c1960bba9c languageName: node linkType: hard -"jest-snapshot@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-snapshot@npm:29.7.0" - dependencies: - "@babel/core": ^7.11.6 - "@babel/generator": ^7.7.2 - "@babel/plugin-syntax-jsx": ^7.7.2 - "@babel/plugin-syntax-typescript": ^7.7.2 - "@babel/types": ^7.3.3 - "@jest/expect-utils": ^29.7.0 - "@jest/transform": ^29.7.0 - "@jest/types": ^29.6.3 - babel-preset-current-node-syntax: ^1.0.0 - chalk: ^4.0.0 - expect: ^29.7.0 - graceful-fs: ^4.2.9 - jest-diff: ^29.7.0 - jest-get-type: ^29.6.3 - jest-matcher-utils: ^29.7.0 - jest-message-util: ^29.7.0 - jest-util: ^29.7.0 - natural-compare: ^1.4.0 - pretty-format: ^29.7.0 - semver: ^7.5.3 - checksum: 86821c3ad0b6899521ce75ee1ae7b01b17e6dfeff9166f2cf17f012e0c5d8c798f30f9e4f8f7f5bed01ea7b55a6bc159f5eda778311162cbfa48785447c237ad +"kuler@npm:^2.0.0": + version: 2.0.0 + resolution: "kuler@npm:2.0.0" + checksum: 9e10b5a1659f9ed8761d38df3c35effabffbd19fc6107324095238e4ef0ff044392cae9ac64a1c2dda26e532426485342226b93806bd97504b174b0dcf04ed81 languageName: node linkType: hard -"jest-util@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-util@npm:29.7.0" - dependencies: - "@jest/types": ^29.6.3 - "@types/node": "*" - chalk: ^4.0.0 - ci-info: ^3.2.0 - graceful-fs: ^4.2.9 - picomatch: ^2.2.3 - checksum: 042ab4980f4ccd4d50226e01e5c7376a8556b472442ca6091a8f102488c0f22e6e8b89ea874111d2328a2080083bf3225c86f3788c52af0bd0345a00eb57a3ca +"language-subtag-registry@npm:^0.3.20": + version: 0.3.23 + resolution: "language-subtag-registry@npm:0.3.23" + checksum: 0b64c1a6c5431c8df648a6d25594ff280613c886f4a1a542d9b864e5472fb93e5c7856b9c41595c38fac31370328fc79fcc521712e89ea6d6866cbb8e0995d81 languageName: node linkType: hard -"jest-validate@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-validate@npm:29.7.0" +"language-tags@npm:^1.0.9": + version: 1.0.9 + resolution: "language-tags@npm:1.0.9" dependencies: - "@jest/types": ^29.6.3 - camelcase: ^6.2.0 - chalk: ^4.0.0 - jest-get-type: ^29.6.3 - leven: ^3.1.0 - pretty-format: ^29.7.0 - checksum: 191fcdc980f8a0de4dbdd879fa276435d00eb157a48683af7b3b1b98b0f7d9de7ffe12689b617779097ff1ed77601b9f7126b0871bba4f776e222c40f62e9dae + language-subtag-registry: ^0.3.20 + checksum: 57c530796dc7179914dee71bc94f3747fd694612480241d0453a063777265dfe3a951037f7acb48f456bf167d6eb419d4c00263745326b3ba1cdcf4657070e78 languageName: node linkType: hard -"jest-watcher@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-watcher@npm:29.7.0" +"launch-editor@npm:^2.6.1": + version: 2.9.1 + resolution: "launch-editor@npm:2.9.1" dependencies: - "@jest/test-result": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/node": "*" - ansi-escapes: ^4.2.1 - chalk: ^4.0.0 - emittery: ^0.13.1 - jest-util: ^29.7.0 - string-length: ^4.0.1 - checksum: 67e6e7fe695416deff96b93a14a561a6db69389a0667e9489f24485bb85e5b54e12f3b2ba511ec0b777eca1e727235b073e3ebcdd473d68888650489f88df92f + picocolors: ^1.0.0 + shell-quote: ^1.8.1 + checksum: bed887085a9729cc2ad050329d92a99f4c69bacccf96d1ed8c84670608a3a128a828ba8e9a8a41101c5aea5aea6f79984658e2fd11f6ba85e32e6e1ed16dbb1c languageName: node linkType: hard -"jest-worker@npm:^27.4.5": - version: 27.5.1 - resolution: "jest-worker@npm:27.5.1" - dependencies: - "@types/node": "*" - merge-stream: ^2.0.0 - supports-color: ^8.0.0 - checksum: 98cd68b696781caed61c983a3ee30bf880b5bd021c01d98f47b143d4362b85d0737f8523761e2713d45e18b4f9a2b98af1eaee77afade4111bb65c77d6f7c980 +"lazy-ass@npm:1.6.0": + version: 1.6.0 + resolution: "lazy-ass@npm:1.6.0" + checksum: 5a3ebb17915b03452320804466345382a6c25ac782ec4874fecdb2385793896cd459be2f187dc7def8899180c32ee0ab9a1aa7fe52193ac3ff3fe29bb0591729 languageName: node linkType: hard -"jest-worker@npm:^28.0.2": - version: 28.1.3 - resolution: "jest-worker@npm:28.1.3" +"lazystream@npm:^1.0.0": + version: 1.0.1 + resolution: "lazystream@npm:1.0.1" dependencies: - "@types/node": "*" - merge-stream: ^2.0.0 - supports-color: ^8.0.0 - checksum: e921c9a1b8f0909da9ea07dbf3592f95b653aef3a8bb0cbcd20fc7f9a795a1304adecac31eecb308992c167e8d7e75c522061fec38a5928ace0f9571c90169ca + readable-stream: ^2.0.5 + checksum: 822c54c6b87701a6491c70d4fabc4cafcf0f87d6b656af168ee7bb3c45de9128a801cb612e6eeeefc64d298a7524a698dd49b13b0121ae50c2ae305f0dcc5310 languageName: node linkType: hard -"jest-worker@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-worker@npm:29.7.0" - dependencies: - "@types/node": "*" - jest-util: ^29.7.0 - merge-stream: ^2.0.0 - supports-color: ^8.0.0 - checksum: 30fff60af49675273644d408b650fc2eb4b5dcafc5a0a455f238322a8f9d8a98d847baca9d51ff197b6747f54c7901daa2287799230b856a0f48287d131f8c13 +"leven@npm:2.1.0": + version: 2.1.0 + resolution: "leven@npm:2.1.0" + checksum: f7b4a01b15c0ee2f92a04c0367ea025d10992b044df6f0d4ee1a845d4a488b343e99799e2f31212d72a2b1dea67124f57c1bb1b4561540df45190e44b5b8b394 languageName: node linkType: hard -"jest@npm:^29.7.0": - version: 29.7.0 - resolution: "jest@npm:29.7.0" - dependencies: - "@jest/core": ^29.7.0 - "@jest/types": ^29.6.3 - import-local: ^3.0.2 - jest-cli: ^29.7.0 - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - bin: - jest: bin/jest.js - checksum: 17ca8d67504a7dbb1998cf3c3077ec9031ba3eb512da8d71cb91bcabb2b8995c4e4b292b740cb9bf1cbff5ce3e110b3f7c777b0cefb6f41ab05445f248d0ee0b +"leven@npm:3.1.0, leven@npm:^3.1.0": + version: 3.1.0 + resolution: "leven@npm:3.1.0" + checksum: 638401d534585261b6003db9d99afd244dfe82d75ddb6db5c0df412842d5ab30b2ef18de471aaec70fe69a46f17b4ae3c7f01d8a4e6580ef7adb9f4273ad1e55 languageName: node linkType: hard -"jiti@npm:^2.3.3": - version: 2.3.3 - resolution: "jiti@npm:2.3.3" - bin: - jiti: lib/jiti-cli.mjs - checksum: f1a2b87d937569c966f00a8c9153c8f3e02445b31e034fdaed1b9639a4ecfae3c4df24c7644d5b4764c566f8dee09132a5b55cd049b48e618024accd31d8e6b3 +"levn@npm:^0.4.1": + version: 0.4.1 + resolution: "levn@npm:0.4.1" + dependencies: + prelude-ls: ^1.2.1 + type-check: ~0.4.0 + checksum: 12c5021c859bd0f5248561bf139121f0358285ec545ebf48bb3d346820d5c61a4309535c7f387ed7d84361cf821e124ce346c6b7cef8ee09a67c1473b46d0fc4 languageName: node linkType: hard -"jju@npm:~1.4.0": - version: 1.4.0 - resolution: "jju@npm:1.4.0" - checksum: 3790481bd2b7827dd6336e6e3dc2dcc6d425679ba7ebde7b679f61dceb4457ea0cda330972494de608571f4973c6dfb5f70fab6f3c5037dbab19ac449a60424f +"levn@npm:~0.3.0": + version: 0.3.0 + resolution: "levn@npm:0.3.0" + dependencies: + prelude-ls: ~1.1.2 + type-check: ~0.3.2 + checksum: 0d084a524231a8246bb10fec48cdbb35282099f6954838604f3c7fc66f2e16fa66fd9cc2f3f20a541a113c4dafdf181e822c887c8a319c9195444e6c64ac395e languageName: node linkType: hard -"jose@npm:^4.15.9": - version: 4.15.9 - resolution: "jose@npm:4.15.9" - checksum: 41abe1c99baa3cf8a78ebbf93da8f8e50e417b7a26754c4afa21865d87527b8ac2baf66de2c5f6accc3f7d7158658dae7364043677236ea1d07895b040097f15 +"libsodium-wrappers@npm:^0.7.11": + version: 0.7.15 + resolution: "libsodium-wrappers@npm:0.7.15" + dependencies: + libsodium: ^0.7.15 + checksum: 35bd4d4a4ced47ed69b0e1f1772651507a7224285d6487c4c0d9a5ab80e0daf2c225e069474d0cd640fcd4152608b51005fff8f107e12e04545a92e8db45e422 languageName: node linkType: hard -"jose@npm:^5.0.0": - version: 5.9.6 - resolution: "jose@npm:5.9.6" - checksum: 4b536da0201858ed4c4582e8bb479081f11e0c63dd0f5e473adde16fc539785e1f2f0409bc1fc7cbbb5b68026776c960b4952da3a06f6fdfff0b9764c9127ae0 +"libsodium@npm:^0.7.15": + version: 0.7.15 + resolution: "libsodium@npm:0.7.15" + checksum: c641fee43415c8c516c531303439ab89cd1e72de56e3f9fd9e07f695a2cf0fe8f3095f6015db5e351ae4693a1ba50ac18cb19b3e0d241be0546b82319166abe0 languageName: node linkType: hard -"joycon@npm:^3.0.1": - version: 3.1.1 - resolution: "joycon@npm:3.1.1" - checksum: 8003c9c3fc79c5c7602b1c7e9f7a2df2e9916f046b0dbad862aa589be78c15734d11beb9fe846f5e06138df22cb2ad29961b6a986ba81c4920ce2b15a7f11067 +"lie@npm:~3.3.0": + version: 3.3.0 + resolution: "lie@npm:3.3.0" + dependencies: + immediate: ~3.0.5 + checksum: 33102302cf19766f97919a6a98d481e01393288b17a6aa1f030a3542031df42736edde8dab29ffdbf90bebeffc48c761eb1d064dc77592ca3ba3556f9fe6d2a8 languageName: node linkType: hard -"js-levenshtein@npm:^1.1.6": - version: 1.1.6 - resolution: "js-levenshtein@npm:1.1.6" - checksum: 409f052a7f1141be4058d97da7860e08efd97fc588b7a4c5cfa0548bc04f6d576644dae65ab630266dff685d56fb90d494e03d4d79cb484c287746b4f1bf0694 +"lilconfig@npm:^2.0.3, lilconfig@npm:^2.0.5": + version: 2.1.0 + resolution: "lilconfig@npm:2.1.0" + checksum: 8549bb352b8192375fed4a74694cd61ad293904eee33f9d4866c2192865c44c4eb35d10782966242634e0cbc1e91fe62b1247f148dc5514918e3a966da7ea117 languageName: node linkType: hard -"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": - version: 4.0.0 - resolution: "js-tokens@npm:4.0.0" - checksum: 8a95213a5a77deb6cbe94d86340e8d9ace2b93bc367790b260101d2f36a2eaf4e4e22d9fa9cf459b38af3a32fb4190e638024cf82ec95ef708680e405ea7cc78 +"lines-and-columns@npm:^1.1.6": + version: 1.2.4 + resolution: "lines-and-columns@npm:1.2.4" + checksum: 0c37f9f7fa212b38912b7145e1cd16a5f3cd34d782441c3e6ca653485d326f58b3caccda66efce1c5812bde4961bbde3374fae4b0d11bf1226152337f3894aa5 languageName: node linkType: hard -"js-yaml@npm:^3.10.0, js-yaml@npm:^3.13.1, js-yaml@npm:^3.6.1, js-yaml@npm:^3.8.3": - version: 3.14.1 - resolution: "js-yaml@npm:3.14.1" +"linkify-it@npm:^3.0.1": + version: 3.0.3 + resolution: "linkify-it@npm:3.0.3" dependencies: - argparse: ^1.0.7 - esprima: ^4.0.0 - bin: - js-yaml: bin/js-yaml.js - checksum: bef146085f472d44dee30ec34e5cf36bf89164f5d585435a3d3da89e52622dff0b188a580e4ad091c3341889e14cb88cac6e4deb16dc5b1e9623bb0601fc255c + uc.micro: ^1.0.1 + checksum: 31367a4bb70c5bbc9703246236b504b0a8e049bcd4e0de4291fa50f0ebdebf235b5eb54db6493cb0b1319357c6eeafc4324c9f4aa34b0b943d9f2e11a1268fbc languageName: node linkType: hard -"js-yaml@npm:^4.1.0": - version: 4.1.0 - resolution: "js-yaml@npm:4.1.0" +"linkify-it@npm:^5.0.0": + version: 5.0.0 + resolution: "linkify-it@npm:5.0.0" dependencies: - argparse: ^2.0.1 - bin: - js-yaml: bin/js-yaml.js - checksum: c7830dfd456c3ef2c6e355cc5a92e6700ceafa1d14bba54497b34a99f0376cecbb3e9ac14d3e5849b426d5a5140709a66237a8c991c675431271c4ce5504151a + uc.micro: ^2.0.0 + checksum: b0b86cadaf816b64c947a83994ceaad1c15f9fe7e079776ab88699fb71afd7b8fc3fd3d0ae5ebec8c92c1d347be9ba257b8aef338c0ebf81b0d27dcf429a765a languageName: node linkType: hard -"js-yaml@npm:~3.13.1": - version: 3.13.1 - resolution: "js-yaml@npm:3.13.1" - dependencies: - argparse: ^1.0.7 - esprima: ^4.0.0 - bin: - js-yaml: bin/js-yaml.js - checksum: 7511b764abb66d8aa963379f7d2a404f078457d106552d05a7b556d204f7932384e8477513c124749fa2de52eb328961834562bd09924902c6432e40daa408bc +"linkify-react@npm:4.1.3": + version: 4.1.3 + resolution: "linkify-react@npm:4.1.3" + peerDependencies: + linkifyjs: ^4.0.0 + react: ">= 15.0.0" + checksum: 1c28ab02774d5427fad9f4a5ad1c7b852b83aece983fd143fdb4ec95dedf7edc77da59883aaf6fb1a2c2060e8b5e72fdfad4d704d544fabc2b173a1b1eb6473d languageName: node linkType: hard -"jsbn@npm:1.1.0": - version: 1.1.0 - resolution: "jsbn@npm:1.1.0" - checksum: 944f924f2bd67ad533b3850eee47603eed0f6ae425fd1ee8c760f477e8c34a05f144c1bd4f5a5dd1963141dc79a2c55f89ccc5ab77d039e7077f3ad196b64965 +"linkifyjs@npm:4.1.3": + version: 4.1.3 + resolution: "linkifyjs@npm:4.1.3" + checksum: 023d467499a717a49ebbfa256a80cb2811a3b038ff2593e5be0fb8a4715b0a63bf80c571838e19e120833d5b9874464f3a1448965c8eebbde8c19458b3a6c6e4 languageName: node linkType: hard -"jsbn@npm:~0.1.0": - version: 0.1.1 - resolution: "jsbn@npm:0.1.1" - checksum: e5ff29c1b8d965017ef3f9c219dacd6e40ad355c664e277d31246c90545a02e6047018c16c60a00f36d561b3647215c41894f5d869ada6908a2e0ce4200c88f2 +"loader-runner@npm:^4.2.0": + version: 4.3.0 + resolution: "loader-runner@npm:4.3.0" + checksum: a90e00dee9a16be118ea43fec3192d0b491fe03a32ed48a4132eb61d498f5536a03a1315531c19d284392a8726a4ecad71d82044c28d7f22ef62e029bf761569 + languageName: node + linkType: hard + +"loader-utils@npm:^1.1.0": + version: 1.4.2 + resolution: "loader-utils@npm:1.4.2" + dependencies: + big.js: ^5.2.2 + emojis-list: ^3.0.0 + json5: ^1.0.1 + checksum: eb6fb622efc0ffd1abdf68a2022f9eac62bef8ec599cf8adb75e94d1d338381780be6278534170e99edc03380a6d29bc7eb1563c89ce17c5fed3a0b17f1ad804 languageName: node linkType: hard -"jsdom@npm:^20.0.0": - version: 20.0.3 - resolution: "jsdom@npm:20.0.3" +"loader-utils@npm:^2.0.0, loader-utils@npm:^2.0.4": + version: 2.0.4 + resolution: "loader-utils@npm:2.0.4" dependencies: - abab: ^2.0.6 - acorn: ^8.8.1 - acorn-globals: ^7.0.0 - cssom: ^0.5.0 - cssstyle: ^2.3.0 - data-urls: ^3.0.2 - decimal.js: ^10.4.2 - domexception: ^4.0.0 - escodegen: ^2.0.0 - form-data: ^4.0.0 - html-encoding-sniffer: ^3.0.0 - http-proxy-agent: ^5.0.0 - https-proxy-agent: ^5.0.1 - is-potential-custom-element-name: ^1.0.1 - nwsapi: ^2.2.2 - parse5: ^7.1.1 - saxes: ^6.0.0 - symbol-tree: ^3.2.4 - tough-cookie: ^4.1.2 - w3c-xmlserializer: ^4.0.0 - webidl-conversions: ^7.0.0 - whatwg-encoding: ^2.0.0 - whatwg-mimetype: ^3.0.0 - whatwg-url: ^11.0.0 - ws: ^8.11.0 - xml-name-validator: ^4.0.0 - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - checksum: 6e2ae21db397133a061b270c26d2dbc0b9051733ea3b896a7ece78d79f475ff0974f766a413c1198a79c793159119169f2335ddb23150348fbfdcfa6f3105536 + big.js: ^5.2.2 + emojis-list: ^3.0.0 + json5: ^2.1.2 + checksum: a5281f5fff1eaa310ad5e1164095689443630f3411e927f95031ab4fb83b4a98f388185bb1fe949e8ab8d4247004336a625e9255c22122b815bb9a4c5d8fc3b7 languageName: node linkType: hard -"jsep@npm:^1.1.2, jsep@npm:^1.2.0": - version: 1.3.9 - resolution: "jsep@npm:1.3.9" - checksum: d1f3e2cc00209f67a989b73c2a89d2ccbea908d950ec959e2448c6449b134c6367b47eef4e1292767cb490f0b5b72e7309080b93ee4c7398684df2514dbd33a3 +"loader-utils@npm:^3.2.0": + version: 3.3.1 + resolution: "loader-utils@npm:3.3.1" + checksum: d35808e081635e5bc50228a52ed79f83e2c82bd8f7578818c12b1b4cf0b7f409d72d9b93a683ec36b9eaa93346693d3f3c8380183ba2ff81599b0829d685de39 languageName: node linkType: hard -"jsesc@npm:^3.0.2, jsesc@npm:~3.0.2": - version: 3.0.2 - resolution: "jsesc@npm:3.0.2" - bin: - jsesc: bin/jsesc - checksum: a36d3ca40574a974d9c2063bf68c2b6141c20da8f2a36bd3279fc802563f35f0527a6c828801295bdfb2803952cf2cf387786c2c90ed564f88d5782475abfe3c +"locate-path@npm:^3.0.0": + version: 3.0.0 + resolution: "locate-path@npm:3.0.0" + dependencies: + p-locate: ^3.0.0 + path-exists: ^3.0.0 + checksum: 53db3996672f21f8b0bf2a2c645ae2c13ffdae1eeecfcd399a583bce8516c0b88dcb4222ca6efbbbeb6949df7e46860895be2c02e8d3219abd373ace3bfb4e11 languageName: node linkType: hard -"json-bigint@npm:^1.0.0": - version: 1.0.0 - resolution: "json-bigint@npm:1.0.0" +"locate-path@npm:^5.0.0": + version: 5.0.0 + resolution: "locate-path@npm:5.0.0" dependencies: - bignumber.js: ^9.0.0 - checksum: c67bb93ccb3c291e60eb4b62931403e378906aab113ec1c2a8dd0f9a7f065ad6fd9713d627b732abefae2e244ac9ce1721c7a3142b2979532f12b258634ce6f6 + p-locate: ^4.1.0 + checksum: 83e51725e67517287d73e1ded92b28602e3ae5580b301fe54bfb76c0c723e3f285b19252e375712316774cf52006cb236aed5704692c32db0d5d089b69696e30 languageName: node linkType: hard -"json-buffer@npm:3.0.1, json-buffer@npm:^3.0.1": - version: 3.0.1 - resolution: "json-buffer@npm:3.0.1" - checksum: 9026b03edc2847eefa2e37646c579300a1f3a4586cfb62bf857832b60c852042d0d6ae55d1afb8926163fa54c2b01d83ae24705f34990348bdac6273a29d4581 +"locate-path@npm:^6.0.0": + version: 6.0.0 + resolution: "locate-path@npm:6.0.0" + dependencies: + p-locate: ^5.0.0 + checksum: 72eb661788a0368c099a184c59d2fee760b3831c9c1c33955e8a19ae4a21b4116e53fa736dc086cdeb9fce9f7cc508f2f92d2d3aae516f133e16a2bb59a39f5a languageName: node linkType: hard -"json-parse-even-better-errors@npm:^2.3.0, json-parse-even-better-errors@npm:^2.3.1": - version: 2.3.1 - resolution: "json-parse-even-better-errors@npm:2.3.1" - checksum: 798ed4cf3354a2d9ccd78e86d2169515a0097a5c133337807cdf7f1fc32e1391d207ccfc276518cc1d7d8d4db93288b8a50ba4293d212ad1336e52a8ec0a941f +"lodash-es@npm:^4.17.21": + version: 4.17.21 + resolution: "lodash-es@npm:4.17.21" + checksum: 05cbffad6e2adbb331a4e16fbd826e7faee403a1a04873b82b42c0f22090f280839f85b95393f487c1303c8a3d2a010048bf06151a6cbe03eee4d388fb0a12d2 languageName: node linkType: hard -"json-schema-compare@npm:^0.2.2": - version: 0.2.2 - resolution: "json-schema-compare@npm:0.2.2" - dependencies: - lodash: ^4.17.4 - checksum: dd6f2173857c8e3b77d6ebdfa05bd505bba5b08709ab46b532722f5d1c33b5fee1fc8f3c97d0c0d011db25f9f3b0baf7ab783bb5f55c32abd9f1201760e43c2c +"lodash.camelcase@npm:^4.3.0": + version: 4.3.0 + resolution: "lodash.camelcase@npm:4.3.0" + checksum: cb9227612f71b83e42de93eccf1232feeb25e705bdb19ba26c04f91e885bfd3dd5c517c4a97137658190581d3493ea3973072ca010aab7e301046d90740393d1 languageName: node linkType: hard -"json-schema-merge-allof@npm:^0.8.1": - version: 0.8.1 - resolution: "json-schema-merge-allof@npm:0.8.1" - dependencies: - compute-lcm: ^1.1.2 - json-schema-compare: ^0.2.2 - lodash: ^4.17.20 - checksum: 82700f6ac77351959138d6b153d77375a8c29cf48d907241b85c8292dd77aabd8cb816400f2b0d17062c4ccc8893832ec4f664ab9c814927ef502e7a595ea873 +"lodash.clonedeep@npm:^4.5.0": + version: 4.5.0 + resolution: "lodash.clonedeep@npm:4.5.0" + checksum: 92c46f094b064e876a23c97f57f81fbffd5d760bf2d8a1c61d85db6d1e488c66b0384c943abee4f6af7debf5ad4e4282e74ff83177c9e63d8ff081a4837c3489 languageName: node linkType: hard -"json-schema-traverse@npm:^0.4.1": - version: 0.4.1 - resolution: "json-schema-traverse@npm:0.4.1" - checksum: 7486074d3ba247769fda17d5181b345c9fb7d12e0da98b22d1d71a5db9698d8b4bd900a3ec1a4ffdd60846fc2556274a5c894d0c48795f14cb03aeae7b55260b +"lodash.clonedeepwith@npm:4.5.0": + version: 4.5.0 + resolution: "lodash.clonedeepwith@npm:4.5.0" + checksum: 9fbf4ebfa04b381df226a2298eba680327bea3d0d5d19c5118de7ae218fd219186e30e9fd0d33b13729f34ffbc83c1cf09cb27aff265ba94cb602b8a2b1e71c9 languageName: node linkType: hard -"json-schema-traverse@npm:^1.0.0": - version: 1.0.0 - resolution: "json-schema-traverse@npm:1.0.0" - checksum: 02f2f466cdb0362558b2f1fd5e15cce82ef55d60cd7f8fa828cf35ba74330f8d767fcae5c5c2adb7851fa811766c694b9405810879bc4e1ddd78a7c0e03658ad +"lodash.debounce@npm:^4, lodash.debounce@npm:^4.0.8": + version: 4.0.8 + resolution: "lodash.debounce@npm:4.0.8" + checksum: a3f527d22c548f43ae31c861ada88b2637eb48ac6aa3eb56e82d44917971b8aa96fbb37aa60efea674dc4ee8c42074f90f7b1f772e9db375435f6c83a19b3bc6 languageName: node linkType: hard -"json-schema@npm:0.4.0, json-schema@npm:^0.4.0": - version: 0.4.0 - resolution: "json-schema@npm:0.4.0" - checksum: 66389434c3469e698da0df2e7ac5a3281bcff75e797a5c127db7c5b56270e01ae13d9afa3c03344f76e32e81678337a8c912bdbb75101c62e487dc3778461d72 +"lodash.defaults@npm:^4.2.0": + version: 4.2.0 + resolution: "lodash.defaults@npm:4.2.0" + checksum: 84923258235592c8886e29de5491946ff8c2ae5c82a7ac5cddd2e3cb697e6fbdfbbb6efcca015795c86eec2bb953a5a2ee4016e3735a3f02720428a40efbb8f1 languageName: node linkType: hard -"json-stable-stringify-without-jsonify@npm:^1.0.1": - version: 1.0.1 - resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" - checksum: cff44156ddce9c67c44386ad5cddf91925fe06b1d217f2da9c4910d01f358c6e3989c4d5a02683c7a5667f9727ff05831f7aa8ae66c8ff691c556f0884d49215 +"lodash.flattendeep@npm:^4.0.0": + version: 4.4.0 + resolution: "lodash.flattendeep@npm:4.4.0" + checksum: 8521c919acac3d4bcf0aaf040c1ca9cb35d6c617e2d72e9b4d51c9a58b4366622cd6077441a18be626c3f7b28227502b3bf042903d447b056ee7e0b11d45c722 languageName: node linkType: hard -"json-stable-stringify@npm:^1.0.1": - version: 1.1.1 - resolution: "json-stable-stringify@npm:1.1.1" - dependencies: - call-bind: ^1.0.5 - isarray: ^2.0.5 - jsonify: ^0.0.1 - object-keys: ^1.1.1 - checksum: e1ba06600fd278767eeff53f28e408e29c867e79abf564e7aadc3ce8f31f667258f8db278ef28831e45884dd687388fa1910f46e599fc19fb94c9afbbe3a4de8 +"lodash.get@npm:^4.4.2": + version: 4.4.2 + resolution: "lodash.get@npm:4.4.2" + checksum: e403047ddb03181c9d0e92df9556570e2b67e0f0a930fcbbbd779370972368f5568e914f913e93f3b08f6d492abc71e14d4e9b7a18916c31fa04bd2306efe545 languageName: node linkType: hard -"json-stringify-safe@npm:^5.0.1, json-stringify-safe@npm:~5.0.1": - version: 5.0.1 - resolution: "json-stringify-safe@npm:5.0.1" - checksum: 48ec0adad5280b8a96bb93f4563aa1667fd7a36334f79149abd42446d0989f2ddc58274b479f4819f1f00617957e6344c886c55d05a4e15ebb4ab931e4a6a8ee +"lodash.groupby@npm:^4.6.0": + version: 4.6.0 + resolution: "lodash.groupby@npm:4.6.0" + checksum: e2d4d13d12790a1cacab3f5f120b7c072a792224e83b2f403218866d18efde76024b2579996dfebb230a61ce06469332e16639103669a35a605287e19ced6b9b languageName: node linkType: hard -"json5@npm:^1.0.1, json5@npm:^1.0.2": - version: 1.0.2 - resolution: "json5@npm:1.0.2" - dependencies: - minimist: ^1.2.0 - bin: - json5: lib/cli.js - checksum: 866458a8c58a95a49bef3adba929c625e82532bcff1fe93f01d29cb02cac7c3fe1f4b79951b7792c2da9de0b32871a8401a6e3c5b36778ad852bf5b8a61165d7 +"lodash.includes@npm:^4.3.0": + version: 4.3.0 + resolution: "lodash.includes@npm:4.3.0" + checksum: 71092c130515a67ab3bd928f57f6018434797c94def7f46aafa417771e455ce3a4834889f4267b17887d7f75297dfabd96231bf704fd2b8c5096dc4a913568b6 languageName: node linkType: hard -"json5@npm:^2.1.2, json5@npm:^2.2.0, json5@npm:^2.2.3": - version: 2.2.3 - resolution: "json5@npm:2.2.3" - bin: - json5: lib/cli.js - checksum: 2a7436a93393830bce797d4626275152e37e877b265e94ca69c99e3d20c2b9dab021279146a39cdb700e71b2dd32a4cebd1514cd57cee102b1af906ce5040349 +"lodash.isarguments@npm:^3.1.0": + version: 3.1.0 + resolution: "lodash.isarguments@npm:3.1.0" + checksum: ae1526f3eb5c61c77944b101b1f655f846ecbedcb9e6b073526eba6890dc0f13f09f72e11ffbf6540b602caee319af9ac363d6cdd6be41f4ee453436f04f13b5 languageName: node linkType: hard -"jsonc-parser@npm:^3.0.0, jsonc-parser@npm:^3.2.0": - version: 3.3.1 - resolution: "jsonc-parser@npm:3.3.1" - checksum: 81ef19d98d9c6bd6e4a37a95e2753c51c21705cbeffd895e177f4b542cca9cda5fda12fb942a71a2e824a9132cf119dc2e642e9286386055e1365b5478f49a47 +"lodash.isboolean@npm:^3.0.3": + version: 3.0.3 + resolution: "lodash.isboolean@npm:3.0.3" + checksum: b70068b4a8b8837912b54052557b21fc4774174e3512ed3c5b94621e5aff5eb6c68089d0a386b7e801d679cd105d2e35417978a5e99071750aa2ed90bffd0250 languageName: node linkType: hard -"jsonc-parser@npm:~2.2.1": - version: 2.2.1 - resolution: "jsonc-parser@npm:2.2.1" - checksum: c113878b5edd4232ba0742c7e0ddefb22a2a8ef1aafa1674c0eb4c5df0be11ed02bc8288f52ebe44b1696de336e1bc06e7bbc1458d0f910540d72b57ee7c8084 +"lodash.isequal@npm:^4.5.0": + version: 4.5.0 + resolution: "lodash.isequal@npm:4.5.0" + checksum: da27515dc5230eb1140ba65ff8de3613649620e8656b19a6270afe4866b7bd461d9ba2ac8a48dcc57f7adac4ee80e1de9f965d89d4d81a0ad52bb3eec2609644 languageName: node linkType: hard -"jsonfile@npm:^4.0.0": - version: 4.0.0 - resolution: "jsonfile@npm:4.0.0" - dependencies: - graceful-fs: ^4.1.6 - dependenciesMeta: - graceful-fs: - optional: true - checksum: 6447d6224f0d31623eef9b51185af03ac328a7553efcee30fa423d98a9e276ca08db87d71e17f2310b0263fd3ffa6c2a90a6308367f661dc21580f9469897c9e +"lodash.isinteger@npm:^4.0.4": + version: 4.0.4 + resolution: "lodash.isinteger@npm:4.0.4" + checksum: 6034821b3fc61a2ffc34e7d5644bb50c5fd8f1c0121c554c21ac271911ee0c0502274852845005f8651d51e199ee2e0cfebfe40aaa49c7fe617f603a8a0b1691 languageName: node linkType: hard -"jsonfile@npm:^6.0.1": - version: 6.1.0 - resolution: "jsonfile@npm:6.1.0" - dependencies: - graceful-fs: ^4.1.6 - universalify: ^2.0.0 - dependenciesMeta: - graceful-fs: - optional: true - checksum: 7af3b8e1ac8fe7f1eccc6263c6ca14e1966fcbc74b618d3c78a0a2075579487547b94f72b7a1114e844a1e15bb00d440e5d1720bfc4612d790a6f285d5ea8354 +"lodash.isnumber@npm:^3.0.3": + version: 3.0.3 + resolution: "lodash.isnumber@npm:3.0.3" + checksum: 913784275b565346255e6ae6a6e30b760a0da70abc29f3e1f409081585875105138cda4a429ff02577e1bc0a7ae2a90e0a3079a37f3a04c3d6c5aaa532f4cab2 languageName: node linkType: hard -"jsonify@npm:^0.0.1": - version: 0.0.1 - resolution: "jsonify@npm:0.0.1" - checksum: 027287e1c0294fce15f18c0ff990cfc2318e7f01fb76515f784d5cd0784abfec6fc5c2355c3a2f2cb0ad7f4aa2f5b74ebbfe4e80476c35b2d13cabdb572e1134 +"lodash.isplainobject@npm:^4.0.6": + version: 4.0.6 + resolution: "lodash.isplainobject@npm:4.0.6" + checksum: 29c6351f281e0d9a1d58f1a4c8f4400924b4c79f18dfc4613624d7d54784df07efaff97c1ff2659f3e085ecf4fff493300adc4837553104cef2634110b0d5337 languageName: node linkType: hard -"jsonpath-plus@npm:7.1.0": - version: 7.1.0 - resolution: "jsonpath-plus@npm:7.1.0" - checksum: a4005dc860c6b7e339229842537ceb6eb839d87a3447f989792b9c64f2564bbbd40663515f9481fb5a1b6cb0f988afba5b0b150e0285c463b794a45ed1aaf555 +"lodash.isstring@npm:^4.0.1": + version: 4.0.1 + resolution: "lodash.isstring@npm:4.0.1" + checksum: eaac87ae9636848af08021083d796e2eea3d02e80082ab8a9955309569cb3a463ce97fd281d7dc119e402b2e7d8c54a23914b15d2fc7fff56461511dc8937ba0 languageName: node linkType: hard -"jsonpath-plus@npm:^6.0.1": - version: 6.0.1 - resolution: "jsonpath-plus@npm:6.0.1" - checksum: bddec34b742249c5b38077dfcd8eb479fab4e077943253017326503ce4f527ef66938288c728712fd923907493d6eaba69a43015dc3dd9fdf48d89028ae7f466 +"lodash.memoize@npm:^4.1.2": + version: 4.1.2 + resolution: "lodash.memoize@npm:4.1.2" + checksum: 9ff3942feeccffa4f1fafa88d32f0d24fdc62fd15ded5a74a5f950ff5f0c6f61916157246744c620173dddf38d37095a92327d5fd3861e2063e736a5c207d089 languageName: node linkType: hard -"jsonpath-plus@npm:^7.2.0": - version: 7.2.0 - resolution: "jsonpath-plus@npm:7.2.0" - checksum: 05f447339d29be861e307d6e812aec1b9b88a3ba6bba286966a4e8bed3e752bee3d715eabfc21dce968be85ccb48bf79d2c1af78da7b9b74cd1b446d4d5d02f5 +"lodash.merge@npm:^4.6.2": + version: 4.6.2 + resolution: "lodash.merge@npm:4.6.2" + checksum: ad580b4bdbb7ca1f7abf7e1bce63a9a0b98e370cf40194b03380a46b4ed799c9573029599caebc1b14e3f24b111aef72b96674a56cfa105e0f5ac70546cdc005 languageName: node linkType: hard -"jsonpath@npm:^1.1.1": - version: 1.1.1 - resolution: "jsonpath@npm:1.1.1" - dependencies: - esprima: 1.2.2 - static-eval: 2.0.2 - underscore: 1.12.1 - checksum: 5480d8e9e424fe2ed4ade6860b6e2cefddb21adb3a99abe0254cd9428e8ef9b0c9fb5729d6a5a514e90df50d645ccea9f3be48d627570e6222dd5dadc28eba7b +"lodash.omit@npm:^4.5.0": + version: 4.5.0 + resolution: "lodash.omit@npm:4.5.0" + checksum: 434645e49fe84ab315719bd5a9a3a585a0f624aa4160bc09157dd041a414bcc287c15840365c1379476a3f3eda41fbe838976c3f7bdecbbf4c5478e86c471a30 languageName: node linkType: hard -"jsonpointer@npm:^5.0.0, jsonpointer@npm:^5.0.1": - version: 5.0.1 - resolution: "jsonpointer@npm:5.0.1" - checksum: 0b40f712900ad0c846681ea2db23b6684b9d5eedf55807b4708c656f5894b63507d0e28ae10aa1bddbea551241035afe62b6df0800fc94c2e2806a7f3adecd7c +"lodash.once@npm:^4.0.0": + version: 4.1.1 + resolution: "lodash.once@npm:4.1.1" + checksum: d768fa9f9b4e1dc6453be99b753906f58990e0c45e7b2ca5a3b40a33111e5d17f6edf2f768786e2716af90a8e78f8f91431ab8435f761fef00f9b0c256f6d245 languageName: node linkType: hard -"jsonwebtoken@npm:^9.0.0, jsonwebtoken@npm:^9.0.2": - version: 9.0.2 - resolution: "jsonwebtoken@npm:9.0.2" - dependencies: - jws: ^3.2.2 - lodash.includes: ^4.3.0 - lodash.isboolean: ^3.0.3 - lodash.isinteger: ^4.0.4 - lodash.isnumber: ^3.0.3 - lodash.isplainobject: ^4.0.6 - lodash.isstring: ^4.0.1 - lodash.once: ^4.0.0 - ms: ^2.1.1 - semver: ^7.5.4 - checksum: fc739a6a8b33f1974f9772dca7f8493ca8df4cc31c5a09dcfdb7cff77447dcf22f4236fb2774ef3fe50df0abeb8e1c6f4c41eba82f500a804ab101e2fbc9d61a +"lodash.startcase@npm:^4.4.0": + version: 4.4.0 + resolution: "lodash.startcase@npm:4.4.0" + checksum: c03a4a784aca653845fe09d0ef67c902b6e49288dc45f542a4ab345a9c406a6dc194c774423fa313ee7b06283950301c1221dd2a1d8ecb2dac8dfbb9ed5606b5 languageName: node linkType: hard -"jsprim@npm:^1.2.2": - version: 1.4.2 - resolution: "jsprim@npm:1.4.2" - dependencies: - assert-plus: 1.0.0 - extsprintf: 1.3.0 - json-schema: 0.4.0 - verror: 1.10.0 - checksum: 2ad1b9fdcccae8b3d580fa6ced25de930eaa1ad154db21bbf8478a4d30bbbec7925b5f5ff29b933fba9412b16a17bd484a8da4fdb3663b5e27af95dd693bab2a +"lodash.topath@npm:^4.5.2": + version: 4.5.2 + resolution: "lodash.topath@npm:4.5.2" + checksum: 04583e220f4bb1c4ac0008ff8f46d9cb4ddce0ea1090085790da30a41f4cb1b904d885cb73257fca619fa825cd96f9bb97c67d039635cb76056e18f5e08bfdee languageName: node linkType: hard -"jsx-ast-utils@npm:^2.4.1 || ^3.0.0, jsx-ast-utils@npm:^3.3.5": - version: 3.3.5 - resolution: "jsx-ast-utils@npm:3.3.5" - dependencies: - array-includes: ^3.1.6 - array.prototype.flat: ^1.3.1 - object.assign: ^4.1.4 - object.values: ^1.1.6 - checksum: f4b05fa4d7b5234230c905cfa88d36dc8a58a6666975a3891429b1a8cdc8a140bca76c297225cb7a499fad25a2c052ac93934449a2c31a44fc9edd06c773780a +"lodash.uniq@npm:^4.5.0": + version: 4.5.0 + resolution: "lodash.uniq@npm:4.5.0" + checksum: a4779b57a8d0f3c441af13d9afe7ecff22dd1b8ce1129849f71d9bbc8e8ee4e46dfb4b7c28f7ad3d67481edd6e51126e4e2a6ee276e25906d10f7140187c392d languageName: node linkType: hard -"jwa@npm:^1.4.1": - version: 1.4.1 - resolution: "jwa@npm:1.4.1" - dependencies: - buffer-equal-constant-time: 1.0.1 - ecdsa-sig-formatter: 1.0.11 - safe-buffer: ^5.0.1 - checksum: ff30ea7c2dcc61f3ed2098d868bf89d43701605090c5b21b5544b512843ec6fd9e028381a4dda466cbcdb885c2d1150f7c62e7168394ee07941b4098e1035e2f +"lodash@npm:4.17.21, lodash@npm:^4.15.0, lodash@npm:^4.16.4, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.17.4, lodash@npm:^4.7.0, lodash@npm:~4.17.15, lodash@npm:~4.17.21": + version: 4.17.21 + resolution: "lodash@npm:4.17.21" + checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 languageName: node linkType: hard -"jwa@npm:^2.0.0": - version: 2.0.0 - resolution: "jwa@npm:2.0.0" +"log-symbols@npm:^4.1.0": + version: 4.1.0 + resolution: "log-symbols@npm:4.1.0" dependencies: - buffer-equal-constant-time: 1.0.1 - ecdsa-sig-formatter: 1.0.11 - safe-buffer: ^5.0.1 - checksum: 8f00b71ad5fe94cb55006d0d19202f8f56889109caada2f7eeb63ca81755769ce87f4f48101967f398462e3b8ae4faebfbd5a0269cb755dead5d63c77ba4d2f1 + chalk: ^4.1.0 + is-unicode-supported: ^0.1.0 + checksum: fce1497b3135a0198803f9f07464165e9eb83ed02ceb2273930a6f8a508951178d8cf4f0378e9d28300a2ed2bc49050995d2bd5f53ab716bb15ac84d58c6ef74 languageName: node linkType: hard -"jws@npm:^3.2.2": - version: 3.2.2 - resolution: "jws@npm:3.2.2" +"log4js@npm:6.9.1": + version: 6.9.1 + resolution: "log4js@npm:6.9.1" dependencies: - jwa: ^1.4.1 - safe-buffer: ^5.0.1 - checksum: f0213fe5b79344c56cd443428d8f65c16bf842dc8cb8f5aed693e1e91d79c20741663ad6eff07a6d2c433d1831acc9814e8d7bada6a0471fbb91d09ceb2bf5c2 + date-format: ^4.0.14 + debug: ^4.3.4 + flatted: ^3.2.7 + rfdc: ^1.3.0 + streamroller: ^3.1.5 + checksum: 59d98c37d4163138dab5d9b06ae26965d1353106fece143973d57b1003b3a482791aa21374fd2cca81a953b8837b2f9756ac225404e60cbfa4dd3ab59f082e2e languageName: node linkType: hard -"jws@npm:^4.0.0": - version: 4.0.0 - resolution: "jws@npm:4.0.0" +"logform@npm:^2.3.2, logform@npm:^2.7.0": + version: 2.7.0 + resolution: "logform@npm:2.7.0" dependencies: - jwa: ^2.0.0 - safe-buffer: ^5.0.1 - checksum: d68d07aa6d1b8cb35c363a9bd2b48f15064d342a5d9dc18a250dbbce8dc06bd7e4792516c50baa16b8d14f61167c19e851fd7f66b59ecc68b7f6a013759765f7 + "@colors/colors": 1.6.0 + "@types/triple-beam": ^1.3.2 + fecha: ^4.2.0 + ms: ^2.1.1 + safe-stable-stringify: ^2.3.1 + triple-beam: ^1.3.0 + checksum: a202d10897254735ead75a640f889998f9b91a0c36be9cac3f5471fa740d36bc2fbbcf9d113dcdadec4ddf09e257393ff800e6aab80019bdc7456363d6ea21f6 languageName: node linkType: hard -"keygrip@npm:~1.1.0": - version: 1.1.0 - resolution: "keygrip@npm:1.1.0" - dependencies: - tsscmp: 1.0.6 - checksum: 078cd16a463d187121f0a27c1c9c95c52ad392b620f823431689f345a0501132cee60f6e96914b07d570105af470b96960402accd6c48a0b1f3cd8fac4fa2cae +"long-timeout@npm:0.1.1": + version: 0.1.1 + resolution: "long-timeout@npm:0.1.1" + checksum: 48668e5362cb74c4b77a6b833d59f149b9bb9e99c5a5097609807e2597cd0920613b2a42b89bd0870848298be3691064d95599a04ae010023d07dba39932afa7 languageName: node linkType: hard -"keyv@npm:*": - version: 5.1.2 - resolution: "keyv@npm:5.1.2" - dependencies: - "@keyv/serialize": "*" - checksum: 959978b3574e704edf3772f9b447dc779c24a53c09c0297912ac55595013d8b6cbfa529f2019b3952deeadafe82257cc7fac2fdc0077d242553a74015a36d198 +"long@npm:^5.0.0, long@npm:^5.2.1": + version: 5.2.3 + resolution: "long@npm:5.2.3" + checksum: 885ede7c3de4facccbd2cacc6168bae3a02c3e836159ea4252c87b6e34d40af819824b2d4edce330bfb5c4d6e8ce3ec5864bdcf9473fa1f53a4f8225860e5897 languageName: node linkType: hard -"keyv@npm:^4.5.2, keyv@npm:^4.5.3": - version: 4.5.4 - resolution: "keyv@npm:4.5.4" - dependencies: - json-buffer: 3.0.1 - checksum: 74a24395b1c34bd44ad5cb2b49140d087553e170625240b86755a6604cd65aa16efdbdeae5cdb17ba1284a0fbb25ad06263755dbc71b8d8b06f74232ce3cdd72 +"longest-streak@npm:^3.0.0": + version: 3.1.0 + resolution: "longest-streak@npm:3.1.0" + checksum: d7f952ed004cbdb5c8bcfc4f7f5c3d65449e6c5a9e9be4505a656e3df5a57ee125f284286b4bf8ecea0c21a7b3bf2b8f9001ad506c319b9815ad6a63a47d0fd0 languageName: node linkType: hard -"kind-of@npm:^6.0.2": - version: 6.0.3 - resolution: "kind-of@npm:6.0.3" - checksum: 3ab01e7b1d440b22fe4c31f23d8d38b4d9b91d9f291df683476576493d5dfd2e03848a8b05813dd0c3f0e835bc63f433007ddeceb71f05cb25c45ae1b19c6d3b +"loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0": + version: 1.4.0 + resolution: "loose-envify@npm:1.4.0" + dependencies: + js-tokens: ^3.0.0 || ^4.0.0 + bin: + loose-envify: cli.js + checksum: 6517e24e0cad87ec9888f500c5b5947032cdfe6ef65e1c1936a0c48a524b81e65542c9c3edc91c97d5bddc806ee2a985dbc79be89215d613b1de5db6d1cfe6f4 languageName: node linkType: hard -"kleur@npm:^3.0.3": - version: 3.0.3 - resolution: "kleur@npm:3.0.3" - checksum: df82cd1e172f957bae9c536286265a5cdbd5eeca487cb0a3b2a7b41ef959fc61f8e7c0e9aeea9c114ccf2c166b6a8dd45a46fd619c1c569d210ecd2765ad5169 +"lower-case@npm:^2.0.2": + version: 2.0.2 + resolution: "lower-case@npm:2.0.2" + dependencies: + tslib: ^2.0.3 + checksum: 83a0a5f159ad7614bee8bf976b96275f3954335a84fad2696927f609ddae902802c4f3312d86668722e668bef41400254807e1d3a7f2e8c3eede79691aa1f010 languageName: node linkType: hard -"knex@npm:^3.0.0": - version: 3.1.0 - resolution: "knex@npm:3.1.0" +"lowlight@npm:^1.17.0": + version: 1.20.0 + resolution: "lowlight@npm:1.20.0" dependencies: - colorette: 2.0.19 - commander: ^10.0.0 - debug: 4.3.4 - escalade: ^3.1.1 - esm: ^3.2.25 - get-package-type: ^0.1.0 - getopts: 2.3.0 - interpret: ^2.2.0 - lodash: ^4.17.21 - pg-connection-string: 2.6.2 - rechoir: ^0.8.0 - resolve-from: ^5.0.0 - tarn: ^3.0.2 - tildify: 2.0.0 - peerDependenciesMeta: - better-sqlite3: - optional: true - mysql: - optional: true - mysql2: - optional: true - pg: - optional: true - pg-native: - optional: true - sqlite3: - optional: true - tedious: - optional: true - bin: - knex: bin/cli.js - checksum: 3905f8d27960975f7f57f3f488d1ef3ccf47784acc8eb627e8a28cbbe1f296c6879c8ef0cbd9e17e867be80117d305cd948545f3fbd4c74b24c90d2413bbc021 + fault: ^1.0.0 + highlight.js: ~10.7.0 + checksum: 14a1815d6bae202ddee313fc60f06d46e5235c02fa483a77950b401d85b4c1e12290145ccd17a716b07f9328bd5864aa2d402b6a819ff3be7c833d9748ff8ba7 languageName: node linkType: hard -"knip@npm:^5.27.4": - version: 5.34.2 - resolution: "knip@npm:5.34.2" - dependencies: - "@nodelib/fs.walk": 1.2.8 - "@snyk/github-codeowners": 1.1.0 - easy-table: 1.2.0 - enhanced-resolve: ^5.17.1 - fast-glob: ^3.3.2 - jiti: ^2.3.3 - js-yaml: ^4.1.0 - minimist: ^1.2.8 - picocolors: ^1.0.0 - picomatch: ^4.0.1 - pretty-ms: ^9.0.0 - smol-toml: ^1.3.0 - strip-json-comments: 5.0.1 - summary: 2.1.0 - zod: ^3.22.4 - zod-validation-error: ^3.0.3 - peerDependencies: - "@types/node": ">=18" - typescript: ">=5.0.4" - bin: - knip: bin/knip.js - knip-bun: bin/knip-bun.js - checksum: de25b787ba4742e8e5349dd7a7cedbb216aac07ce718dee6312514cbd743a6ca416a585c79724acc43a66d06bdc1c65e40f673ae1513d7b3b3ed70c38da0f093 +"lru-cache@npm:@wolfy1339/lru-cache@^11.0.2-patch.1": + version: 11.0.2-patch.1 + resolution: "@wolfy1339/lru-cache@npm:11.0.2-patch.1" + checksum: 60cc2839abbae0fa50152fde143da5ac1141773cefb3505602956074dfa358ec87e107987cad7fd2292768663855497160a2c1e449d7f4e8b4684fb08f89dc25 languageName: node linkType: hard -"koa-compose@npm:^4.1.0": - version: 4.1.0 - resolution: "koa-compose@npm:4.1.0" - checksum: 46cb16792d96425e977c2ae4e5cb04930280740e907242ec9c25e3fb8b4a1d7b54451d7432bc24f40ec62255edea71894d2ceeb8238501842b4e48014f2e83db +"lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0": + version: 10.4.3 + resolution: "lru-cache@npm:10.4.3" + checksum: 6476138d2125387a6d20f100608c2583d415a4f64a0fecf30c9e2dda976614f09cad4baa0842447bd37dd459a7bd27f57d9d8f8ce558805abd487c583f3d774a languageName: node linkType: hard -"koa-convert@npm:^2.0.0": - version: 2.0.0 - resolution: "koa-convert@npm:2.0.0" +"lru-cache@npm:^5.1.1": + version: 5.1.1 + resolution: "lru-cache@npm:5.1.1" dependencies: - co: ^4.6.0 - koa-compose: ^4.1.0 - checksum: 7385b3391995f59c1312142e110d5dff677f9850dbfbcf387cd36a7b0af03b5d26e82b811eb9bb008b4f3e661cdab1f8817596e46b1929da2cf6e97a2f7456ed + yallist: ^3.0.2 + checksum: c154ae1cbb0c2206d1501a0e94df349653c92c8cbb25236d7e85190bcaf4567a03ac6eb43166fabfa36fd35623694da7233e88d9601fbf411a9a481d85dbd2cb languageName: node linkType: hard -"koa@npm:2.15.3": - version: 2.15.3 - resolution: "koa@npm:2.15.3" +"lru-cache@npm:^6.0.0": + version: 6.0.0 + resolution: "lru-cache@npm:6.0.0" dependencies: - accepts: ^1.3.5 - cache-content-type: ^1.0.0 - content-disposition: ~0.5.2 - content-type: ^1.0.4 - cookies: ~0.9.0 - debug: ^4.3.2 - delegates: ^1.0.0 - depd: ^2.0.0 - destroy: ^1.0.4 - encodeurl: ^1.0.2 - escape-html: ^1.0.3 - fresh: ~0.5.2 - http-assert: ^1.3.0 - http-errors: ^1.6.3 - is-generator-function: ^1.0.7 - koa-compose: ^4.1.0 - koa-convert: ^2.0.0 - on-finished: ^2.3.0 - only: ~0.0.2 - parseurl: ^1.3.2 - statuses: ^1.5.0 - type-is: ^1.6.16 - vary: ^1.1.2 - checksum: 7c3537443b1a588cf5c3e5554b914ff2bad510323d22b41861d5e0c97d47e9c5997965f303ede8be8bd83d309a4eea1f82cd45d35d6838bc21bb1bb6a90d5d25 + yallist: ^4.0.0 + checksum: f97f499f898f23e4585742138a22f22526254fdba6d75d41a1c2526b3b6cc5747ef59c5612ba7375f42aca4f8461950e925ba08c991ead0651b4918b7c978297 languageName: node linkType: hard -"kuler@npm:^2.0.0": - version: 2.0.0 - resolution: "kuler@npm:2.0.0" - checksum: 9e10b5a1659f9ed8761d38df3c35effabffbd19fc6107324095238e4ef0ff044392cae9ac64a1c2dda26e532426485342226b93806bd97504b174b0dcf04ed81 +"lru-cache@npm:^7.14.0, lru-cache@npm:^7.14.1, lru-cache@npm:^7.7.1": + version: 7.18.3 + resolution: "lru-cache@npm:7.18.3" + checksum: e550d772384709deea3f141af34b6d4fa392e2e418c1498c078de0ee63670f1f46f5eee746e8ef7e69e1c895af0d4224e62ee33e66a543a14763b0f2e74c1356 languageName: node linkType: hard -"language-subtag-registry@npm:^0.3.20": - version: 0.3.23 - resolution: "language-subtag-registry@npm:0.3.23" - checksum: 0b64c1a6c5431c8df648a6d25594ff280613c886f4a1a542d9b864e5472fb93e5c7856b9c41595c38fac31370328fc79fcc521712e89ea6d6866cbb8e0995d81 +"lru-cache@npm:^9.0.0": + version: 9.1.2 + resolution: "lru-cache@npm:9.1.2" + checksum: d3415634be3908909081fc4c56371a8d562d9081eba70543d86871b978702fffd0e9e362b83921b27a29ae2b37b90f55675aad770a54ac83bb3e4de5049d4b15 languageName: node linkType: hard -"language-tags@npm:^1.0.9": - version: 1.0.9 - resolution: "language-tags@npm:1.0.9" - dependencies: - language-subtag-registry: ^0.3.20 - checksum: 57c530796dc7179914dee71bc94f3747fd694612480241d0453a063777265dfe3a951037f7acb48f456bf167d6eb419d4c00263745326b3ba1cdcf4657070e78 +"lru.min@npm:^1.0.0": + version: 1.1.1 + resolution: "lru.min@npm:1.1.1" + checksum: 26ec06c656220a240427f29c3528871b9cfb3214bd5d1bf4c5f2b2cb69402f7558c560e30055fc09bd61e4bf651c1eda2f9b1ab1b16336616fca381b7d42ecba languageName: node linkType: hard -"launch-editor@npm:^2.6.0, launch-editor@npm:^2.6.1": - version: 2.9.1 - resolution: "launch-editor@npm:2.9.1" - dependencies: - picocolors: ^1.0.0 - shell-quote: ^1.8.1 - checksum: bed887085a9729cc2ad050329d92a99f4c69bacccf96d1ed8c84670608a3a128a828ba8e9a8a41101c5aea5aea6f79984658e2fd11f6ba85e32e6e1ed16dbb1c +"lunr@npm:^2.3.9": + version: 2.3.9 + resolution: "lunr@npm:2.3.9" + checksum: 176719e24fcce7d3cf1baccce9dd5633cd8bdc1f41ebe6a180112e5ee99d80373fe2454f5d4624d437e5a8319698ca6837b9950566e15d2cae5f2a543a3db4b8 languageName: node linkType: hard -"lazystream@npm:^1.0.0": - version: 1.0.1 - resolution: "lazystream@npm:1.0.1" - dependencies: - readable-stream: ^2.0.5 - checksum: 822c54c6b87701a6491c70d4fabc4cafcf0f87d6b656af168ee7bb3c45de9128a801cb612e6eeeefc64d298a7524a698dd49b13b0121ae50c2ae305f0dcc5310 +"luxon@npm:^3.0.0, luxon@npm:^3.2.1, luxon@npm:~3.5.0": + version: 3.5.0 + resolution: "luxon@npm:3.5.0" + checksum: f290fe5788c8e51e748744f05092160d4be12150dca70f9fadc0d233e53d60ce86acd82e7d909a114730a136a77e56f0d3ebac6141bbb82fd310969a4704825b languageName: node linkType: hard -"leven@npm:3.1.0, leven@npm:^3.1.0": - version: 3.1.0 - resolution: "leven@npm:3.1.0" - checksum: 638401d534585261b6003db9d99afd244dfe82d75ddb6db5c0df412842d5ab30b2ef18de471aaec70fe69a46f17b4ae3c7f01d8a4e6580ef7adb9f4273ad1e55 +"lz-string@npm:^1.5.0": + version: 1.5.0 + resolution: "lz-string@npm:1.5.0" + bin: + lz-string: bin/bin.js + checksum: 1ee98b4580246fd90dd54da6e346fb1caefcf05f677c686d9af237a157fdea3fd7c83a4bc58f858cd5b10a34d27afe0fdcbd0505a47e0590726a873dc8b8f65d languageName: node linkType: hard -"levn@npm:^0.4.1": - version: 0.4.1 - resolution: "levn@npm:0.4.1" +"magic-string@npm:^0.30.10, magic-string@npm:^0.30.3": + version: 0.30.17 + resolution: "magic-string@npm:0.30.17" dependencies: - prelude-ls: ^1.2.1 - type-check: ~0.4.0 - checksum: 12c5021c859bd0f5248561bf139121f0358285ec545ebf48bb3d346820d5c61a4309535c7f387ed7d84361cf821e124ce346c6b7cef8ee09a67c1473b46d0fc4 + "@jridgewell/sourcemap-codec": ^1.5.0 + checksum: f4b4ed17c5ada64f77fc98491847302ebad64894a905c417c943840c0384662118c9b37f9f68bb86add159fa4749ff6f118c4627d69a470121b46731f8debc6d languageName: node linkType: hard -"levn@npm:~0.3.0": - version: 0.3.0 - resolution: "levn@npm:0.3.0" +"make-dir@npm:^3.1.0": + version: 3.1.0 + resolution: "make-dir@npm:3.1.0" dependencies: - prelude-ls: ~1.1.2 - type-check: ~0.3.2 - checksum: 0d084a524231a8246bb10fec48cdbb35282099f6954838604f3c7fc66f2e16fa66fd9cc2f3f20a541a113c4dafdf181e822c887c8a319c9195444e6c64ac395e + semver: ^6.0.0 + checksum: 484200020ab5a1fdf12f393fe5f385fc8e4378824c940fba1729dcd198ae4ff24867bc7a5646331e50cead8abff5d9270c456314386e629acec6dff4b8016b78 languageName: node linkType: hard -"lilconfig@npm:^2.0.3, lilconfig@npm:^2.0.5": - version: 2.1.0 - resolution: "lilconfig@npm:2.1.0" - checksum: 8549bb352b8192375fed4a74694cd61ad293904eee33f9d4866c2192865c44c4eb35d10782966242634e0cbc1e91fe62b1247f148dc5514918e3a966da7ea117 +"make-dir@npm:^4.0.0": + version: 4.0.0 + resolution: "make-dir@npm:4.0.0" + dependencies: + semver: ^7.5.3 + checksum: bf0731a2dd3aab4db6f3de1585cea0b746bb73eb5a02e3d8d72757e376e64e6ada190b1eddcde5b2f24a81b688a9897efd5018737d05e02e2a671dda9cff8a8a languageName: node linkType: hard -"lines-and-columns@npm:^1.1.6": - version: 1.2.4 - resolution: "lines-and-columns@npm:1.2.4" - checksum: 0c37f9f7fa212b38912b7145e1cd16a5f3cd34d782441c3e6ca653485d326f58b3caccda66efce1c5812bde4961bbde3374fae4b0d11bf1226152337f3894aa5 +"make-error@npm:^1.1.1": + version: 1.3.6 + resolution: "make-error@npm:1.3.6" + checksum: b86e5e0e25f7f777b77fabd8e2cbf15737972869d852a22b7e73c17623928fccb826d8e46b9951501d3f20e51ad74ba8c59ed584f610526a48f8ccf88aaec402 languageName: node linkType: hard -"loader-runner@npm:^4.2.0": - version: 4.3.0 - resolution: "loader-runner@npm:4.3.0" - checksum: a90e00dee9a16be118ea43fec3192d0b491fe03a32ed48a4132eb61d498f5536a03a1315531c19d284392a8726a4ecad71d82044c28d7f22ef62e029bf761569 +"make-fetch-happen@npm:^10.0.3": + version: 10.2.1 + resolution: "make-fetch-happen@npm:10.2.1" + dependencies: + agentkeepalive: ^4.2.1 + cacache: ^16.1.0 + http-cache-semantics: ^4.1.0 + http-proxy-agent: ^5.0.0 + https-proxy-agent: ^5.0.0 + is-lambda: ^1.0.1 + lru-cache: ^7.7.1 + minipass: ^3.1.6 + minipass-collect: ^1.0.2 + minipass-fetch: ^2.0.3 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + negotiator: ^0.6.3 + promise-retry: ^2.0.1 + socks-proxy-agent: ^7.0.0 + ssri: ^9.0.0 + checksum: 2332eb9a8ec96f1ffeeea56ccefabcb4193693597b132cd110734d50f2928842e22b84cfa1508e921b8385cdfd06dda9ad68645fed62b50fff629a580f5fb72c languageName: node linkType: hard -"loader-utils@npm:^1.1.0": - version: 1.4.2 - resolution: "loader-utils@npm:1.4.2" +"make-fetch-happen@npm:^13.0.0": + version: 13.0.1 + resolution: "make-fetch-happen@npm:13.0.1" dependencies: - big.js: ^5.2.2 - emojis-list: ^3.0.0 - json5: ^1.0.1 - checksum: eb6fb622efc0ffd1abdf68a2022f9eac62bef8ec599cf8adb75e94d1d338381780be6278534170e99edc03380a6d29bc7eb1563c89ce17c5fed3a0b17f1ad804 + "@npmcli/agent": ^2.0.0 + cacache: ^18.0.0 + http-cache-semantics: ^4.1.1 + is-lambda: ^1.0.1 + minipass: ^7.0.2 + minipass-fetch: ^3.0.0 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + negotiator: ^0.6.3 + proc-log: ^4.2.0 + promise-retry: ^2.0.1 + ssri: ^10.0.0 + checksum: 5c9fad695579b79488fa100da05777213dd9365222f85e4757630f8dd2a21a79ddd3206c78cfd6f9b37346819681782b67900ac847a57cf04190f52dda5343fd languageName: node linkType: hard -"loader-utils@npm:^2.0.0, loader-utils@npm:^2.0.4": - version: 2.0.4 - resolution: "loader-utils@npm:2.0.4" +"make-fetch-happen@npm:^14.0.3": + version: 14.0.3 + resolution: "make-fetch-happen@npm:14.0.3" dependencies: - big.js: ^5.2.2 - emojis-list: ^3.0.0 - json5: ^2.1.2 - checksum: a5281f5fff1eaa310ad5e1164095689443630f3411e927f95031ab4fb83b4a98f388185bb1fe949e8ab8d4247004336a625e9255c22122b815bb9a4c5d8fc3b7 + "@npmcli/agent": ^3.0.0 + cacache: ^19.0.1 + http-cache-semantics: ^4.1.1 + minipass: ^7.0.2 + minipass-fetch: ^4.0.0 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + negotiator: ^1.0.0 + proc-log: ^5.0.0 + promise-retry: ^2.0.1 + ssri: ^12.0.0 + checksum: 6fb2fee6da3d98f1953b03d315826b5c5a4ea1f908481afc113782d8027e19f080c85ae998454de4e5f27a681d3ec58d57278f0868d4e0b736f51d396b661691 languageName: node linkType: hard -"loader-utils@npm:^3.2.0": - version: 3.3.1 - resolution: "loader-utils@npm:3.3.1" - checksum: d35808e081635e5bc50228a52ed79f83e2c82bd8f7578818c12b1b4cf0b7f409d72d9b93a683ec36b9eaa93346693d3f3c8380183ba2ff81599b0829d685de39 +"makeerror@npm:1.0.12": + version: 1.0.12 + resolution: "makeerror@npm:1.0.12" + dependencies: + tmpl: 1.0.5 + checksum: b38a025a12c8146d6eeea5a7f2bf27d51d8ad6064da8ca9405fcf7bf9b54acd43e3b30ddd7abb9b1bfa4ddb266019133313482570ddb207de568f71ecfcf6060 languageName: node linkType: hard -"locate-path@npm:^2.0.0": - version: 2.0.0 - resolution: "locate-path@npm:2.0.0" +"map-age-cleaner@npm:^0.2.0": + version: 0.2.0 + resolution: "map-age-cleaner@npm:0.2.0" dependencies: - p-locate: ^2.0.0 - path-exists: ^3.0.0 - checksum: 02d581edbbbb0fa292e28d96b7de36b5b62c2fa8b5a7e82638ebb33afa74284acf022d3b1e9ae10e3ffb7658fbc49163fcd5e76e7d1baaa7801c3e05a81da755 + p-defer: ^1.0.0 + checksum: 13a6810b76b0067efa7f4b0f3dc58b58b4a4b5faa4cae5a0e8d5d59eda04d7074724eee426c9b5890a1d7e14d1e2902a090587acc8e2430198e79ab1556a2dad languageName: node linkType: hard -"locate-path@npm:^3.0.0": - version: 3.0.0 - resolution: "locate-path@npm:3.0.0" - dependencies: - p-locate: ^3.0.0 - path-exists: ^3.0.0 - checksum: 53db3996672f21f8b0bf2a2c645ae2c13ffdae1eeecfcd399a583bce8516c0b88dcb4222ca6efbbbeb6949df7e46860895be2c02e8d3219abd373ace3bfb4e11 +"map-stream@npm:~0.1.0": + version: 0.1.0 + resolution: "map-stream@npm:0.1.0" + checksum: 38abbe4eb883888031e6b2fc0630bc583c99396be16b8ace5794b937b682a8a081f03e8b15bfd4914d1bc88318f0e9ac73ba3512ae65955cd449f63256ddb31d languageName: node linkType: hard -"locate-path@npm:^5.0.0": - version: 5.0.0 - resolution: "locate-path@npm:5.0.0" - dependencies: - p-locate: ^4.1.0 - checksum: 83e51725e67517287d73e1ded92b28602e3ae5580b301fe54bfb76c0c723e3f285b19252e375712316774cf52006cb236aed5704692c32db0d5d089b69696e30 +"markdown-escape@npm:^2.0.0": + version: 2.0.0 + resolution: "markdown-escape@npm:2.0.0" + checksum: 74c66d817636ac5f6a275fdc79ecb1e208d907ca85289d660b515256fbc3e380eb18d29b6bbbd6a77968ee4fb5872d40ecf31e52bc9f17855bb01bb723569fa0 languageName: node linkType: hard -"locate-path@npm:^6.0.0": - version: 6.0.0 - resolution: "locate-path@npm:6.0.0" +"markdown-it@npm:^12.2.0": + version: 12.3.2 + resolution: "markdown-it@npm:12.3.2" dependencies: - p-locate: ^5.0.0 - checksum: 72eb661788a0368c099a184c59d2fee760b3831c9c1c33955e8a19ae4a21b4116e53fa736dc086cdeb9fce9f7cc508f2f92d2d3aae516f133e16a2bb59a39f5a + argparse: ^2.0.1 + entities: ~2.1.0 + linkify-it: ^3.0.1 + mdurl: ^1.0.1 + uc.micro: ^1.0.5 + bin: + markdown-it: bin/markdown-it.js + checksum: 890555711c1c00fa03b936ca2b213001a3b9b37dea140d8445ae4130ce16628392aad24b12e2a0a9935336ca5951f2957a38f4e5309a2e38eab44e25ff32a41e languageName: node linkType: hard -"lodash-es@npm:^4.17.21": - version: 4.17.21 - resolution: "lodash-es@npm:4.17.21" - checksum: 05cbffad6e2adbb331a4e16fbd826e7faee403a1a04873b82b42c0f22090f280839f85b95393f487c1303c8a3d2a010048bf06151a6cbe03eee4d388fb0a12d2 +"markdown-it@npm:^14.1.0": + version: 14.1.0 + resolution: "markdown-it@npm:14.1.0" + dependencies: + argparse: ^2.0.1 + entities: ^4.4.0 + linkify-it: ^5.0.0 + mdurl: ^2.0.0 + punycode.js: ^2.3.1 + uc.micro: ^2.1.0 + bin: + markdown-it: bin/markdown-it.mjs + checksum: 07296b45ebd0b13a55611a24d1b1ad002c6729ec54f558f597846994b0b7b1de79d13cd99ff3e7b6e9e027f36b63125cdcf69174da294ecabdd4e6b9fff39e5d languageName: node linkType: hard -"lodash.camelcase@npm:^4.3.0": - version: 4.3.0 - resolution: "lodash.camelcase@npm:4.3.0" - checksum: cb9227612f71b83e42de93eccf1232feeb25e705bdb19ba26c04f91e885bfd3dd5c517c4a97137658190581d3493ea3973072ca010aab7e301046d90740393d1 +"markdown-table@npm:^3.0.0": + version: 3.0.4 + resolution: "markdown-table@npm:3.0.4" + checksum: bc24b177cbb3ef170cb38c9f191476aa63f7236ebc8980317c5e91b5bf98c8fb471cf46d8920478c5e770d7f4337326f6b5b3efbf0687c2044fd332d7a64dfcb languageName: node linkType: hard -"lodash.clonedeepwith@npm:4.5.0": - version: 4.5.0 - resolution: "lodash.clonedeepwith@npm:4.5.0" - checksum: 9fbf4ebfa04b381df226a2298eba680327bea3d0d5d19c5118de7ae218fd219186e30e9fd0d33b13729f34ffbc83c1cf09cb27aff265ba94cb602b8a2b1e71c9 +"markdown-to-jsx@npm:^7.4.1": + version: 7.7.2 + resolution: "markdown-to-jsx@npm:7.7.2" + peerDependencies: + react: ">= 0.14.0" + checksum: 8ee7bed1d57fa105fe8357e0b0f703b83dc129170a1bdad6ece426d5789c614a18a8ab9e51af25cff9d6c38505ea1c011cecc1f17c85c4332f7d4951bd4ccbbf languageName: node linkType: hard -"lodash.debounce@npm:^4.0.8": - version: 4.0.8 - resolution: "lodash.debounce@npm:4.0.8" - checksum: a3f527d22c548f43ae31c861ada88b2637eb48ac6aa3eb56e82d44917971b8aa96fbb37aa60efea674dc4ee8c42074f90f7b1f772e9db375435f6c83a19b3bc6 +"marked@npm:^4.0.14": + version: 4.3.0 + resolution: "marked@npm:4.3.0" + bin: + marked: bin/marked.js + checksum: 0db6817893952c3ec710eb9ceafb8468bf5ae38cb0f92b7b083baa13d70b19774674be04db5b817681fa7c5c6a088f61300815e4dd75a59696f4716ad69f6260 languageName: node linkType: hard -"lodash.defaults@npm:^4.2.0": - version: 4.2.0 - resolution: "lodash.defaults@npm:4.2.0" - checksum: 84923258235592c8886e29de5491946ff8c2ae5c82a7ac5cddd2e3cb697e6fbdfbbb6efcca015795c86eec2bb953a5a2ee4016e3735a3f02720428a40efbb8f1 +"matcher@npm:^3.0.0": + version: 3.0.0 + resolution: "matcher@npm:3.0.0" + dependencies: + escape-string-regexp: ^4.0.0 + checksum: 8bee1a7ab7609c2c21d9c9254b6785fa708eadf289032b556d57a34e98fcd4c537659a004dafee6ce80ab157099e645c199dc52678dff1e7fb0a6684e0da4dbe languageName: node linkType: hard -"lodash.flattendeep@npm:^4.0.0": - version: 4.4.0 - resolution: "lodash.flattendeep@npm:4.4.0" - checksum: 8521c919acac3d4bcf0aaf040c1ca9cb35d6c617e2d72e9b4d51c9a58b4366622cd6077441a18be626c3f7b28227502b3bf042903d447b056ee7e0b11d45c722 +"material-ui-popup-state@npm:^1.9.3": + version: 1.9.3 + resolution: "material-ui-popup-state@npm:1.9.3" + dependencies: + "@babel/runtime": ^7.12.5 + "@material-ui/types": ^6.0.1 + classnames: ^2.2.6 + prop-types: ^15.7.2 + peerDependencies: + "@material-ui/core": ^4.0.0 || ^5.0.0-beta + react: ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 0acd73b54afec02072e9b401738eb1c8832fd90771efe9894220778cc6f6d89f60f3902fdeb109a4c037b19a26bcf5b77a60a79fcaa024ddf67224bbee466530 languageName: node linkType: hard -"lodash.groupby@npm:^4.6.0": - version: 4.6.0 - resolution: "lodash.groupby@npm:4.6.0" - checksum: e2d4d13d12790a1cacab3f5f120b7c072a792224e83b2f403218866d18efde76024b2579996dfebb230a61ce06469332e16639103669a35a605287e19ced6b9b +"math-intrinsics@npm:^1.0.0": + version: 1.1.0 + resolution: "math-intrinsics@npm:1.1.0" + checksum: 0e513b29d120f478c85a70f49da0b8b19bc638975eca466f2eeae0071f3ad00454c621bf66e16dd435896c208e719fc91ad79bbfba4e400fe0b372e7c1c9c9a2 languageName: node linkType: hard -"lodash.includes@npm:^4.3.0": - version: 4.3.0 - resolution: "lodash.includes@npm:4.3.0" - checksum: 71092c130515a67ab3bd928f57f6018434797c94def7f46aafa417771e455ce3a4834889f4267b17887d7f75297dfabd96231bf704fd2b8c5096dc4a913568b6 +"md5.js@npm:^1.3.4": + version: 1.3.5 + resolution: "md5.js@npm:1.3.5" + dependencies: + hash-base: ^3.0.0 + inherits: ^2.0.1 + safe-buffer: ^5.1.2 + checksum: 098494d885684bcc4f92294b18ba61b7bd353c23147fbc4688c75b45cb8590f5a95fd4584d742415dcc52487f7a1ef6ea611cfa1543b0dc4492fe026357f3f0c languageName: node linkType: hard -"lodash.intersection@npm:^4.4.0": - version: 4.4.0 - resolution: "lodash.intersection@npm:4.4.0" - checksum: 98935dcba1bbb981c3927e3822f6f6f344736c881df4b622e4e40ca4a125490425449e23179f46294a1b4c351de4e9a7bb60207cc6ddd65ecfd45ef727d35123 +"mdast-util-definitions@npm:^5.0.0": + version: 5.1.2 + resolution: "mdast-util-definitions@npm:5.1.2" + dependencies: + "@types/mdast": ^3.0.0 + "@types/unist": ^2.0.0 + unist-util-visit: ^4.0.0 + checksum: 2544daccab744ea1ede76045c2577ae4f1cc1b9eb1ea51ab273fe1dca8db5a8d6f50f87759c0ce6484975914b144b7f40316f805cb9c86223a78db8de0b77bae languageName: node linkType: hard -"lodash.isarguments@npm:^3.1.0": - version: 3.1.0 - resolution: "lodash.isarguments@npm:3.1.0" - checksum: ae1526f3eb5c61c77944b101b1f655f846ecbedcb9e6b073526eba6890dc0f13f09f72e11ffbf6540b602caee319af9ac363d6cdd6be41f4ee453436f04f13b5 +"mdast-util-find-and-replace@npm:^2.0.0": + version: 2.2.2 + resolution: "mdast-util-find-and-replace@npm:2.2.2" + dependencies: + "@types/mdast": ^3.0.0 + escape-string-regexp: ^5.0.0 + unist-util-is: ^5.0.0 + unist-util-visit-parents: ^5.0.0 + checksum: b4ce463c43fe6e1c38a53a89703f755c84ab5437f49bff9a0ac751279733332ca11c85ed0262aa6c17481f77b555d26ca6d64e70d6814f5b8d12d34a3e53a60b languageName: node linkType: hard -"lodash.isboolean@npm:^3.0.3": - version: 3.0.3 - resolution: "lodash.isboolean@npm:3.0.3" - checksum: b70068b4a8b8837912b54052557b21fc4774174e3512ed3c5b94621e5aff5eb6c68089d0a386b7e801d679cd105d2e35417978a5e99071750aa2ed90bffd0250 +"mdast-util-from-markdown@npm:^1.0.0": + version: 1.3.1 + resolution: "mdast-util-from-markdown@npm:1.3.1" + dependencies: + "@types/mdast": ^3.0.0 + "@types/unist": ^2.0.0 + decode-named-character-reference: ^1.0.0 + mdast-util-to-string: ^3.1.0 + micromark: ^3.0.0 + micromark-util-decode-numeric-character-reference: ^1.0.0 + micromark-util-decode-string: ^1.0.0 + micromark-util-normalize-identifier: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + unist-util-stringify-position: ^3.0.0 + uvu: ^0.5.0 + checksum: c2fac225167e248d394332a4ea39596e04cbde07d8cdb3889e91e48972c4c3462a02b39fda3855345d90231eb17a90ac6e082fb4f012a77c1d0ddfb9c7446940 languageName: node linkType: hard -"lodash.isequal@npm:^4.5.0": - version: 4.5.0 - resolution: "lodash.isequal@npm:4.5.0" - checksum: da27515dc5230eb1140ba65ff8de3613649620e8656b19a6270afe4866b7bd461d9ba2ac8a48dcc57f7adac4ee80e1de9f965d89d4d81a0ad52bb3eec2609644 +"mdast-util-gfm-autolink-literal@npm:^1.0.0": + version: 1.0.3 + resolution: "mdast-util-gfm-autolink-literal@npm:1.0.3" + dependencies: + "@types/mdast": ^3.0.0 + ccount: ^2.0.0 + mdast-util-find-and-replace: ^2.0.0 + micromark-util-character: ^1.0.0 + checksum: 1748a8727cfc533bac0c287d6e72d571d165bfa77ae0418be4828177a3ec73c02c3f2ee534d87eb75cbaffa00c0866853bbcc60ae2255babb8210f7636ec2ce2 languageName: node linkType: hard -"lodash.isinteger@npm:^4.0.4": - version: 4.0.4 - resolution: "lodash.isinteger@npm:4.0.4" - checksum: 6034821b3fc61a2ffc34e7d5644bb50c5fd8f1c0121c554c21ac271911ee0c0502274852845005f8651d51e199ee2e0cfebfe40aaa49c7fe617f603a8a0b1691 +"mdast-util-gfm-footnote@npm:^1.0.0": + version: 1.0.2 + resolution: "mdast-util-gfm-footnote@npm:1.0.2" + dependencies: + "@types/mdast": ^3.0.0 + mdast-util-to-markdown: ^1.3.0 + micromark-util-normalize-identifier: ^1.0.0 + checksum: 2d77505f9377ed7e14472ef5e6b8366c3fec2cf5f936bb36f9fbe5b97ccb7cce0464d9313c236fa86fb844206fd585db05707e4fcfb755e4fc1864194845f1f6 languageName: node linkType: hard -"lodash.isnumber@npm:^3.0.3": - version: 3.0.3 - resolution: "lodash.isnumber@npm:3.0.3" - checksum: 913784275b565346255e6ae6a6e30b760a0da70abc29f3e1f409081585875105138cda4a429ff02577e1bc0a7ae2a90e0a3079a37f3a04c3d6c5aaa532f4cab2 +"mdast-util-gfm-strikethrough@npm:^1.0.0": + version: 1.0.3 + resolution: "mdast-util-gfm-strikethrough@npm:1.0.3" + dependencies: + "@types/mdast": ^3.0.0 + mdast-util-to-markdown: ^1.3.0 + checksum: 17003340ff1bba643ec4a59fd4370fc6a32885cab2d9750a508afa7225ea71449fb05acaef60faa89c6378b8bcfbd86a9d94b05f3c6651ff27a60e3ddefc2549 languageName: node linkType: hard -"lodash.isplainobject@npm:^4.0.6": - version: 4.0.6 - resolution: "lodash.isplainobject@npm:4.0.6" - checksum: 29c6351f281e0d9a1d58f1a4c8f4400924b4c79f18dfc4613624d7d54784df07efaff97c1ff2659f3e085ecf4fff493300adc4837553104cef2634110b0d5337 +"mdast-util-gfm-table@npm:^1.0.0": + version: 1.0.7 + resolution: "mdast-util-gfm-table@npm:1.0.7" + dependencies: + "@types/mdast": ^3.0.0 + markdown-table: ^3.0.0 + mdast-util-from-markdown: ^1.0.0 + mdast-util-to-markdown: ^1.3.0 + checksum: 8b8c401bb4162e53f072a2dff8efbca880fd78d55af30601c791315ab6722cb2918176e8585792469a0c530cebb9df9b4e7fede75fdc4d83df2839e238836692 languageName: node linkType: hard -"lodash.isstring@npm:^4.0.1": - version: 4.0.1 - resolution: "lodash.isstring@npm:4.0.1" - checksum: eaac87ae9636848af08021083d796e2eea3d02e80082ab8a9955309569cb3a463ce97fd281d7dc119e402b2e7d8c54a23914b15d2fc7fff56461511dc8937ba0 +"mdast-util-gfm-task-list-item@npm:^1.0.0": + version: 1.0.2 + resolution: "mdast-util-gfm-task-list-item@npm:1.0.2" + dependencies: + "@types/mdast": ^3.0.0 + mdast-util-to-markdown: ^1.3.0 + checksum: c9b86037d6953b84f11fb2fc3aa23d5b8e14ca0dfcb0eb2fb289200e172bb9d5647bfceb4f86606dc6d935e8d58f6a458c04d3e55e87ff8513c7d4ade976200b languageName: node linkType: hard -"lodash.maxby@npm:^4.6.0": - version: 4.6.0 - resolution: "lodash.maxby@npm:4.6.0" - checksum: 2f508383545bd9450e6509f1e5f3a3f737aac25a54225fe981b1a3c80faacc6d48d047695d799f5a7db80e8fc3c600e4736573cb2e6d0365c8f929bba5e5a1dd +"mdast-util-gfm@npm:^2.0.0": + version: 2.0.2 + resolution: "mdast-util-gfm@npm:2.0.2" + dependencies: + mdast-util-from-markdown: ^1.0.0 + mdast-util-gfm-autolink-literal: ^1.0.0 + mdast-util-gfm-footnote: ^1.0.0 + mdast-util-gfm-strikethrough: ^1.0.0 + mdast-util-gfm-table: ^1.0.0 + mdast-util-gfm-task-list-item: ^1.0.0 + mdast-util-to-markdown: ^1.0.0 + checksum: 7078cb985255208bcbce94a121906417d38353c6b1a9acbe56ee8888010d3500608b5d51c16b0999ac63ca58848fb13012d55f26930ff6c6f3450f053d56514e languageName: node linkType: hard -"lodash.memoize@npm:^4.1.2": - version: 4.1.2 - resolution: "lodash.memoize@npm:4.1.2" - checksum: 9ff3942feeccffa4f1fafa88d32f0d24fdc62fd15ded5a74a5f950ff5f0c6f61916157246744c620173dddf38d37095a92327d5fd3861e2063e736a5c207d089 +"mdast-util-phrasing@npm:^3.0.0": + version: 3.0.1 + resolution: "mdast-util-phrasing@npm:3.0.1" + dependencies: + "@types/mdast": ^3.0.0 + unist-util-is: ^5.0.0 + checksum: c5b616d9b1eb76a6b351d195d94318494722525a12a89d9c8a3b091af7db3dd1fc55d294f9d29266d8159a8267b0df4a7a133bda8a3909d5331c383e1e1ff328 languageName: node linkType: hard -"lodash.merge@npm:^4.6.2": - version: 4.6.2 - resolution: "lodash.merge@npm:4.6.2" - checksum: ad580b4bdbb7ca1f7abf7e1bce63a9a0b98e370cf40194b03380a46b4ed799c9573029599caebc1b14e3f24b111aef72b96674a56cfa105e0f5ac70546cdc005 +"mdast-util-to-hast@npm:^12.1.0": + version: 12.3.0 + resolution: "mdast-util-to-hast@npm:12.3.0" + dependencies: + "@types/hast": ^2.0.0 + "@types/mdast": ^3.0.0 + mdast-util-definitions: ^5.0.0 + micromark-util-sanitize-uri: ^1.1.0 + trim-lines: ^3.0.0 + unist-util-generated: ^2.0.0 + unist-util-position: ^4.0.0 + unist-util-visit: ^4.0.0 + checksum: ea40c9f07dd0b731754434e81c913590c611b1fd753fa02550a1492aadfc30fb3adecaf62345ebb03cea2ddd250c15ab6e578fffde69c19955c9b87b10f2a9bb languageName: node linkType: hard -"lodash.omit@npm:^4.5.0": - version: 4.5.0 - resolution: "lodash.omit@npm:4.5.0" - checksum: 434645e49fe84ab315719bd5a9a3a585a0f624aa4160bc09157dd041a414bcc287c15840365c1379476a3f3eda41fbe838976c3f7bdecbbf4c5478e86c471a30 +"mdast-util-to-markdown@npm:^1.0.0, mdast-util-to-markdown@npm:^1.3.0": + version: 1.5.0 + resolution: "mdast-util-to-markdown@npm:1.5.0" + dependencies: + "@types/mdast": ^3.0.0 + "@types/unist": ^2.0.0 + longest-streak: ^3.0.0 + mdast-util-phrasing: ^3.0.0 + mdast-util-to-string: ^3.0.0 + micromark-util-decode-string: ^1.0.0 + unist-util-visit: ^4.0.0 + zwitch: ^2.0.0 + checksum: 64338eb33e49bb0aea417591fd986f72fdd39205052563bb7ce9eb9ecc160824509bfacd740086a05af355c6d5c36353aafe95cab9e6927d674478757cee6259 languageName: node linkType: hard -"lodash.once@npm:^4.0.0": - version: 4.1.1 - resolution: "lodash.once@npm:4.1.1" - checksum: d768fa9f9b4e1dc6453be99b753906f58990e0c45e7b2ca5a3b40a33111e5d17f6edf2f768786e2716af90a8e78f8f91431ab8435f761fef00f9b0c256f6d245 +"mdast-util-to-string@npm:^3.0.0, mdast-util-to-string@npm:^3.1.0": + version: 3.2.0 + resolution: "mdast-util-to-string@npm:3.2.0" + dependencies: + "@types/mdast": ^3.0.0 + checksum: dc40b544d54339878ae2c9f2b3198c029e1e07291d2126bd00ca28272ee6616d0d2194eb1c9828a7c34d412a79a7e73b26512a734698d891c710a1e73db1e848 languageName: node linkType: hard -"lodash.padend@npm:^4.6.1": - version: 4.6.1 - resolution: "lodash.padend@npm:4.6.1" - checksum: c2e6e789debf83b98f5c085305cdcfff1067e7a31bda2a110fd765d3c11a99edfbeef570d9ef737ab3212006bdb8114e77622e518c18c1fce52b8fdfd9dab685 +"mdn-data@npm:2.0.14": + version: 2.0.14 + resolution: "mdn-data@npm:2.0.14" + checksum: 9d0128ed425a89f4cba8f787dca27ad9408b5cb1b220af2d938e2a0629d17d879a34d2cb19318bdb26c3f14c77dd5dfbae67211f5caaf07b61b1f2c5c8c7dc16 languageName: node linkType: hard -"lodash.startcase@npm:^4.4.0": - version: 4.4.0 - resolution: "lodash.startcase@npm:4.4.0" - checksum: c03a4a784aca653845fe09d0ef67c902b6e49288dc45f542a4ab345a9c406a6dc194c774423fa313ee7b06283950301c1221dd2a1d8ecb2dac8dfbb9ed5606b5 +"mdurl@npm:^1.0.1": + version: 1.0.1 + resolution: "mdurl@npm:1.0.1" + checksum: 71731ecba943926bfbf9f9b51e28b5945f9411c4eda80894221b47cc105afa43ba2da820732b436f0798fd3edbbffcd1fc1415843c41a87fea08a41cc1e3d02b languageName: node linkType: hard -"lodash.topath@npm:^4.5.2": - version: 4.5.2 - resolution: "lodash.topath@npm:4.5.2" - checksum: 04583e220f4bb1c4ac0008ff8f46d9cb4ddce0ea1090085790da30a41f4cb1b904d885cb73257fca619fa825cd96f9bb97c67d039635cb76056e18f5e08bfdee +"mdurl@npm:^2.0.0": + version: 2.0.0 + resolution: "mdurl@npm:2.0.0" + checksum: 880bc289ef668df0bb34c5b2b5aaa7b6ea755052108cdaf4a5e5968ad01cf27e74927334acc9ebcc50a8628b65272ae6b1fd51fae1330c130e261c0466e1a3b2 languageName: node linkType: hard -"lodash.uniq@npm:^4.5.0": - version: 4.5.0 - resolution: "lodash.uniq@npm:4.5.0" - checksum: a4779b57a8d0f3c441af13d9afe7ecff22dd1b8ce1129849f71d9bbc8e8ee4e46dfb4b7c28f7ad3d67481edd6e51126e4e2a6ee276e25906d10f7140187c392d +"media-typer@npm:0.3.0": + version: 0.3.0 + resolution: "media-typer@npm:0.3.0" + checksum: af1b38516c28ec95d6b0826f6c8f276c58aec391f76be42aa07646b4e39d317723e869700933ca6995b056db4b09a78c92d5440dc23657e6764be5d28874bba1 languageName: node linkType: hard -"lodash@npm:4.17.21, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.17.4, lodash@npm:~4.17.15, lodash@npm:~4.17.21": - version: 4.17.21 - resolution: "lodash@npm:4.17.21" - checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 +"media-typer@npm:^1.1.0": + version: 1.1.0 + resolution: "media-typer@npm:1.1.0" + checksum: a58dd60804df73c672942a7253ccc06815612326dc1c0827984b1a21704466d7cde351394f47649e56cf7415e6ee2e26e000e81b51b3eebb5a93540e8bf93cbd languageName: node linkType: hard -"log-symbols@npm:^4.1.0": - version: 4.1.0 - resolution: "log-symbols@npm:4.1.0" +"memfs@npm:^3.1.2, memfs@npm:^3.4.1": + version: 3.5.3 + resolution: "memfs@npm:3.5.3" dependencies: - chalk: ^4.1.0 - is-unicode-supported: ^0.1.0 - checksum: fce1497b3135a0198803f9f07464165e9eb83ed02ceb2273930a6f8a508951178d8cf4f0378e9d28300a2ed2bc49050995d2bd5f53ab716bb15ac84d58c6ef74 + fs-monkey: ^1.0.4 + checksum: 18dfdeacad7c8047b976a6ccd58bc98ba76e122ad3ca0e50a21837fe2075fc0d9aafc58ab9cf2576c2b6889da1dd2503083f2364191b695273f40969db2ecc44 languageName: node linkType: hard -"log4js@npm:6.9.1": - version: 6.9.1 - resolution: "log4js@npm:6.9.1" +"memfs@npm:^4.6.0": + version: 4.15.0 + resolution: "memfs@npm:4.15.0" dependencies: - date-format: ^4.0.14 - debug: ^4.3.4 - flatted: ^3.2.7 - rfdc: ^1.3.0 - streamroller: ^3.1.5 - checksum: 59d98c37d4163138dab5d9b06ae26965d1353106fece143973d57b1003b3a482791aa21374fd2cca81a953b8837b2f9756ac225404e60cbfa4dd3ab59f082e2e + "@jsonjoy.com/json-pack": ^1.0.3 + "@jsonjoy.com/util": ^1.3.0 + tree-dump: ^1.0.1 + tslib: ^2.0.0 + checksum: c9554ede52538d8bca5dc7521cf1c2729f7258e14f8ad5483b4637fb942305845bad76ed619e811beee2c5ad0bc9ff409ef770ab3b70e0b8a8017c4c2163764a languageName: node linkType: hard -"logform@npm:^2.3.2, logform@npm:^2.6.0, logform@npm:^2.6.1": - version: 2.6.1 - resolution: "logform@npm:2.6.1" - dependencies: - "@colors/colors": 1.6.0 - "@types/triple-beam": ^1.3.2 - fecha: ^4.2.0 - ms: ^2.1.1 - safe-stable-stringify: ^2.3.1 - triple-beam: ^1.3.0 - checksum: 0c6b95fa8350ccc33c7c33d77de2a9920205399706fc1b125151c857b61eb90873f4670d9e0e58e58c165b68a363206ae670d6da8b714527c838da3c84449605 +"memjs@npm:^1.3.2": + version: 1.3.2 + resolution: "memjs@npm:1.3.2" + checksum: f92c2a43725b70af69832f807d02b87a07609a1c1f2c8c37670dff5bae6ac5f0d767cc8b3a6a59626703538f96c0bd4f03f9d00ea3b28aeb33270d24e8782233 languageName: node linkType: hard -"long-timeout@npm:0.1.1": - version: 0.1.1 - resolution: "long-timeout@npm:0.1.1" - checksum: 48668e5362cb74c4b77a6b833d59f149b9bb9e99c5a5097609807e2597cd0920613b2a42b89bd0870848298be3691064d95599a04ae010023d07dba39932afa7 +"memoize-one@npm:>=3.1.1 <6, memoize-one@npm:^5.1.1": + version: 5.2.1 + resolution: "memoize-one@npm:5.2.1" + checksum: a3cba7b824ebcf24cdfcd234aa7f86f3ad6394b8d9be4c96ff756dafb8b51c7f71320785fbc2304f1af48a0467cbbd2a409efc9333025700ed523f254cb52e3d languageName: node linkType: hard -"long@npm:^5.2.1": - version: 5.2.3 - resolution: "long@npm:5.2.3" - checksum: 885ede7c3de4facccbd2cacc6168bae3a02c3e836159ea4252c87b6e34d40af819824b2d4edce330bfb5c4d6e8ce3ec5864bdcf9473fa1f53a4f8225860e5897 +"merge-descriptors@npm:1.0.3": + version: 1.0.3 + resolution: "merge-descriptors@npm:1.0.3" + checksum: 52117adbe0313d5defa771c9993fe081e2d2df9b840597e966aadafde04ae8d0e3da46bac7ca4efc37d4d2b839436582659cd49c6a43eacb3fe3050896a105d1 languageName: node linkType: hard -"loose-envify@npm:^1.4.0": - version: 1.4.0 - resolution: "loose-envify@npm:1.4.0" - dependencies: - js-tokens: ^3.0.0 || ^4.0.0 - bin: - loose-envify: cli.js - checksum: 6517e24e0cad87ec9888f500c5b5947032cdfe6ef65e1c1936a0c48a524b81e65542c9c3edc91c97d5bddc806ee2a985dbc79be89215d613b1de5db6d1cfe6f4 +"merge-stream@npm:^2.0.0": + version: 2.0.0 + resolution: "merge-stream@npm:2.0.0" + checksum: 6fa4dcc8d86629705cea944a4b88ef4cb0e07656ebf223fa287443256414283dd25d91c1cd84c77987f2aec5927af1a9db6085757cb43d90eb170ebf4b47f4f4 languageName: node linkType: hard -"lower-case@npm:^2.0.2": - version: 2.0.2 - resolution: "lower-case@npm:2.0.2" - dependencies: - tslib: ^2.0.3 - checksum: 83a0a5f159ad7614bee8bf976b96275f3954335a84fad2696927f609ddae902802c4f3312d86668722e668bef41400254807e1d3a7f2e8c3eede79691aa1f010 +"merge2@npm:^1.3.0, merge2@npm:^1.4.1": + version: 1.4.1 + resolution: "merge2@npm:1.4.1" + checksum: 7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2 languageName: node linkType: hard -"lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0": - version: 10.4.3 - resolution: "lru-cache@npm:10.4.3" - checksum: 6476138d2125387a6d20f100608c2583d415a4f64a0fecf30c9e2dda976614f09cad4baa0842447bd37dd459a7bd27f57d9d8f8ce558805abd487c583f3d774a +"meros@npm:^1.1.4, meros@npm:^1.2.1": + version: 1.3.0 + resolution: "meros@npm:1.3.0" + peerDependencies: + "@types/node": ">=13" + peerDependenciesMeta: + "@types/node": + optional: true + checksum: ea86c83fe9357d3eb2f5bad20909e12642c7bc8c10340d9bd0968b48f69ec453de14f7e5032d138ad04cb10d79b8c9fb3c9601bb515e8fbdf9bec4eed62994ad languageName: node linkType: hard -"lru-cache@npm:^4.0.1": - version: 4.1.5 - resolution: "lru-cache@npm:4.1.5" - dependencies: - pseudomap: ^1.0.2 - yallist: ^2.1.2 - checksum: 4bb4b58a36cd7dc4dcec74cbe6a8f766a38b7426f1ff59d4cf7d82a2aa9b9565cd1cb98f6ff60ce5cd174524868d7bc9b7b1c294371851356066ca9ac4cf135a +"methods@npm:^1.0.0, methods@npm:^1.1.2, methods@npm:~1.1.2": + version: 1.1.2 + resolution: "methods@npm:1.1.2" + checksum: 0917ff4041fa8e2f2fda5425a955fe16ca411591fbd123c0d722fcf02b73971ed6f764d85f0a6f547ce49ee0221ce2c19a5fa692157931cecb422984f1dcd13a languageName: node linkType: hard -"lru-cache@npm:^5.1.1": - version: 5.1.1 - resolution: "lru-cache@npm:5.1.1" - dependencies: - yallist: ^3.0.2 - checksum: c154ae1cbb0c2206d1501a0e94df349653c92c8cbb25236d7e85190bcaf4567a03ac6eb43166fabfa36fd35623694da7233e88d9601fbf411a9a481d85dbd2cb +"micro-memoize@npm:4.1.2": + version: 4.1.2 + resolution: "micro-memoize@npm:4.1.2" + checksum: 4b02750622d44b5ab31573c629b5d91927dd0c2727743ff75e790c223ab6cd02c48cc3bddea69da0dffb688091a0a71a17944947dd165f8ba9e03728bc30a76d languageName: node linkType: hard -"lru-cache@npm:^6.0.0": - version: 6.0.0 - resolution: "lru-cache@npm:6.0.0" +"micromark-core-commonmark@npm:^1.0.0, micromark-core-commonmark@npm:^1.0.1": + version: 1.1.0 + resolution: "micromark-core-commonmark@npm:1.1.0" + dependencies: + decode-named-character-reference: ^1.0.0 + micromark-factory-destination: ^1.0.0 + micromark-factory-label: ^1.0.0 + micromark-factory-space: ^1.0.0 + micromark-factory-title: ^1.0.0 + micromark-factory-whitespace: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-chunked: ^1.0.0 + micromark-util-classify-character: ^1.0.0 + micromark-util-html-tag-name: ^1.0.0 + micromark-util-normalize-identifier: ^1.0.0 + micromark-util-resolve-all: ^1.0.0 + micromark-util-subtokenize: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.1 + uvu: ^0.5.0 + checksum: c6dfedc95889cc73411cb222fc2330b9eda6d849c09c9fd9eb3cd3398af246167e9d3cdb0ae3ce9ae59dd34a14624c8330e380255d41279ad7350cf6c6be6c5b + languageName: node + linkType: hard + +"micromark-extension-gfm-autolink-literal@npm:^1.0.0": + version: 1.0.5 + resolution: "micromark-extension-gfm-autolink-literal@npm:1.0.5" dependencies: - yallist: ^4.0.0 - checksum: f97f499f898f23e4585742138a22f22526254fdba6d75d41a1c2526b3b6cc5747ef59c5612ba7375f42aca4f8461950e925ba08c991ead0651b4918b7c978297 + micromark-util-character: ^1.0.0 + micromark-util-sanitize-uri: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: ec2f6bc4a3eb238c1b8be9744454ffbc2957e3d8a248697af5a26bb21479862300c0e40e0a92baf17c299ddf70d4bc4470d4eee112cd92322f87d81e45c2e83d languageName: node linkType: hard -"lru-cache@npm:^7.14.1, lru-cache@npm:^7.7.1": - version: 7.18.3 - resolution: "lru-cache@npm:7.18.3" - checksum: e550d772384709deea3f141af34b6d4fa392e2e418c1498c078de0ee63670f1f46f5eee746e8ef7e69e1c895af0d4224e62ee33e66a543a14763b0f2e74c1356 +"micromark-extension-gfm-footnote@npm:^1.0.0": + version: 1.1.2 + resolution: "micromark-extension-gfm-footnote@npm:1.1.2" + dependencies: + micromark-core-commonmark: ^1.0.0 + micromark-factory-space: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-normalize-identifier: ^1.0.0 + micromark-util-sanitize-uri: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + uvu: ^0.5.0 + checksum: c151a629ee1cd92363c018a50f926a002c944ac481ca72b3720b9529e9c20f1cbef98b0fefdcd2d594af37d0d9743673409cac488af0d2b194210fd16375dcb7 languageName: node linkType: hard -"lru-cache@npm:^9.0.0": - version: 9.1.2 - resolution: "lru-cache@npm:9.1.2" - checksum: d3415634be3908909081fc4c56371a8d562d9081eba70543d86871b978702fffd0e9e362b83921b27a29ae2b37b90f55675aad770a54ac83bb3e4de5049d4b15 +"micromark-extension-gfm-strikethrough@npm:^1.0.0": + version: 1.0.7 + resolution: "micromark-extension-gfm-strikethrough@npm:1.0.7" + dependencies: + micromark-util-chunked: ^1.0.0 + micromark-util-classify-character: ^1.0.0 + micromark-util-resolve-all: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + uvu: ^0.5.0 + checksum: 169e310a4408feade0df80180f60d48c5cc5b7070e5e75e0bbd914e9100273508162c4bb20b72d53081dc37f1ff5834b3afa137862576f763878552c03389811 languageName: node linkType: hard -"lru.min@npm:^1.0.0": - version: 1.1.1 - resolution: "lru.min@npm:1.1.1" - checksum: 26ec06c656220a240427f29c3528871b9cfb3214bd5d1bf4c5f2b2cb69402f7558c560e30055fc09bd61e4bf651c1eda2f9b1ab1b16336616fca381b7d42ecba +"micromark-extension-gfm-table@npm:^1.0.0": + version: 1.0.7 + resolution: "micromark-extension-gfm-table@npm:1.0.7" + dependencies: + micromark-factory-space: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + uvu: ^0.5.0 + checksum: 4853731285224e409d7e2c94c6ec849165093bff819e701221701aa7b7b34c17702c44f2f831e96b49dc27bb07e445b02b025561b68e62f5c3254415197e7af6 languageName: node linkType: hard -"luxon@npm:^3.0.0, luxon@npm:^3.2.1, luxon@npm:~3.5.0": - version: 3.5.0 - resolution: "luxon@npm:3.5.0" - checksum: f290fe5788c8e51e748744f05092160d4be12150dca70f9fadc0d233e53d60ce86acd82e7d909a114730a136a77e56f0d3ebac6141bbb82fd310969a4704825b +"micromark-extension-gfm-tagfilter@npm:^1.0.0": + version: 1.0.2 + resolution: "micromark-extension-gfm-tagfilter@npm:1.0.2" + dependencies: + micromark-util-types: ^1.0.0 + checksum: 7d2441df51f890c86f8e7cf7d331a570b69c8105fa1c2fc5b737cb739502c16c8ee01cf35550a8a78f89497c5dfacc97cf82d55de6274e8320f3aec25e2b0dd2 languageName: node linkType: hard -"magic-string@npm:^0.26.6": - version: 0.26.7 - resolution: "magic-string@npm:0.26.7" +"micromark-extension-gfm-task-list-item@npm:^1.0.0": + version: 1.0.5 + resolution: "micromark-extension-gfm-task-list-item@npm:1.0.5" dependencies: - sourcemap-codec: ^1.4.8 - checksum: 89b0d60cbb32bbf3d1e23c46ea93db082d18a8230b972027aecb10a40bba51be519ecce0674f995571e3affe917b76b09f59d8dbc9a1b2c9c4102a2b6e8a2b01 + micromark-factory-space: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + uvu: ^0.5.0 + checksum: 929f05343d272cffb8008899289f4cffe986ef98fc622ebbd1aa4ff11470e6b32ed3e1f18cd294adb69cabb961a400650078f6c12b322cc515b82b5068b31960 languageName: node linkType: hard -"magic-string@npm:^0.30.10, magic-string@npm:^0.30.3": - version: 0.30.12 - resolution: "magic-string@npm:0.30.12" +"micromark-extension-gfm@npm:^2.0.0": + version: 2.0.3 + resolution: "micromark-extension-gfm@npm:2.0.3" dependencies: - "@jridgewell/sourcemap-codec": ^1.5.0 - checksum: 3f0d23b74371765f0e6cad4284eebba0ac029c7a55e39292de5aa92281afb827138cb2323d24d2924f6b31f138c3783596c5ccaa98653fe9cf122e1f81325b59 + micromark-extension-gfm-autolink-literal: ^1.0.0 + micromark-extension-gfm-footnote: ^1.0.0 + micromark-extension-gfm-strikethrough: ^1.0.0 + micromark-extension-gfm-table: ^1.0.0 + micromark-extension-gfm-tagfilter: ^1.0.0 + micromark-extension-gfm-task-list-item: ^1.0.0 + micromark-util-combine-extensions: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: c4a917c16d7aa5d00d1767b5ce5f3b1a78c0de11dbd5c8f69d2545083568aa6bb13bd9d8e4c7fec5f4da10e7ed8344b15acffc843b33a615c17396a118bc2bc1 languageName: node linkType: hard -"make-dir@npm:^4.0.0": - version: 4.0.0 - resolution: "make-dir@npm:4.0.0" +"micromark-factory-destination@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-factory-destination@npm:1.1.0" dependencies: - semver: ^7.5.3 - checksum: bf0731a2dd3aab4db6f3de1585cea0b746bb73eb5a02e3d8d72757e376e64e6ada190b1eddcde5b2f24a81b688a9897efd5018737d05e02e2a671dda9cff8a8a + micromark-util-character: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: 9e2b5fb5fedbf622b687e20d51eb3d56ae90c0e7ecc19b37bd5285ec392c1e56f6e21aa7cfcb3c01eda88df88fe528f3acb91a5f57d7f4cba310bc3cd7f824fa languageName: node linkType: hard -"make-error@npm:^1.1.1": - version: 1.3.6 - resolution: "make-error@npm:1.3.6" - checksum: b86e5e0e25f7f777b77fabd8e2cbf15737972869d852a22b7e73c17623928fccb826d8e46b9951501d3f20e51ad74ba8c59ed584f610526a48f8ccf88aaec402 +"micromark-factory-label@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-factory-label@npm:1.1.0" + dependencies: + micromark-util-character: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + uvu: ^0.5.0 + checksum: fcda48f1287d9b148c562c627418a2ab759cdeae9c8e017910a0cba94bb759a96611e1fc6df33182e97d28fbf191475237298983bb89ef07d5b02464b1ad28d5 languageName: node linkType: hard -"make-fetch-happen@npm:^10.0.3": - version: 10.2.1 - resolution: "make-fetch-happen@npm:10.2.1" +"micromark-factory-space@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-factory-space@npm:1.1.0" dependencies: - agentkeepalive: ^4.2.1 - cacache: ^16.1.0 - http-cache-semantics: ^4.1.0 - http-proxy-agent: ^5.0.0 - https-proxy-agent: ^5.0.0 - is-lambda: ^1.0.1 - lru-cache: ^7.7.1 - minipass: ^3.1.6 - minipass-collect: ^1.0.2 - minipass-fetch: ^2.0.3 - minipass-flush: ^1.0.5 - minipass-pipeline: ^1.2.4 - negotiator: ^0.6.3 - promise-retry: ^2.0.1 - socks-proxy-agent: ^7.0.0 - ssri: ^9.0.0 - checksum: 2332eb9a8ec96f1ffeeea56ccefabcb4193693597b132cd110734d50f2928842e22b84cfa1508e921b8385cdfd06dda9ad68645fed62b50fff629a580f5fb72c + micromark-util-character: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: b58435076b998a7e244259a4694eb83c78915581206b6e7fc07b34c6abd36a1726ade63df8972fbf6c8fa38eecb9074f4e17be8d53f942e3b3d23d1a0ecaa941 languageName: node linkType: hard -"make-fetch-happen@npm:^13.0.0": - version: 13.0.1 - resolution: "make-fetch-happen@npm:13.0.1" +"micromark-factory-title@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-factory-title@npm:1.1.0" dependencies: - "@npmcli/agent": ^2.0.0 - cacache: ^18.0.0 - http-cache-semantics: ^4.1.1 - is-lambda: ^1.0.1 - minipass: ^7.0.2 - minipass-fetch: ^3.0.0 - minipass-flush: ^1.0.5 - minipass-pipeline: ^1.2.4 - negotiator: ^0.6.3 - proc-log: ^4.2.0 - promise-retry: ^2.0.1 - ssri: ^10.0.0 - checksum: 5c9fad695579b79488fa100da05777213dd9365222f85e4757630f8dd2a21a79ddd3206c78cfd6f9b37346819681782b67900ac847a57cf04190f52dda5343fd + micromark-factory-space: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: 4432d3dbc828c81f483c5901b0c6591a85d65a9e33f7d96ba7c3ae821617a0b3237ff5faf53a9152d00aaf9afb3a9f185b205590f40ed754f1d9232e0e9157b1 languageName: node linkType: hard - -"makeerror@npm:1.0.12": - version: 1.0.12 - resolution: "makeerror@npm:1.0.12" + +"micromark-factory-whitespace@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-factory-whitespace@npm:1.1.0" dependencies: - tmpl: 1.0.5 - checksum: b38a025a12c8146d6eeea5a7f2bf27d51d8ad6064da8ca9405fcf7bf9b54acd43e3b30ddd7abb9b1bfa4ddb266019133313482570ddb207de568f71ecfcf6060 + micromark-factory-space: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: ef0fa682c7d593d85a514ee329809dee27d10bc2a2b65217d8ef81173e33b8e83c549049764b1ad851adfe0a204dec5450d9d20a4ca8598f6c94533a73f73fcd languageName: node linkType: hard -"markdown-escape@npm:^2.0.0": - version: 2.0.0 - resolution: "markdown-escape@npm:2.0.0" - checksum: 74c66d817636ac5f6a275fdc79ecb1e208d907ca85289d660b515256fbc3e380eb18d29b6bbbd6a77968ee4fb5872d40ecf31e52bc9f17855bb01bb723569fa0 +"micromark-util-character@npm:^1.0.0": + version: 1.2.0 + resolution: "micromark-util-character@npm:1.2.0" + dependencies: + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: 089e79162a19b4a28731736246579ab7e9482ac93cd681c2bfca9983dcff659212ef158a66a5957e9d4b1dba957d1b87b565d85418a5b009f0294f1f07f2aaac languageName: node linkType: hard -"matcher@npm:^3.0.0": - version: 3.0.0 - resolution: "matcher@npm:3.0.0" +"micromark-util-chunked@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-chunked@npm:1.1.0" dependencies: - escape-string-regexp: ^4.0.0 - checksum: 8bee1a7ab7609c2c21d9c9254b6785fa708eadf289032b556d57a34e98fcd4c537659a004dafee6ce80ab157099e645c199dc52678dff1e7fb0a6684e0da4dbe + micromark-util-symbol: ^1.0.0 + checksum: c435bde9110cb595e3c61b7f54c2dc28ee03e6a57fa0fc1e67e498ad8bac61ee5a7457a2b6a73022ddc585676ede4b912d28dcf57eb3bd6951e54015e14dc20b languageName: node linkType: hard -"md5.js@npm:^1.3.4": - version: 1.3.5 - resolution: "md5.js@npm:1.3.5" +"micromark-util-classify-character@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-classify-character@npm:1.1.0" dependencies: - hash-base: ^3.0.0 - inherits: ^2.0.1 - safe-buffer: ^5.1.2 - checksum: 098494d885684bcc4f92294b18ba61b7bd353c23147fbc4688c75b45cb8590f5a95fd4584d742415dcc52487f7a1ef6ea611cfa1543b0dc4492fe026357f3f0c + micromark-util-character: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: 8499cb0bb1f7fb946f5896285fcca65cd742f66cd3e79ba7744792bd413ec46834f932a286de650349914d02e822946df3b55d03e6a8e1d245d1ddbd5102e5b0 languageName: node linkType: hard -"mdn-data@npm:2.0.14": - version: 2.0.14 - resolution: "mdn-data@npm:2.0.14" - checksum: 9d0128ed425a89f4cba8f787dca27ad9408b5cb1b220af2d938e2a0629d17d879a34d2cb19318bdb26c3f14c77dd5dfbae67211f5caaf07b61b1f2c5c8c7dc16 +"micromark-util-combine-extensions@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-combine-extensions@npm:1.1.0" + dependencies: + micromark-util-chunked: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: ee78464f5d4b61ccb437850cd2d7da4d690b260bca4ca7a79c4bb70291b84f83988159e373b167181b6716cb197e309bc6e6c96a68cc3ba9d50c13652774aba9 languageName: node linkType: hard -"mdn-data@npm:2.0.28": - version: 2.0.28 - resolution: "mdn-data@npm:2.0.28" - checksum: f51d587a6ebe8e426c3376c74ea6df3e19ec8241ed8e2466c9c8a3904d5d04397199ea4f15b8d34d14524b5de926d8724ae85207984be47e165817c26e49e0aa +"micromark-util-decode-numeric-character-reference@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-decode-numeric-character-reference@npm:1.1.0" + dependencies: + micromark-util-symbol: ^1.0.0 + checksum: 4733fe75146e37611243f055fc6847137b66f0cde74d080e33bd26d0408c1d6f44cabc984063eee5968b133cb46855e729d555b9ff8d744652262b7b51feec73 languageName: node linkType: hard -"mdn-data@npm:2.0.30": - version: 2.0.30 - resolution: "mdn-data@npm:2.0.30" - checksum: d6ac5ac7439a1607df44b22738ecf83f48e66a0874e4482d6424a61c52da5cde5750f1d1229b6f5fa1b80a492be89465390da685b11f97d62b8adcc6e88189aa +"micromark-util-decode-string@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-decode-string@npm:1.1.0" + dependencies: + decode-named-character-reference: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-decode-numeric-character-reference: ^1.0.0 + micromark-util-symbol: ^1.0.0 + checksum: f1625155db452f15aa472918499689ba086b9c49d1322a08b22bfbcabe918c61b230a3002c8bc3ea9b1f52ca7a9bb1c3dd43ccb548c7f5f8b16c24a1ae77a813 languageName: node linkType: hard -"media-typer@npm:0.3.0": - version: 0.3.0 - resolution: "media-typer@npm:0.3.0" - checksum: af1b38516c28ec95d6b0826f6c8f276c58aec391f76be42aa07646b4e39d317723e869700933ca6995b056db4b09a78c92d5440dc23657e6764be5d28874bba1 +"micromark-util-encode@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-encode@npm:1.1.0" + checksum: 4ef29d02b12336918cea6782fa87c8c578c67463925221d4e42183a706bde07f4b8b5f9a5e1c7ce8c73bb5a98b261acd3238fecd152e6dd1cdfa2d1ae11b60a0 languageName: node linkType: hard -"memfs@npm:^3.1.2, memfs@npm:^3.4.1, memfs@npm:^3.4.3": - version: 3.5.3 - resolution: "memfs@npm:3.5.3" - dependencies: - fs-monkey: ^1.0.4 - checksum: 18dfdeacad7c8047b976a6ccd58bc98ba76e122ad3ca0e50a21837fe2075fc0d9aafc58ab9cf2576c2b6889da1dd2503083f2364191b695273f40969db2ecc44 +"micromark-util-html-tag-name@npm:^1.0.0": + version: 1.2.0 + resolution: "micromark-util-html-tag-name@npm:1.2.0" + checksum: ccf0fa99b5c58676dc5192c74665a3bfd1b536fafaf94723bd7f31f96979d589992df6fcf2862eba290ef18e6a8efb30ec8e1e910d9f3fc74f208871e9f84750 languageName: node linkType: hard -"memfs@npm:^4.6.0": - version: 4.14.0 - resolution: "memfs@npm:4.14.0" +"micromark-util-normalize-identifier@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-normalize-identifier@npm:1.1.0" dependencies: - "@jsonjoy.com/json-pack": ^1.0.3 - "@jsonjoy.com/util": ^1.3.0 - tree-dump: ^1.0.1 - tslib: ^2.0.0 - checksum: 162e61510983488b0c524bd24191ab8be0f8a95636906ee305c10f2027e6a9f90831f42c072657aaf5fa859bb5132c5e97aa97aa96dfd959810327aec5b067c3 + micromark-util-symbol: ^1.0.0 + checksum: 8655bea41ffa4333e03fc22462cb42d631bbef9c3c07b625fd852b7eb442a110f9d2e5902a42e65188d85498279569502bf92f3434a1180fc06f7c37edfbaee2 languageName: node linkType: hard -"memjs@npm:^1.3.2": - version: 1.3.2 - resolution: "memjs@npm:1.3.2" - checksum: f92c2a43725b70af69832f807d02b87a07609a1c1f2c8c37670dff5bae6ac5f0d767cc8b3a6a59626703538f96c0bd4f03f9d00ea3b28aeb33270d24e8782233 +"micromark-util-resolve-all@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-resolve-all@npm:1.1.0" + dependencies: + micromark-util-types: ^1.0.0 + checksum: 1ce6c0237cd3ca061e76fae6602cf95014e764a91be1b9f10d36cb0f21ca88f9a07de8d49ab8101efd0b140a4fbfda6a1efb72027ab3f4d5b54c9543271dc52c languageName: node linkType: hard -"merge-descriptors@npm:1.0.3": - version: 1.0.3 - resolution: "merge-descriptors@npm:1.0.3" - checksum: 52117adbe0313d5defa771c9993fe081e2d2df9b840597e966aadafde04ae8d0e3da46bac7ca4efc37d4d2b839436582659cd49c6a43eacb3fe3050896a105d1 +"micromark-util-sanitize-uri@npm:^1.0.0, micromark-util-sanitize-uri@npm:^1.1.0": + version: 1.2.0 + resolution: "micromark-util-sanitize-uri@npm:1.2.0" + dependencies: + micromark-util-character: ^1.0.0 + micromark-util-encode: ^1.0.0 + micromark-util-symbol: ^1.0.0 + checksum: 6663f365c4fe3961d622a580f4a61e34867450697f6806f027f21cf63c92989494895fcebe2345d52e249fe58a35be56e223a9776d084c9287818b40c779acc1 languageName: node linkType: hard -"merge-stream@npm:^2.0.0": - version: 2.0.0 - resolution: "merge-stream@npm:2.0.0" - checksum: 6fa4dcc8d86629705cea944a4b88ef4cb0e07656ebf223fa287443256414283dd25d91c1cd84c77987f2aec5927af1a9db6085757cb43d90eb170ebf4b47f4f4 +"micromark-util-subtokenize@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-subtokenize@npm:1.1.0" + dependencies: + micromark-util-chunked: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + uvu: ^0.5.0 + checksum: 4a9d780c4d62910e196ea4fd886dc4079d8e424e5d625c0820016da0ed399a281daff39c50f9288045cc4bcd90ab47647e5396aba500f0853105d70dc8b1fc45 languageName: node linkType: hard -"merge2@npm:^1.3.0, merge2@npm:^1.4.1": - version: 1.4.1 - resolution: "merge2@npm:1.4.1" - checksum: 7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2 +"micromark-util-symbol@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-symbol@npm:1.1.0" + checksum: 02414a753b79f67ff3276b517eeac87913aea6c028f3e668a19ea0fc09d98aea9f93d6222a76ca783d20299af9e4b8e7c797fe516b766185dcc6e93290f11f88 languageName: node linkType: hard -"methods@npm:^1.0.0, methods@npm:^1.1.2, methods@npm:~1.1.2": - version: 1.1.2 - resolution: "methods@npm:1.1.2" - checksum: 0917ff4041fa8e2f2fda5425a955fe16ca411591fbd123c0d722fcf02b73971ed6f764d85f0a6f547ce49ee0221ce2c19a5fa692157931cecb422984f1dcd13a +"micromark-util-types@npm:^1.0.0, micromark-util-types@npm:^1.0.1": + version: 1.1.0 + resolution: "micromark-util-types@npm:1.1.0" + checksum: b0ef2b4b9589f15aec2666690477a6a185536927ceb7aa55a0f46475852e012d75a1ab945187e5c7841969a842892164b15d58ff8316b8e0d6cc920cabd5ede7 languageName: node linkType: hard -"micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": +"micromark@npm:^3.0.0": + version: 3.2.0 + resolution: "micromark@npm:3.2.0" + dependencies: + "@types/debug": ^4.0.0 + debug: ^4.0.0 + decode-named-character-reference: ^1.0.0 + micromark-core-commonmark: ^1.0.1 + micromark-factory-space: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-chunked: ^1.0.0 + micromark-util-combine-extensions: ^1.0.0 + micromark-util-decode-numeric-character-reference: ^1.0.0 + micromark-util-encode: ^1.0.0 + micromark-util-normalize-identifier: ^1.0.0 + micromark-util-resolve-all: ^1.0.0 + micromark-util-sanitize-uri: ^1.0.0 + micromark-util-subtokenize: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.1 + uvu: ^0.5.0 + checksum: 56c15851ad3eb8301aede65603473443e50c92a54849cac1dadd57e4ec33ab03a0a77f3df03de47133e6e8f695dae83b759b514586193269e98c0bf319ecd5e4 + languageName: node + linkType: hard + +"micromatch@npm:^4.0.2, 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: @@ -17567,6 +27052,13 @@ __metadata: languageName: node linkType: hard +"mimic-response@npm:^2.0.0": + version: 2.1.0 + resolution: "mimic-response@npm:2.1.0" + checksum: 014fad6ab936657e5f2f48bd87af62a8e928ebe84472aaf9e14fec4fcb31257a5edff77324d8ac13ddc6685ba5135cf16e381efac324e5f174fb4ddbf902bf07 + languageName: node + linkType: hard + "mimic-response@npm:^3.1.0": version: 3.1.0 resolution: "mimic-response@npm:3.1.0" @@ -17574,15 +27066,31 @@ __metadata: languageName: node linkType: hard +"min-indent@npm:^1.0.0": + version: 1.0.1 + resolution: "min-indent@npm:1.0.1" + checksum: bfc6dd03c5eaf623a4963ebd94d087f6f4bbbfd8c41329a7f09706b0cb66969c4ddd336abeb587bc44bc6f08e13bf90f0b374f9d71f9f01e04adc2cd6f083ef1 + languageName: node + linkType: hard + "mini-css-extract-plugin@npm:^2.4.2": - version: 2.9.1 - resolution: "mini-css-extract-plugin@npm:2.9.1" + version: 2.9.2 + resolution: "mini-css-extract-plugin@npm:2.9.2" dependencies: schema-utils: ^4.0.0 tapable: ^2.2.1 peerDependencies: webpack: ^5.0.0 - checksum: 036b0fbb207cf9a56e2f5f5dce5e35100cbd255e5b5a920a5357ec99215af16a77136020729b2d004a041d04ebb0a544b2f442535cbb982704dcd50297014c9e + checksum: 67a1f75359371a7776108999d472ae0942ccd904401e364e3a2c710d4b6fec61c4f53288594fcac35891f009e6df8825a00dfd3bfe4bcec0f862081d1f7cad50 + languageName: node + linkType: hard + +"minim@npm:~0.23.8": + version: 0.23.8 + resolution: "minim@npm:0.23.8" + dependencies: + lodash: ^4.15.0 + checksum: 98e19a431189cee4dfad766e19948fb65b3607780bda2dc3f76b7bb35f9a468f372fb1b4c4b2ebfe348191e09f2b981579967b29cf02038798efe4eab326ffca languageName: node linkType: hard @@ -17627,6 +27135,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:^7.4.3": + version: 7.4.6 + resolution: "minimatch@npm:7.4.6" + dependencies: + brace-expansion: ^2.0.1 + checksum: 1a6c8d22618df9d2a88aabeef1de5622eb7b558e9f8010be791cb6b0fa6e102d39b11c28d75b855a1e377b12edc7db8ff12a99c20353441caa6a05e78deb5da9 + languageName: node + linkType: hard + "minimatch@npm:^8.0.2": version: 8.0.4 resolution: "minimatch@npm:8.0.4" @@ -17636,7 +27153,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^9.0.0, minimatch@npm:^9.0.4": +"minimatch@npm:^9.0.0, minimatch@npm:^9.0.4, minimatch@npm:^9.0.5": version: 9.0.5 resolution: "minimatch@npm:9.0.5" dependencies: @@ -17718,6 +27235,21 @@ __metadata: languageName: node linkType: hard +"minipass-fetch@npm:^4.0.0": + version: 4.0.0 + resolution: "minipass-fetch@npm:4.0.0" + dependencies: + encoding: ^0.1.13 + minipass: ^7.0.3 + minipass-sized: ^1.0.3 + minizlib: ^3.0.1 + dependenciesMeta: + encoding: + optional: true + checksum: 7d59a31011ab9e4d1af6562dd4c4440e425b2baf4c5edbdd2e22fb25a88629e1cdceca39953ff209da504a46021df520f18fd9a519f36efae4750ff724ddadea + languageName: node + linkType: hard + "minipass-flush@npm:^1.0.5": version: 1.0.5 resolution: "minipass-flush@npm:1.0.5" @@ -17768,7 +27300,7 @@ __metadata: languageName: node linkType: hard -"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.1.2": +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4, minipass@npm:^7.1.2": version: 7.1.2 resolution: "minipass@npm:7.1.2" checksum: 2bfd325b95c555f2b4d2814d49325691c7bee937d753814861b0b49d5edcda55cbbf22b6b6a60bb91eddac8668771f03c5ff647dcd9d0f798e9548b9cdc46ee3 @@ -17785,6 +27317,16 @@ __metadata: languageName: node linkType: hard +"minizlib@npm:^3.0.1": + version: 3.0.1 + resolution: "minizlib@npm:3.0.1" + dependencies: + minipass: ^7.0.4 + rimraf: ^5.0.5 + checksum: da0a53899252380475240c587e52c824f8998d9720982ba5c4693c68e89230718884a209858c156c6e08d51aad35700a3589987e540593c36f6713fe30cd7338 + languageName: node + linkType: hard + "mkdirp-classic@npm:^0.5.2, mkdirp-classic@npm:^0.5.3": version: 0.5.3 resolution: "mkdirp-classic@npm:0.5.3" @@ -17792,7 +27334,7 @@ __metadata: languageName: node linkType: hard -"mkdirp@npm:^0.5.6": +"mkdirp@npm:^0.5.4, mkdirp@npm:^0.5.6": version: 0.5.6 resolution: "mkdirp@npm:0.5.6" dependencies: @@ -17821,6 +27363,97 @@ __metadata: languageName: node linkType: hard +"mobx-react-lite@npm:^3.4.0": + version: 3.4.3 + resolution: "mobx-react-lite@npm:3.4.3" + peerDependencies: + mobx: ^6.1.0 + react: ^16.8.0 || ^17 || ^18 + peerDependenciesMeta: + react-dom: + optional: true + react-native: + optional: true + checksum: 60a2580eb9a0b9988fc76959d7299f018733dc33cacaa73c45500953006d4d45e738d9ae39ccfc767ac19a75656dbc028d833282c848fbc67d8d18a2bcb5c262 + languageName: node + linkType: hard + +"mobx-react@npm:^7.6.0": + version: 7.6.0 + resolution: "mobx-react@npm:7.6.0" + dependencies: + mobx-react-lite: ^3.4.0 + peerDependencies: + mobx: ^6.1.0 + react: ^16.8.0 || ^17 || ^18 + peerDependenciesMeta: + react-dom: + optional: true + react-native: + optional: true + checksum: 07ce6eb297ddab2cc693df7350a3e2f730194cc6eb56bd912f80e28f9427237569e0bda6b30167154faf094e7c5e5ff360abd52acd2860d9a0d0e53320617ee8 + languageName: node + linkType: hard + +"mobx@npm:^6.9.0": + version: 6.13.5 + resolution: "mobx@npm:6.13.5" + checksum: 2a253e505900169326873b573660dab58ce8284a435c75d77775a665af9eed623c1976a5eab3cfb53561cac4713f70194f49a2b8e4111419a2e4291f51e5485a + languageName: node + linkType: hard + +"mockttp@npm:^3.13.0": + version: 3.15.5 + resolution: "mockttp@npm:3.15.5" + dependencies: + "@graphql-tools/schema": ^8.5.0 + "@graphql-tools/utils": ^8.8.0 + "@httptoolkit/httpolyglot": ^2.2.1 + "@httptoolkit/subscriptions-transport-ws": ^0.11.2 + "@httptoolkit/websocket-stream": ^6.0.1 + "@types/cors": ^2.8.6 + "@types/node": "*" + async-mutex: ^0.5.0 + base64-arraybuffer: ^0.1.5 + body-parser: ^1.15.2 + cacheable-lookup: ^6.0.0 + common-tags: ^1.8.0 + connect: ^3.7.0 + cors: ^2.8.4 + cors-gate: ^1.1.3 + cross-fetch: ^3.1.5 + destroyable-server: ^1.0.2 + express: ^4.14.0 + fast-json-patch: ^3.1.1 + graphql: ^14.0.2 || ^15.5 + graphql-http: ^1.22.0 + graphql-subscriptions: ^1.1.0 + graphql-tag: ^2.12.6 + http-encoding: ^2.0.1 + http2-wrapper: ^2.2.1 + https-proxy-agent: ^5.0.1 + isomorphic-ws: ^4.0.1 + lodash: ^4.16.4 + lru-cache: ^7.14.0 + native-duplexpair: ^1.0.0 + node-forge: ^1.2.1 + pac-proxy-agent: ^7.0.0 + parse-multipart-data: ^1.4.0 + performance-now: ^2.1.0 + portfinder: ^1.0.32 + read-tls-client-hello: ^1.0.0 + semver: ^7.5.3 + socks-proxy-agent: ^7.0.0 + typed-error: ^3.0.2 + urlpattern-polyfill: ^8.0.0 + uuid: ^8.3.2 + ws: ^8.8.0 + bin: + mockttp: dist/admin/admin-bin.js + checksum: 410d8b39cddb7975aeb2289a1735d8d65b28bf032e8b0e8990ce78ddbaa4c7c96108c54714a36a745b4784cf2bf129ddafa93a5458deacce2ca56a4adfd524e9 + languageName: node + linkType: hard + "moment@npm:^2.29.4": version: 2.30.1 resolution: "moment@npm:2.30.1" @@ -17828,6 +27461,22 @@ __metadata: languageName: node linkType: hard +"moo-color@npm:^1.0.2": + version: 1.0.3 + resolution: "moo-color@npm:1.0.3" + dependencies: + color-name: ^1.1.4 + checksum: 02bf59b6bbd5e86641bc062e2dc0843e6e579e18ef67e1c8e93bfc01945df578f20e66ce16aa9632db2aa0e16806e0914a26eb345a804f45fff1ae12a8906a29 + languageName: node + linkType: hard + +"moo@npm:^0.5.0": + version: 0.5.2 + resolution: "moo@npm:0.5.2" + checksum: 5a41ddf1059fd0feb674d917c4774e41c877f1ca980253be4d3aae1a37f4bc513f88815041243f36f5cf67a62fb39324f3f997cf7fb17b6cb00767c165e7c499 + languageName: node + linkType: hard + "morgan@npm:^1.10.0": version: 1.10.0 resolution: "morgan@npm:1.10.0" @@ -17841,7 +27490,14 @@ __metadata: languageName: node linkType: hard -"mri@npm:^1.2.0": +"mri@npm:1.1.4": + version: 1.1.4 + resolution: "mri@npm:1.1.4" + checksum: e65b9aed3b9e423ad4c11f529ab1b9280f65dce8fb476d0da236b5c570ad3322fbbcd2393180855f1474f8b0f982d76ad398766fbd47b8a5ab4069e325d0268e + languageName: node + linkType: hard + +"mri@npm:^1.1.0, mri@npm:^1.2.0": version: 1.2.0 resolution: "mri@npm:1.2.0" checksum: 83f515abbcff60150873e424894a2f65d68037e5a7fcde8a9e2b285ee9c13ac581b63cfc1e6826c4732de3aeb84902f7c1e16b7aff46cd3f897a0f757a894e85 @@ -17903,6 +27559,21 @@ __metadata: languageName: node linkType: hard +"multer@npm:^1.4.5-lts.1": + version: 1.4.5-lts.1 + resolution: "multer@npm:1.4.5-lts.1" + dependencies: + append-field: ^1.0.0 + busboy: ^1.0.0 + concat-stream: ^1.5.2 + mkdirp: ^0.5.4 + object-assign: ^4.1.1 + type-is: ^1.6.4 + xtend: ^4.0.0 + checksum: d6dfa78a6ec592b74890412f8962da8a87a3dcfe20f612e039b735b8e0faa72c735516c447f7de694ee0d981eb0a1b892fb9e2402a0348dc6091d18c38d89ecc + languageName: node + linkType: hard + "multicast-dns@npm:^7.2.5": version: 7.2.5 resolution: "multicast-dns@npm:7.2.5" @@ -17923,8 +27594,8 @@ __metadata: linkType: hard "mysql2@npm:^3.0.0": - version: 3.11.3 - resolution: "mysql2@npm:3.11.3" + version: 3.11.5 + resolution: "mysql2@npm:3.11.5" dependencies: aws-ssl-profiles: ^1.1.1 denque: ^2.1.0 @@ -17935,7 +27606,7 @@ __metadata: named-placeholders: ^1.1.3 seq-queue: ^0.0.5 sqlstring: ^2.3.2 - checksum: ae62b5b997da429a33f0762158db965d22daece0030e75ac8e822b0b342ad082fa5f1ead87d922d0ba93595e9d5491036916ef91457c762517f25f41afa6e2d9 + checksum: 19b184b5b9aafb5d0fd8a8e37f74f20b13631ad888669d6e563060f77b0293fdc80e72459b4090dbbb6307327c243c03dfe5e3760fd5b896fc4fd8f89551bc06 languageName: node linkType: hard @@ -17959,7 +27630,7 @@ __metadata: languageName: node linkType: hard -"nan@npm:^2.19.0, nan@npm:^2.20.0": +"nan@npm:^2.17.0, nan@npm:^2.19.0, nan@npm:^2.20.0": version: 2.22.0 resolution: "nan@npm:2.22.0" dependencies: @@ -17968,19 +27639,31 @@ __metadata: languageName: node linkType: hard -"nanoclone@npm:^0.2.1": - version: 0.2.1 - resolution: "nanoclone@npm:0.2.1" - checksum: 96b2954e22f70561f41e20d69856266c65583c2a441dae108f1dc71b716785d2c8038dac5f1d5e92b117aed3825f526b53139e2e5d6e6db8a77cfa35b3b8bf40 +"nano-css@npm:^5.6.2": + version: 5.6.2 + resolution: "nano-css@npm:5.6.2" + dependencies: + "@jridgewell/sourcemap-codec": ^1.4.15 + css-tree: ^1.1.2 + csstype: ^3.1.2 + fastest-stable-stringify: ^2.0.2 + inline-style-prefixer: ^7.0.1 + rtl-css-js: ^1.16.1 + stacktrace-js: ^2.0.2 + stylis: ^4.3.0 + peerDependencies: + react: "*" + react-dom: "*" + checksum: 85d5e730798387bee3090e9943801489ec4269bd376a848b75515cf0f44dc7ce53d4a9fec575081a7dff53a8a5d4b00eebdc1bbf217d75fae7195819f917aba1 languageName: node linkType: hard "nanoid@npm:^3.3.7": - version: 3.3.7 - resolution: "nanoid@npm:3.3.7" + version: 3.3.8 + resolution: "nanoid@npm:3.3.8" bin: nanoid: bin/nanoid.cjs - checksum: d36c427e530713e4ac6567d488b489a36582ef89da1d6d4e3b87eded11eb10d7042a877958c6f104929809b2ab0bafa17652b076cdf84324aa75b30b722204f2 + checksum: dfe0adbc0c77e9655b550c333075f51bb28cfc7568afbf3237249904f9c86c9aaaed1f113f0fddddba75673ee31c758c30c43d4414f014a52a7a626efc5958c9 languageName: node linkType: hard @@ -17991,6 +27674,13 @@ __metadata: languageName: node linkType: hard +"native-duplexpair@npm:^1.0.0": + version: 1.0.0 + resolution: "native-duplexpair@npm:1.0.0" + checksum: d849a8cb78c59eb12326fde2a84fedc26568b4317da46d061e7110a35961230b674a04ec2496860c2eb5f05288176c7ce0eb3a51eb0ed6b76a4263f637461f9d + languageName: node + linkType: hard + "natural-compare@npm:^1.4.0": version: 1.4.0 resolution: "natural-compare@npm:1.4.0" @@ -17998,6 +27688,38 @@ __metadata: languageName: node linkType: hard +"ndjson@npm:^2.0.0": + version: 2.0.0 + resolution: "ndjson@npm:2.0.0" + dependencies: + json-stringify-safe: ^5.0.1 + minimist: ^1.2.5 + readable-stream: ^3.6.0 + split2: ^3.0.0 + through2: ^4.0.0 + bin: + ndjson: cli.js + checksum: f847a51a2275b8a6a1bfdb24095183836b71c3085670161678c9922bc59644f04e53ced385e549a5565fdc44c28e206bd3f2199d12525028f843a86b680c4446 + languageName: node + linkType: hard + +"nearley@npm:^2.20.1": + version: 2.20.1 + resolution: "nearley@npm:2.20.1" + dependencies: + commander: ^2.19.0 + moo: ^0.5.0 + railroad-diagrams: ^1.0.0 + randexp: 0.4.6 + bin: + nearley-railroad: bin/nearley-railroad.js + nearley-test: bin/nearley-test.js + nearley-unparse: bin/nearley-unparse.js + nearleyc: bin/nearleyc.js + checksum: 42c2c330c13c7991b48221c5df00f4352c2f8851636ae4d1f8ca3c8e193fc1b7668c78011d1cad88cca4c1c4dc087425420629c19cc286d7598ec15533aaef26 + languageName: node + linkType: hard + "negotiator@npm:0.6.3": version: 0.6.3 resolution: "negotiator@npm:0.6.3" @@ -18005,13 +27727,20 @@ __metadata: languageName: node linkType: hard -"negotiator@npm:^0.6.3": +"negotiator@npm:^0.6.3, negotiator@npm:~0.6.4": version: 0.6.4 resolution: "negotiator@npm:0.6.4" checksum: 7ded10aa02a0707d1d12a9973fdb5954f98547ca7beb60e31cb3a403cc6e8f11138db7a3b0128425cf836fc85d145ec4ce983b2bdf83dca436af879c2d683510 languageName: node linkType: hard +"negotiator@npm:^1.0.0": + version: 1.0.0 + resolution: "negotiator@npm:1.0.0" + checksum: 20ebfe79b2d2e7cf9cbc8239a72662b584f71164096e6e8896c8325055497c96f6b80cd22c258e8a2f2aa382a787795ec3ee8b37b422a302c7d4381b0d5ecfbb + languageName: node + linkType: hard + "neo-async@npm:^2.6.2": version: 2.6.2 resolution: "neo-async@npm:2.6.2" @@ -18019,6 +27748,13 @@ __metadata: languageName: node linkType: hard +"neotraverse@npm:=0.6.18": + version: 0.6.18 + resolution: "neotraverse@npm:0.6.18" + checksum: 6ec0855db8d484a33672ba4533617bab4944167c881a6ab35a987bf3b92f12159eac5c19ad9cc203c193b279cc1a09f0bd7c7fb7752f9950625cbd866071ef72 + languageName: node + linkType: hard + "netmask@npm:^2.0.2": version: 2.0.2 resolution: "netmask@npm:2.0.2" @@ -18026,22 +27762,22 @@ __metadata: languageName: node linkType: hard -"nimma@npm:0.2.2": - version: 0.2.2 - resolution: "nimma@npm:0.2.2" +"nimma@npm:0.2.3": + version: 0.2.3 + resolution: "nimma@npm:0.2.3" dependencies: "@jsep-plugin/regex": ^1.0.1 "@jsep-plugin/ternary": ^1.0.2 astring: ^1.8.1 jsep: ^1.2.0 - jsonpath-plus: ^6.0.1 + jsonpath-plus: ^6.0.1 || ^10.1.0 lodash.topath: ^4.5.2 dependenciesMeta: jsonpath-plus: optional: true lodash.topath: optional: true - checksum: 09369253a962e6cdddd37c4994d414a5fa00abc955c4d91946140b45b57465749a9f05663a64812ad5ac70caacb7ca22a8fc7c8db002032d0768c83dbba7b3ad + checksum: cafa172f78fca7c0f8e7126659dd47f39bbe09d69b7ef60a7363b65d990934dd57e769afe1fac6a89affc30d47e25a725290025b13e452d3d23e7d3cdab972fb languageName: node linkType: hard @@ -18064,13 +27800,62 @@ __metadata: languageName: node linkType: hard -"node-abort-controller@npm:^3.0.1": +"node-abort-controller@npm:^3.0.1, node-abort-controller@npm:^3.1.1": version: 3.1.1 resolution: "node-abort-controller@npm:3.1.1" checksum: 2c340916af9710328b11c0828223fc65ba320e0d082214a211311bf64c2891028e42ef276b9799188c4ada9e6e1c54cf7a0b7c05dd9d59fcdc8cd633304c8047 languageName: node linkType: hard +"node-addon-api@npm:^8.2.1, node-addon-api@npm:^8.2.2, node-addon-api@npm:^8.3.0": + version: 8.3.0 + resolution: "node-addon-api@npm:8.3.0" + dependencies: + node-gyp: latest + checksum: 87fd087f0887e91c5608ac3c99e3f374403074c9cff2c335b061b0c68a183e4cd561fb9a8b0a583f0145c9b7753180b2be0c232ef01bb97796ccf4486c87958a + languageName: node + linkType: hard + +"node-cache@npm:^5.1.2": + version: 5.1.2 + resolution: "node-cache@npm:5.1.2" + dependencies: + clone: 2.x + checksum: b0bdd81a6fee4754fb984a05246b510bb35dc54721116d465899bf4229ee3287fdafb47da526900ee9924fb402ed5c7d8050049d37d8bf2d26dbafc23a2c3205 + languageName: node + linkType: hard + +"node-domexception@npm:^1.0.0": + version: 1.0.0 + resolution: "node-domexception@npm:1.0.0" + checksum: ee1d37dd2a4eb26a8a92cd6b64dfc29caec72bff5e1ed9aba80c294f57a31ba4895a60fd48347cf17dd6e766da0ae87d75657dfd1f384ebfa60462c2283f5c7f + languageName: node + linkType: hard + +"node-fetch-commonjs@npm:^3.3.2": + version: 3.3.2 + resolution: "node-fetch-commonjs@npm:3.3.2" + dependencies: + node-domexception: ^1.0.0 + web-streams-polyfill: ^3.0.3 + checksum: 7cc9bc3cba02c88ae031028c07af7f5053d1968e7f8e06931cdca51a695d66bb9fc9bca11bde31915a3e70a957b8e240c568f7ff47af5757efb5526c4389f570 + languageName: node + linkType: hard + +"node-fetch@npm:2.6.7": + version: 2.6.7 + resolution: "node-fetch@npm:2.6.7" + dependencies: + whatwg-url: ^5.0.0 + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + checksum: 8d816ffd1ee22cab8301c7756ef04f3437f18dace86a1dae22cf81db8ef29c0bf6655f3215cb0cdb22b420b6fe141e64b26905e7f33f9377a7fa59135ea3e10b + languageName: node + linkType: hard + "node-fetch@npm:^2.6.0, node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.12, node-fetch@npm:^2.6.7, node-fetch@npm:^2.6.9, node-fetch@npm:^2.7.0": version: 2.7.0 resolution: "node-fetch@npm:2.7.0" @@ -18085,13 +27870,44 @@ __metadata: languageName: node linkType: hard -"node-forge@npm:^1, node-forge@npm:^1.3.1": +"node-forge@npm:^1, node-forge@npm:^1.2.1, node-forge@npm:^1.3.1": version: 1.3.1 resolution: "node-forge@npm:1.3.1" checksum: 08fb072d3d670599c89a1704b3e9c649ff1b998256737f0e06fbd1a5bf41cae4457ccaee32d95052d80bbafd9ffe01284e078c8071f0267dc9744e51c5ed42a9 languageName: node linkType: hard +"node-gyp-build@npm:^4.8.2, node-gyp-build@npm:^4.8.4": + version: 4.8.4 + resolution: "node-gyp-build@npm:4.8.4" + bin: + node-gyp-build: bin.js + node-gyp-build-optional: optional.js + node-gyp-build-test: build-test.js + checksum: 8b81ca8ffd5fa257ad8d067896d07908a36918bc84fb04647af09d92f58310def2d2b8614d8606d129d9cd9b48890a5d2bec18abe7fcff54818f72bedd3a7d74 + languageName: node + linkType: hard + +"node-gyp@npm:^10.0.0": + version: 10.3.1 + resolution: "node-gyp@npm:10.3.1" + dependencies: + env-paths: ^2.2.0 + exponential-backoff: ^3.1.1 + glob: ^10.3.10 + graceful-fs: ^4.2.6 + make-fetch-happen: ^13.0.0 + nopt: ^7.0.0 + proc-log: ^4.1.0 + semver: ^7.3.5 + tar: ^6.2.1 + which: ^4.0.0 + bin: + node-gyp: bin/node-gyp.js + checksum: 91b0690ab504fe051ad66863226dc5ecac72b8471f85e8428e4d5ca3217d3a2adfffae48cd555e8d009a4164689fff558b88d2bc9bfd246452a3336ab308cf99 + languageName: node + linkType: hard + "node-gyp@npm:^9.0.0": version: 9.4.1 resolution: "node-gyp@npm:9.4.1" @@ -18114,22 +27930,22 @@ __metadata: linkType: hard "node-gyp@npm:latest": - version: 10.2.0 - resolution: "node-gyp@npm:10.2.0" + version: 11.0.0 + resolution: "node-gyp@npm:11.0.0" dependencies: env-paths: ^2.2.0 exponential-backoff: ^3.1.1 glob: ^10.3.10 graceful-fs: ^4.2.6 - make-fetch-happen: ^13.0.0 - nopt: ^7.0.0 - proc-log: ^4.1.0 - semver: ^7.3.5 - tar: ^6.2.1 - which: ^4.0.0 + make-fetch-happen: ^14.0.3 + nopt: ^8.0.0 + proc-log: ^5.0.0 + semver: ^7.3.5 + tar: ^7.4.3 + which: ^5.0.0 bin: node-gyp: bin/node-gyp.js - checksum: 0233759d8c19765f7fdc259a35eb046ad86c3d09e22f7384613ae2b89647dd27fcf833fdf5293d9335041e91f9b1c539494225959cdb312a5c8080b7534b926f + checksum: d7d5055ccc88177f721c7cd4f8f9440c29a0eb40e7b79dba89ef882ec957975dfc1dcb8225e79ab32481a02016eb13bbc051a913ea88d482d3cbdf2131156af4 languageName: node linkType: hard @@ -18178,10 +27994,10 @@ __metadata: languageName: node linkType: hard -"node-releases@npm:^2.0.18": - version: 2.0.18 - resolution: "node-releases@npm:2.0.18" - checksum: ef55a3d853e1269a6d6279b7692cd6ff3e40bc74947945101138745bfdc9a5edabfe72cb19a31a8e45752e1910c4c65c77d931866af6357f242b172b7283f5b3 +"node-releases@npm:^2.0.19": + version: 2.0.19 + resolution: "node-releases@npm:2.0.19" + checksum: 917dbced519f48c6289a44830a0ca6dc944c3ee9243c468ebd8515a41c97c8b2c256edb7f3f750416bc37952cc9608684e6483c7b6c6f39f6bd8d86c52cfe658 languageName: node linkType: hard @@ -18206,6 +28022,17 @@ __metadata: languageName: node linkType: hard +"nopt@npm:^5.0.0": + version: 5.0.0 + resolution: "nopt@npm:5.0.0" + dependencies: + abbrev: 1 + bin: + nopt: bin/nopt.js + checksum: d35fdec187269503843924e0114c0c6533fb54bbf1620d0f28b4b60ba01712d6687f62565c55cc20a504eff0fbe5c63e22340c3fad549ad40469ffb611b04f2f + languageName: node + linkType: hard + "nopt@npm:^6.0.0": version: 6.0.0 resolution: "nopt@npm:6.0.0" @@ -18228,6 +28055,26 @@ __metadata: languageName: node linkType: hard +"nopt@npm:^8.0.0": + version: 8.0.0 + resolution: "nopt@npm:8.0.0" + dependencies: + abbrev: ^2.0.0 + bin: + nopt: bin/nopt.js + checksum: 2cfc65e7ee38af2e04aea98f054753b0230011c0eeca4ecf131bd7d25984cbbf6f214586e0ae5dfcc2e830bc0bffa5a7fb28ea8d0b306ffd4ae8ea2d814c1ab3 + languageName: node + linkType: hard + +"normalize-path@npm:^2.1.1": + version: 2.1.1 + resolution: "normalize-path@npm:2.1.1" + dependencies: + remove-trailing-separator: ^1.0.1 + checksum: 7e9cbdcf7f5b8da7aa191fbfe33daf290cdcd8c038f422faf1b8a83c972bf7a6d94c5be34c4326cb00fb63bc0fd97d9fbcfaf2e5d6142332c2cd36d2e1b86cea + languageName: node + linkType: hard + "normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0": version: 3.0.0 resolution: "normalize-path@npm:3.0.0" @@ -18281,6 +28128,18 @@ __metadata: languageName: node linkType: hard +"npmlog@npm:^5.0.1": + version: 5.0.1 + resolution: "npmlog@npm:5.0.1" + dependencies: + are-we-there-yet: ^2.0.0 + console-control-strings: ^1.1.0 + gauge: ^3.0.0 + set-blocking: ^2.0.0 + checksum: 516b2663028761f062d13e8beb3f00069c5664925871a9b57989642ebe09f23ab02145bf3ab88da7866c4e112cafff72401f61a672c7c8a20edc585a7016ef5f + languageName: node + linkType: hard + "npmlog@npm:^6.0.0": version: 6.0.2 resolution: "npmlog@npm:6.0.2" @@ -18302,10 +28161,35 @@ __metadata: languageName: node linkType: hard -"nwsapi@npm:^2.2.2": - version: 2.2.13 - resolution: "nwsapi@npm:2.2.13" - checksum: d34fb7838517c3c7e8cc824e443275b08b57f6a025a860693d18c56ddcfd176e32df9bf0ae7f5a95c7a32981501caa1f9fda31b59f28aa72a4b9d01f573a8e6b +"nullthrows@npm:^1.0.0": + version: 1.1.1 + resolution: "nullthrows@npm:1.1.1" + checksum: 10806b92121253eb1b08ecf707d92480f5331ba8ae5b23fa3eb0548ad24196eb797ed47606153006568a5733ea9e528a3579f21421f7828e09e7756f4bdd386f + languageName: node + linkType: hard + +"nunjucks@npm:^3.2.3": + version: 3.2.4 + resolution: "nunjucks@npm:3.2.4" + dependencies: + a-sync-waterfall: ^1.0.0 + asap: ^2.0.3 + commander: ^5.1.0 + peerDependencies: + chokidar: ^3.3.0 + peerDependenciesMeta: + chokidar: + optional: true + bin: + nunjucks-precompile: bin/precompile + checksum: 8b902a9deb9ff0f5c9ebbd2c7f96dfe5800bf42bdfc91d8f829fc0440ec1f87901593e20479f5ba1bddcc9f2472b16a5e932be5863dcdec0899a27c01a03df32 + languageName: node + linkType: hard + +"nwsapi@npm:^2.2.0, nwsapi@npm:^2.2.2": + version: 2.2.16 + resolution: "nwsapi@npm:2.2.16" + checksum: 467b36a74b7b8647d53fd61d05ca7d6c73a4a5d1b94ea84f770c03150b00ef46d38076cf8e708936246ae450c42a1f21e28e153023719784dc4d1a19b1737d47 languageName: node linkType: hard @@ -18316,6 +28200,20 @@ __metadata: languageName: node linkType: hard +"oauth@npm:0.10.x": + version: 0.10.0 + resolution: "oauth@npm:0.10.0" + checksum: 68fbcd9fc382985fd6a4856245bb9f78281c08ea238e814288c51e6cfb65e442c9c4eea67d54ec595384eb3f007e7b64ae3b8e67ec309228df44aba64cc9e0c7 + languageName: node + linkType: hard + +"oauth@npm:0.9.x": + version: 0.9.15 + resolution: "oauth@npm:0.9.15" + checksum: 957c0d8d85300398dcb0e293953650c0fc3facc795bee8228238414f19f59cef5fd4ee8d17a972c142924c10c5f6ec50ef80f77f4a6cc6e3c98f9d22c027801c + languageName: node + linkType: hard + "object-assign@npm:^4, object-assign@npm:^4.0.1, object-assign@npm:^4.1.1": version: 4.1.1 resolution: "object-assign@npm:4.1.1" @@ -18330,10 +28228,27 @@ __metadata: languageName: node linkType: hard -"object-inspect@npm:^1.13.1": - version: 1.13.2 - resolution: "object-inspect@npm:1.13.2" - checksum: 9f850b3c045db60e0e97746e809ee4090d6ce62195af17dd1e9438ac761394a7d8ec4f7906559aea5424eaf61e35d3e53feded2ccd5f62fcc7d9670d3c8eb353 +"object-hash@npm:^3.0.0": + version: 3.0.0 + resolution: "object-hash@npm:3.0.0" + checksum: 80b4904bb3857c52cc1bfd0b52c0352532ca12ed3b8a6ff06a90cd209dfda1b95cee059a7625eb9da29537027f68ac4619363491eedb2f5d3dddbba97494fd6c + languageName: node + linkType: hard + +"object-inspect@npm:^1.13.3": + version: 1.13.3 + resolution: "object-inspect@npm:1.13.3" + checksum: 8c962102117241e18ea403b84d2521f78291b774b03a29ee80a9863621d88265ffd11d0d7e435c4c2cea0dc2a2fbf8bbc92255737a05536590f2df2e8756f297 + languageName: node + linkType: hard + +"object-is@npm:^1.1.5": + version: 1.1.6 + resolution: "object-is@npm:1.1.6" + dependencies: + call-bind: ^1.0.7 + define-properties: ^1.2.1 + checksum: 3ea22759967e6f2380a2cbbd0f737b42dc9ddb2dfefdb159a1b927fea57335e1b058b564bfa94417db8ad58cddab33621a035de6f5e5ad56d89f2dd03e66c6a1 languageName: node linkType: hard @@ -18345,14 +28260,16 @@ __metadata: linkType: hard "object.assign@npm:^4.1.4, object.assign@npm:^4.1.5": - version: 4.1.5 - resolution: "object.assign@npm:4.1.5" + version: 4.1.7 + resolution: "object.assign@npm:4.1.7" dependencies: - call-bind: ^1.0.5 + call-bind: ^1.0.8 + call-bound: ^1.0.3 define-properties: ^1.2.1 - has-symbols: ^1.0.3 + es-object-atoms: ^1.0.0 + has-symbols: ^1.1.0 object-keys: ^1.1.1 - checksum: f9aeac0541661370a1fc86e6a8065eb1668d3e771f7dbb33ee54578201336c057b21ee61207a186dd42db0c62201d91aac703d20d12a79fc79c353eed44d4e25 + checksum: 60e07d2651cf4f5528c485f1aa4dbded9b384c47d80e8187cefd11320abb1aebebf78df5483451dfa549059f8281c21f7b4bf7d19e9e5e97d8d617df0df298de languageName: node linkType: hard @@ -18391,13 +28308,14 @@ __metadata: linkType: hard "object.values@npm:^1.1.6, object.values@npm:^1.2.0": - version: 1.2.0 - resolution: "object.values@npm:1.2.0" + version: 1.2.1 + resolution: "object.values@npm:1.2.1" dependencies: - call-bind: ^1.0.7 + call-bind: ^1.0.8 + call-bound: ^1.0.3 define-properties: ^1.2.1 es-object-atoms: ^1.0.0 - checksum: 51fef456c2a544275cb1766897f34ded968b22adfc13ba13b5e4815fdaf4304a90d42a3aee114b1f1ede048a4890381d47a5594d84296f2767c6a0364b9da8fa + checksum: f9b9a2a125ccf8ded29414d7c056ae0d187b833ee74919821fc60d7e216626db220d9cb3cf33f965c84aaaa96133626ca13b80f3c158b673976dc8cfcfcd26bb languageName: node linkType: hard @@ -18408,6 +28326,33 @@ __metadata: languageName: node linkType: hard +"octokit-plugin-create-pull-request@npm:^5.0.0": + version: 5.1.1 + resolution: "octokit-plugin-create-pull-request@npm:5.1.1" + dependencies: + "@octokit/types": ^8.0.0 + checksum: bed96700c795868d1fc6a95d41c87b98c370d84421125b561c6b8632bb85bbb399a9fa6d35abb2c3d342e42f8b10032afb195470cac9b640161064b68d276d9e + languageName: node + linkType: hard + +"octokit@npm:^3.0.0": + version: 3.2.1 + resolution: "octokit@npm:3.2.1" + dependencies: + "@octokit/app": ^14.0.2 + "@octokit/core": ^5.0.0 + "@octokit/oauth-app": ^6.0.0 + "@octokit/plugin-paginate-graphql": ^4.0.0 + "@octokit/plugin-paginate-rest": 11.3.1 + "@octokit/plugin-rest-endpoint-methods": 13.2.2 + "@octokit/plugin-retry": ^6.0.0 + "@octokit/plugin-throttling": ^8.0.0 + "@octokit/request-error": ^5.0.0 + "@octokit/types": ^13.0.0 + checksum: e5608f848fb11808d0c977d946c24bffa622179daf8566c4941f6050551d368aa750b362a95aea14647facd0919e4af392c67b2409f8642dc9f27c7b6c0f964e + languageName: node + linkType: hard + "oidc-token-hash@npm:^5.0.3": version: 5.0.3 resolution: "oidc-token-hash@npm:5.0.3" @@ -18474,6 +28419,15 @@ __metadata: languageName: node linkType: hard +"ono@npm:^7.1.3": + version: 7.1.3 + resolution: "ono@npm:7.1.3" + dependencies: + "@jsdevtools/ono": 7.1.3 + checksum: d341681f1bdd08071760a8d92d37e0e5fb483c6f5c510543a17896c8ee7bdd399a375c632d39f9c78bd2aeab4e5e2eaae9ae0ab71c9738276ba8459c18ce41c4 + languageName: node + linkType: hard + "open@npm:^10.0.3": version: 10.1.0 resolution: "open@npm:10.1.0" @@ -18486,7 +28440,7 @@ __metadata: languageName: node linkType: hard -"open@npm:^8.0.0, open@npm:^8.0.9, open@npm:^8.4.0": +"open@npm:^8.0.0, open@npm:^8.4.0": version: 8.4.2 resolution: "open@npm:8.4.2" dependencies: @@ -18497,6 +28451,46 @@ __metadata: languageName: node linkType: hard +"openapi-merge@npm:^1.3.2": + version: 1.3.3 + resolution: "openapi-merge@npm:1.3.3" + dependencies: + atlassian-openapi: ^1.0.8 + lodash: ^4.17.15 + ts-is-present: ^1.1.1 + checksum: d23ed060facb72f52088cf59bf10abbd36e169bf727c634582904ab0cddfa697b2af0d0e720d908154c2966b80344a8d59811827582949e1e9ffd2acdbc70537 + languageName: node + linkType: hard + +"openapi-path-templating@npm:^1.5.1": + version: 1.7.0 + resolution: "openapi-path-templating@npm:1.7.0" + dependencies: + apg-lite: ^1.0.4 + checksum: 4a473f88e922f1ce4c17c3d1d7f7969deed7eaad038df325d30591163f9a7a592a3322bb298d9e0762f262a7a4e32d3a7b81409b90558fb5bc7f2202ecc8d433 + languageName: node + linkType: hard + +"openapi-sampler@npm:^1.2.1": + version: 1.6.1 + resolution: "openapi-sampler@npm:1.6.1" + dependencies: + "@types/json-schema": ^7.0.7 + fast-xml-parser: ^4.5.0 + json-pointer: 0.6.2 + checksum: 142b7ede3eefaaf0c43905dddd12494f107c078169e578c48742882d4ab2e732908d9be4a0ac9fa856d2aa7ed054c25b6bf1a69bc0ae4777e5e0dc3f729f0334 + languageName: node + linkType: hard + +"openapi-server-url-templating@npm:^1.0.0": + version: 1.2.0 + resolution: "openapi-server-url-templating@npm:1.2.0" + dependencies: + apg-lite: ^1.0.4 + checksum: 2b2406acf7adf836304f934289fb45a8464f60a6affb89466a64cb24907f24eaf9badd488b2a7db94abe2f7c6a303f058238079387e7e6fd5c398341a6ac0656 + languageName: node + linkType: hard + "openapi-types@npm:^12.0.2": version: 12.1.3 resolution: "openapi-types@npm:12.1.3" @@ -18504,15 +28498,24 @@ __metadata: languageName: node linkType: hard -"openid-client@npm:^5.3.0": - version: 5.7.0 - resolution: "openid-client@npm:5.7.0" +"openapi3-ts@npm:^3.1.2": + version: 3.2.0 + resolution: "openapi3-ts@npm:3.2.0" + dependencies: + yaml: ^2.2.1 + checksum: 8796a29a1363bc892ba1acb3ddffd9e6b80e8f83cbfad4cd507262e957317139cac2528ab4b14c1b30bf350ebc9cc4c43ad32a89da4d7c4b85f7e815ffba3ebe + languageName: node + linkType: hard + +"openid-client@npm:^5.2.1, openid-client@npm:^5.3.0, openid-client@npm:^5.5.0": + version: 5.7.1 + resolution: "openid-client@npm:5.7.1" dependencies: jose: ^4.15.9 lru-cache: ^6.0.0 object-hash: ^2.2.0 oidc-token-hash: ^5.0.3 - checksum: 63fc76918fc12f3d6e1456a0b170f417defccf6820acb4581ffc226cb8c9a18d50f76f0982d7a00cce2896c732eb2a6361ad6ea04b127b2603e56408b680ef9c + checksum: 497aad2c8a022cef112ade19ed88fba6c8ca0e79607ebe5efdcf75c4095d7924ca479085c1c94f689f6dbc9442c61aab3c2443eb347bcbc6ef51df68827c7c47 languageName: node linkType: hard @@ -18598,6 +28601,13 @@ __metadata: languageName: node linkType: hard +"p-defer@npm:^1.0.0": + version: 1.0.0 + resolution: "p-defer@npm:1.0.0" + checksum: 4271b935c27987e7b6f229e5de4cdd335d808465604644cb7b4c4c95bef266735859a93b16415af8a41fd663ee9e3b97a1a2023ca9def613dba1bad2a0da0c7b + languageName: node + linkType: hard + "p-filter@npm:^2.1.0": version: 2.1.0 resolution: "p-filter@npm:2.1.0" @@ -18614,12 +28624,12 @@ __metadata: languageName: node linkType: hard -"p-limit@npm:^1.1.0": - version: 1.3.0 - resolution: "p-limit@npm:1.3.0" +"p-limit@npm:3.1.0, p-limit@npm:^3.0.1, p-limit@npm:^3.0.2, p-limit@npm:^3.1.0": + version: 3.1.0 + resolution: "p-limit@npm:3.1.0" dependencies: - p-try: ^1.0.0 - checksum: 281c1c0b8c82e1ac9f81acd72a2e35d402bf572e09721ce5520164e9de07d8274451378a3470707179ad13240535558f4b277f02405ad752e08c7d5b0d54fbfd + yocto-queue: ^0.1.0 + checksum: 7c3690c4dbf62ef625671e20b7bdf1cbc9534e83352a2780f165b0d3ceba21907e77ad63401708145ca4e25bfc51636588d89a8c0aeb715e6c37d1c066430360 languageName: node linkType: hard @@ -18632,24 +28642,6 @@ __metadata: languageName: node linkType: hard -"p-limit@npm:^3.0.1, p-limit@npm:^3.0.2, p-limit@npm:^3.1.0": - version: 3.1.0 - resolution: "p-limit@npm:3.1.0" - dependencies: - yocto-queue: ^0.1.0 - checksum: 7c3690c4dbf62ef625671e20b7bdf1cbc9534e83352a2780f165b0d3ceba21907e77ad63401708145ca4e25bfc51636588d89a8c0aeb715e6c37d1c066430360 - languageName: node - linkType: hard - -"p-locate@npm:^2.0.0": - version: 2.0.0 - resolution: "p-locate@npm:2.0.0" - dependencies: - p-limit: ^1.1.0 - checksum: e2dceb9b49b96d5513d90f715780f6f4972f46987dc32a0e18bc6c3fc74a1a5d73ec5f81b1398af5e58b99ea1ad03fd41e9181c01fa81b4af2833958696e3081 - languageName: node - linkType: hard - "p-locate@npm:^3.0.0": version: 3.0.0 resolution: "p-locate@npm:3.0.0" @@ -18693,6 +28685,13 @@ __metadata: languageName: node linkType: hard +"p-map@npm:^7.0.2": + version: 7.0.3 + resolution: "p-map@npm:7.0.3" + checksum: 8c92d533acf82f0d12f7e196edccff773f384098bbb048acdd55a08778ce4fc8889d8f1bde72969487bd96f9c63212698d79744c20bedfce36c5b00b46d369f8 + languageName: node + linkType: hard + "p-queue@npm:^6.6.2": version: 6.6.2 resolution: "p-queue@npm:6.6.2" @@ -18703,24 +28702,21 @@ __metadata: languageName: node linkType: hard -"p-retry@npm:^4.5.0": - version: 4.6.2 - resolution: "p-retry@npm:4.6.2" - dependencies: - "@types/retry": 0.12.0 - retry: ^0.13.1 - checksum: 45c270bfddaffb4a895cea16cb760dcc72bdecb6cb45fef1971fa6ea2e91ddeafddefe01e444ac73e33b1b3d5d29fb0dd18a7effb294262437221ddc03ce0f2e - languageName: node - linkType: hard - "p-retry@npm:^6.2.0": - version: 6.2.0 - resolution: "p-retry@npm:6.2.0" + version: 6.2.1 + resolution: "p-retry@npm:6.2.1" dependencies: "@types/retry": 0.12.2 is-network-error: ^1.0.0 retry: ^0.13.1 - checksum: 6003573c559ee812329c9c3ede7ba12a783fdc8dd70602116646e850c920b4597dc502fe001c3f9526fca4e93275045db7a27341c458e51db179c1374a01ac44 + checksum: 73acd269544b1359b7f2aa5f907f6f8cd4947c596bc43cc25fecce2678e2f190095179407eb874f0e09fc5956ae7952c39ebb08c3d9334f59d41ae0b2d73ee6b + languageName: node + linkType: hard + +"p-throttle@npm:^4.1.1": + version: 4.1.1 + resolution: "p-throttle@npm:4.1.1" + checksum: fe8709f3c3b1da7c033479375c2c302e80c1a5d86449013afa7cd46d1dc210bc824a7e4a9d088e66d31987d00878c2b5491bb2fe76246d4d2fc9a1636f5f8298 languageName: node linkType: hard @@ -18733,13 +28729,6 @@ __metadata: languageName: node linkType: hard -"p-try@npm:^1.0.0": - version: 1.0.0 - resolution: "p-try@npm:1.0.0" - checksum: 3b5303f77eb7722144154288bfd96f799f8ff3e2b2b39330efe38db5dd359e4fb27012464cd85cb0a76e9b7edd1b443568cb3192c22e7cffc34989df0bafd605 - languageName: node - linkType: hard - "p-try@npm:^2.0.0": version: 2.2.0 resolution: "p-try@npm:2.2.0" @@ -18747,19 +28736,19 @@ __metadata: languageName: node linkType: hard -"pac-proxy-agent@npm:^7.0.1": - version: 7.0.2 - resolution: "pac-proxy-agent@npm:7.0.2" +"pac-proxy-agent@npm:^7.0.0, pac-proxy-agent@npm:^7.0.1": + version: 7.1.0 + resolution: "pac-proxy-agent@npm:7.1.0" dependencies: "@tootallnate/quickjs-emscripten": ^0.23.0 - agent-base: ^7.0.2 + agent-base: ^7.1.2 debug: ^4.3.4 get-uri: ^6.0.1 http-proxy-agent: ^7.0.0 - https-proxy-agent: ^7.0.5 + https-proxy-agent: ^7.0.6 pac-resolver: ^7.0.1 - socks-proxy-agent: ^8.0.4 - checksum: 82772aaa489a4ad6f598b75d56daf609e7ba294a05a91cfe3101b004e2df494f0a269c98452cb47aaa4a513428e248308a156e26fee67eb78a76a58e9346921e + socks-proxy-agent: ^8.0.5 + checksum: 0ed8ebca239b5c78f7c5039ec0e33aaf6ce8de2fb53d00996b5b7b362e655af9793721008ddf56c4b1d30fb5202b2cb5baee97e374ed1285c0cfb5be7c4574a5 languageName: node linkType: hard @@ -18781,13 +28770,13 @@ __metadata: linkType: hard "package-manager-detector@npm:^0.2.0": - version: 0.2.2 - resolution: "package-manager-detector@npm:0.2.2" - checksum: acc0d5a8b6b2a265474c1bac2b3569b6e57fe13db4d764b75cf5fcd11463a44f0ce00bb5dc439a78a1999993780385f431d36ceea51b51a35ce40d512b7388c6 + version: 0.2.7 + resolution: "package-manager-detector@npm:0.2.7" + checksum: 8dc58fb1fe9ba29a2750ecccde41c02357df8cefe5dcacf4a61bedcfab746d3589545a1703e7f1d1ade2611bd646f47f1c4cbc002d7507fc6f7d34b015fcecfc languageName: node linkType: hard -"pako@npm:^1.0.10, pako@npm:~1.0.5": +"pako@npm:^1.0.10, pako@npm:~1.0.2, pako@npm:~1.0.5": version: 1.0.11 resolution: "pako@npm:1.0.11" checksum: 1be2bfa1f807608c7538afa15d6f25baa523c30ec870a3228a89579e474a4d992f4293859524e46d5d87fd30fa17c5edf34dbef0671251d9749820b488660b16 @@ -18827,77 +28816,216 @@ __metadata: languageName: node linkType: hard -"parse-json@npm:^5.0.0, parse-json@npm:^5.2.0": - version: 5.2.0 - resolution: "parse-json@npm:5.2.0" +"parse-entities@npm:^2.0.0": + version: 2.0.0 + resolution: "parse-entities@npm:2.0.0" + dependencies: + character-entities: ^1.0.0 + character-entities-legacy: ^1.0.0 + character-reference-invalid: ^1.0.0 + is-alphanumerical: ^1.0.0 + is-decimal: ^1.0.0 + is-hexadecimal: ^1.0.0 + checksum: 7addfd3e7d747521afac33c8121a5f23043c6973809756920d37e806639b4898385d386fcf4b3c8e2ecf1bc28aac5ae97df0b112d5042034efbe80f44081ebce + languageName: node + linkType: hard + +"parse-json@npm:^5.0.0, parse-json@npm:^5.2.0": + version: 5.2.0 + resolution: "parse-json@npm:5.2.0" + dependencies: + "@babel/code-frame": ^7.0.0 + error-ex: ^1.3.1 + json-parse-even-better-errors: ^2.3.0 + lines-and-columns: ^1.1.6 + checksum: 62085b17d64da57f40f6afc2ac1f4d95def18c4323577e1eced571db75d9ab59b297d1d10582920f84b15985cbfc6b6d450ccbf317644cfa176f3ed982ad87e2 + languageName: node + linkType: hard + +"parse-ms@npm:^4.0.0": + version: 4.0.0 + resolution: "parse-ms@npm:4.0.0" + checksum: 673c801d9f957ff79962d71ed5a24850163f4181a90dd30c4e3666b3a804f53b77f1f0556792e8b2adbb5d58757907d1aa51d7d7dc75997c2a56d72937cbc8b7 + languageName: node + linkType: hard + +"parse-multipart-data@npm:^1.4.0": + version: 1.5.0 + resolution: "parse-multipart-data@npm:1.5.0" + checksum: a385fb6609a7b393ee7e82042d5f923beaa7fb7d81d430db560869b719574f62f39a30e77fd711fbfa6fe3e212a8e6f81fd2126a80876a3c13dc1ae975eb5d91 + languageName: node + linkType: hard + +"parse-passwd@npm:^1.0.0": + version: 1.0.0 + resolution: "parse-passwd@npm:1.0.0" + checksum: 4e55e0231d58f828a41d0f1da2bf2ff7bcef8f4cb6146e69d16ce499190de58b06199e6bd9b17fbf0d4d8aef9052099cdf8c4f13a6294b1a522e8e958073066e + languageName: node + linkType: hard + +"parse-path@npm:^7.0.0": + version: 7.0.0 + resolution: "parse-path@npm:7.0.0" + dependencies: + protocols: ^2.0.0 + checksum: 244b46523a58181d251dda9b888efde35d8afb957436598d948852f416d8c76ddb4f2010f9fc94218b4be3e5c0f716aa0d2026194a781e3b8981924142009302 + languageName: node + linkType: hard + +"parse-url@npm:^8.1.0": + version: 8.1.0 + resolution: "parse-url@npm:8.1.0" + dependencies: + parse-path: ^7.0.0 + checksum: b93e21ab4c93c7d7317df23507b41be7697694d4c94f49ed5c8d6288b01cba328fcef5ba388e147948eac20453dee0df9a67ab2012415189fff85973bdffe8d9 + languageName: node + linkType: hard + +"parse5@npm:6.0.1": + version: 6.0.1 + resolution: "parse5@npm:6.0.1" + checksum: 7d569a176c5460897f7c8f3377eff640d54132b9be51ae8a8fa4979af940830b2b0c296ce75e5bd8f4041520aadde13170dbdec44889975f906098ea0002f4bd + languageName: node + linkType: hard + +"parse5@npm:^7.0.0, parse5@npm:^7.1.1": + version: 7.2.1 + resolution: "parse5@npm:7.2.1" + dependencies: + entities: ^4.5.0 + checksum: 11253cf8aa2e7fc41c004c64cba6f2c255f809663365db65bd7ad0e8cf7b89e436a563c20059346371cc543a6c1b567032088883ca6a2cbc88276c666b68236d + languageName: node + linkType: hard + +"parseurl@npm:^1.3.2, parseurl@npm:~1.3.2, parseurl@npm:~1.3.3": + version: 1.3.3 + resolution: "parseurl@npm:1.3.3" + checksum: 407cee8e0a3a4c5cd472559bca8b6a45b82c124e9a4703302326e9ab60fc1081442ada4e02628efef1eb16197ddc7f8822f5a91fd7d7c86b51f530aedb17dfa2 + languageName: node + linkType: hard + +"pascal-case@npm:^3.1.2": + version: 3.1.2 + resolution: "pascal-case@npm:3.1.2" + dependencies: + no-case: ^3.0.4 + tslib: ^2.0.3 + checksum: ba98bfd595fc91ef3d30f4243b1aee2f6ec41c53b4546bfa3039487c367abaa182471dcfc830a1f9e1a0df00c14a370514fa2b3a1aacc68b15a460c31116873e + languageName: node + linkType: hard + +"passport-atlassian-oauth2@npm:^2.1.0": + version: 2.1.0 + resolution: "passport-atlassian-oauth2@npm:2.1.0" + dependencies: + passport-oauth2: ^1.4.0 + checksum: fc1d46951018d03a792a469a0c856d16f4c21df13d743aa5a0111f60253588c042881c560c737c77d85f4751e42b9ad3a485db7a5d5ea39e0f76160bc4010182 + languageName: node + linkType: hard + +"passport-auth0@npm:^1.4.3": + version: 1.4.4 + resolution: "passport-auth0@npm:1.4.4" + dependencies: + axios: ^1.6.0 + passport-oauth: ^1.0.0 + passport-oauth2: ^1.6.0 + checksum: 537c2a9d60fd3e8663cc5686bb34808412bccefaed8fa99c782f5e24fc2e103ddb14db1a8fdea38a89bd2eaa797d6f6a9c2d0309d83617dde9466ab1de4cf36b + languageName: node + linkType: hard + +"passport-bitbucket-oauth2@npm:^0.1.2": + version: 0.1.2 + resolution: "passport-bitbucket-oauth2@npm:0.1.2" + dependencies: + passport-oauth2: ^1.1.2 + pkginfo: 0.2.x + checksum: eef3db0967d8d4e6d5363dab5b188ff0ad32d333cfa246c1c3a4e796e62e225297a01f21ad0e1d42c4b2d635c119909d7bb0f22c686fc2c87b9f3d9796895721 + languageName: node + linkType: hard + +"passport-github2@npm:^0.1.12": + version: 0.1.12 + resolution: "passport-github2@npm:0.1.12" dependencies: - "@babel/code-frame": ^7.0.0 - error-ex: ^1.3.1 - json-parse-even-better-errors: ^2.3.0 - lines-and-columns: ^1.1.6 - checksum: 62085b17d64da57f40f6afc2ac1f4d95def18c4323577e1eced571db75d9ab59b297d1d10582920f84b15985cbfc6b6d450ccbf317644cfa176f3ed982ad87e2 + passport-oauth2: 1.x.x + checksum: 2d33c1bdd808c617a5faef51f6079f8775a4dbb8864b2be073e5e043ed2b7e8f9addd66a5844c7604f26be99a5899ae6cd9f8adac85999714b2a19649aef2b35 languageName: node linkType: hard -"parse-ms@npm:^4.0.0": - version: 4.0.0 - resolution: "parse-ms@npm:4.0.0" - checksum: 673c801d9f957ff79962d71ed5a24850163f4181a90dd30c4e3666b3a804f53b77f1f0556792e8b2adbb5d58757907d1aa51d7d7dc75997c2a56d72937cbc8b7 +"passport-gitlab2@npm:^5.0.0": + version: 5.0.0 + resolution: "passport-gitlab2@npm:5.0.0" + dependencies: + passport-oauth2: ^1.4.0 + checksum: 06e105e994d7241712c05cd6182d06fbbef3f7ea919bdda532f90102fa5290d918648b0ed8d20729aff4c2497cd874fc3726166a338e413373b3b9e4a3b79e7b languageName: node linkType: hard -"parse-passwd@npm:^1.0.0": - version: 1.0.0 - resolution: "parse-passwd@npm:1.0.0" - checksum: 4e55e0231d58f828a41d0f1da2bf2ff7bcef8f4cb6146e69d16ce499190de58b06199e6bd9b17fbf0d4d8aef9052099cdf8c4f13a6294b1a522e8e958073066e +"passport-google-oauth20@npm:^2.0.0": + version: 2.0.0 + resolution: "passport-google-oauth20@npm:2.0.0" + dependencies: + passport-oauth2: 1.x.x + checksum: 1d34f4c2da059504b6a3c149b261b9063d0390c84d500fa314b3895d599d7f96ce9750e48a5b715df92fba57ef4ecb5e66d3ce99ded5cc9b17d201a06ba8701e languageName: node linkType: hard -"parse-path@npm:^7.0.0": - version: 7.0.0 - resolution: "parse-path@npm:7.0.0" +"passport-microsoft@npm:^1.0.0": + version: 1.1.0 + resolution: "passport-microsoft@npm:1.1.0" dependencies: - protocols: ^2.0.0 - checksum: 244b46523a58181d251dda9b888efde35d8afb957436598d948852f416d8c76ddb4f2010f9fc94218b4be3e5c0f716aa0d2026194a781e3b8981924142009302 + passport-oauth2: 1.8.0 + checksum: 97cb68f3adba8914a9375ebf1b0a05f33d8ca53ddad50948a254219e01672e726fc8eb7152d4e31de86041ab603dea950cec4f3dee5c6ade3bcc3de23aa44408 languageName: node linkType: hard -"parse-url@npm:^8.1.0": - version: 8.1.0 - resolution: "parse-url@npm:8.1.0" +"passport-oauth1@npm:1.x.x": + version: 1.3.0 + resolution: "passport-oauth1@npm:1.3.0" dependencies: - parse-path: ^7.0.0 - checksum: b93e21ab4c93c7d7317df23507b41be7697694d4c94f49ed5c8d6288b01cba328fcef5ba388e147948eac20453dee0df9a67ab2012415189fff85973bdffe8d9 + oauth: 0.9.x + passport-strategy: 1.x.x + utils-merge: 1.x.x + checksum: 69a0538221f11509aa405de0cadf510e635a6723e1e7e6179db34b4d21d82db8eff8a1e95a6e9eaeca3233e8e1fa5dce87999cd3ec32387238a73a552f95ca16 languageName: node linkType: hard -"parse5@npm:^7.0.0, parse5@npm:^7.1.1": - version: 7.2.1 - resolution: "parse5@npm:7.2.1" +"passport-oauth2@npm:1.8.0, passport-oauth2@npm:1.x.x, passport-oauth2@npm:^1.1.2, passport-oauth2@npm:^1.4.0, passport-oauth2@npm:^1.6.0, passport-oauth2@npm:^1.6.1, passport-oauth2@npm:^1.7.0": + version: 1.8.0 + resolution: "passport-oauth2@npm:1.8.0" dependencies: - entities: ^4.5.0 - checksum: 11253cf8aa2e7fc41c004c64cba6f2c255f809663365db65bd7ad0e8cf7b89e436a563c20059346371cc543a6c1b567032088883ca6a2cbc88276c666b68236d + base64url: 3.x.x + oauth: 0.10.x + passport-strategy: 1.x.x + uid2: 0.0.x + utils-merge: 1.x.x + checksum: a9a80b968343c9c1906f74ef613b346ec2d6a6acfe17af81e673fd774779b436729252485755c3ce182f2cdba2434d75067418952d722404d65b93c0360ca02b languageName: node linkType: hard -"parseurl@npm:^1.3.2, parseurl@npm:~1.3.2, parseurl@npm:~1.3.3": - version: 1.3.3 - resolution: "parseurl@npm:1.3.3" - checksum: 407cee8e0a3a4c5cd472559bca8b6a45b82c124e9a4703302326e9ab60fc1081442ada4e02628efef1eb16197ddc7f8822f5a91fd7d7c86b51f530aedb17dfa2 +"passport-oauth@npm:1.0.0, passport-oauth@npm:^1.0.0": + version: 1.0.0 + resolution: "passport-oauth@npm:1.0.0" + dependencies: + passport-oauth1: 1.x.x + passport-oauth2: 1.x.x + checksum: e6d908ac6c305db1f4040538360c29ca1427b27772c74abaa75db24647db7ee1ccd9c6ccc1bb74649bca090f31f3225540539219b4a97b31c0c1434f4a9ee7b3 languageName: node linkType: hard -"pascal-case@npm:^3.1.2": - version: 3.1.2 - resolution: "pascal-case@npm:3.1.2" +"passport-onelogin-oauth@npm:^0.0.1": + version: 0.0.1 + resolution: "passport-onelogin-oauth@npm:0.0.1" dependencies: - no-case: ^3.0.4 - tslib: ^2.0.3 - checksum: ba98bfd595fc91ef3d30f4243b1aee2f6ec41c53b4546bfa3039487c367abaa182471dcfc830a1f9e1a0df00c14a370514fa2b3a1aacc68b15a460c31116873e + passport-oauth: 1.0.0 + pkginfo: 0.2.x + uid2: 0.0.3 + checksum: 5664bbcca717e7499be5ec1336cc34ada3266fccdc92a026883d6113c2ab30ec215b7df810fb0abd3adb79afb728c6d7fa0782f8661afba25c4df198ed84470e languageName: node linkType: hard -"passport-strategy@npm:1.x.x": +"passport-strategy@npm:1.x.x, passport-strategy@npm:^1.0.0": version: 1.0.0 resolution: "passport-strategy@npm:1.0.0" checksum: 5086693f2508e538dffa55a338c89fe8192fb5f4478c71f80cd5890b8573419a098f4fec88b505374f60bbe9049f6f24b9f3992678612528a3370b4dc73354a2 @@ -18981,10 +29109,10 @@ __metadata: languageName: node linkType: hard -"path-to-regexp@npm:0.1.10": - version: 0.1.10 - resolution: "path-to-regexp@npm:0.1.10" - checksum: ab7a3b7a0b914476d44030340b0a65d69851af2a0f33427df1476100ccb87d409c39e2182837a96b98fb38c4ef2ba6b87bdad62bb70a2c153876b8061760583c +"path-to-regexp@npm:0.1.12": + version: 0.1.12 + resolution: "path-to-regexp@npm:0.1.12" + checksum: ab237858bee7b25ecd885189f175ab5b5161e7b712b360d44f5c4516b8d271da3e4bf7bf0a7b9153ecb04c7d90ce8ff5158614e1208819cf62bac2b08452722e languageName: node linkType: hard @@ -19002,7 +29130,7 @@ __metadata: languageName: node linkType: hard -"path-to-regexp@npm:^8.0.0": +"path-to-regexp@npm:^8.0.0, path-to-regexp@npm:^8.1.0": version: 8.2.0 resolution: "path-to-regexp@npm:8.2.0" checksum: 56e13e45962e776e9e7cd72e87a441cfe41f33fd539d097237ceb16adc922281136ca12f5a742962e33d8dda9569f630ba594de56d8b7b6e49adf31803c5e771 @@ -19016,6 +29144,15 @@ __metadata: languageName: node linkType: hard +"pause-stream@npm:0.0.11": + version: 0.0.11 + resolution: "pause-stream@npm:0.0.11" + dependencies: + through: ~2.3 + checksum: 3c4a14052a638b92e0c96eb00c0d7977df7f79ea28395250c525d197f1fc02d34ce1165d5362e2e6ebbb251524b94a76f3f0d4abc39ab8b016d97449fe15583c + languageName: node + linkType: hard + "pause@npm:0.0.1": version: 0.0.1 resolution: "pause@npm:0.0.1" @@ -19043,6 +29180,13 @@ __metadata: languageName: node linkType: hard +"peek-readable@npm:^4.1.0": + version: 4.1.0 + resolution: "peek-readable@npm:4.1.0" + checksum: 02c673f9bc816f8e4e74a054c097225ad38d457d745b775e2b96faf404a54473b2f62f5bcd496f5ebc28696708bcc5e95bed409856f4bef5ed62eae9b4ac0dab + languageName: node + linkType: hard + "pend@npm:~1.2.0": version: 1.2.0 resolution: "pend@npm:1.2.0" @@ -19152,13 +29296,27 @@ __metadata: languageName: node linkType: hard -"picocolors@npm:^1.0.0, picocolors@npm:^1.1.0": +"photoswipe@npm:^5.3.7": + version: 5.4.4 + resolution: "photoswipe@npm:5.4.4" + checksum: 9e1ee1278d1472e390c486f6ef5d5e13a3e55f660fde15360ce266bd31dcdce8feb08d406f8ccc9c35277ddf67b6d5ca8f028977d02033261647c0a54e7a17ea + languageName: node + linkType: hard + +"picocolors@npm:^1.0.0, picocolors@npm:^1.1.0, picocolors@npm:^1.1.1": version: 1.1.1 resolution: "picocolors@npm:1.1.1" checksum: e1cf46bf84886c79055fdfa9dcb3e4711ad259949e3565154b004b260cd356c5d54b31a1437ce9782624bf766272fe6b0154f5f0c744fb7af5d454d2b60db045 languageName: node linkType: hard +"picomatch-browser@npm:^2.2.6": + version: 2.2.6 + resolution: "picomatch-browser@npm:2.2.6" + checksum: 946c50a8654da43167a0f9a90dd0b50f3d4e830ee71c0926ee9052d7e6f40d8907deaafba19cea71b97207b4aaa52c245335e4cd5bbaf78fe2ba567cd0c341fa + languageName: node + linkType: hard + "picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.2, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1": version: 2.3.1 resolution: "picomatch@npm:2.3.1" @@ -19187,6 +29345,48 @@ __metadata: languageName: node linkType: hard +"pino-pretty@npm:^2.6.0": + version: 2.6.1 + resolution: "pino-pretty@npm:2.6.1" + dependencies: + args: ^5.0.0 + chalk: ^2.3.2 + dateformat: ^3.0.3 + fast-json-parse: ^1.0.3 + fast-safe-stringify: ^2.0.6 + jmespath: ^0.15.0 + pump: ^3.0.0 + readable-stream: ^3.0.6 + split2: ^3.0.0 + bin: + pino-pretty: ./bin.js + checksum: 2899b9e29b2cd572715c30a02a87aaa6e8a43009cb92df60ca88233bb7ead48206f8de2f6bcba1b83517409036017e703c8fe86e912efb91ab0757b3a4306593 + languageName: node + linkType: hard + +"pino-std-serializers@npm:^2.4.2": + version: 2.5.0 + resolution: "pino-std-serializers@npm:2.5.0" + checksum: 57788a1427ca1de56f01d0382c23b2f7c32438ab391169f074e02bba86ac9ec360a94834bfad2792ec01b6a5af2386ff4541cf393c56c0b1e66f72323a9162ef + languageName: node + linkType: hard + +"pino@npm:^5.12.2": + version: 5.17.0 + resolution: "pino@npm:5.17.0" + dependencies: + fast-redact: ^2.0.0 + fast-safe-stringify: ^2.0.7 + flatstr: ^1.0.12 + pino-std-serializers: ^2.4.2 + quick-format-unescaped: ^3.0.3 + sonic-boom: ^0.7.5 + bin: + pino: bin.js + checksum: a967ca7e4c125648c5fe29247c6bd3d96011adcc4bcaf85b558fc66c26b6525323c00117725c16bcc1b4e455b4287b71bd72fd144a9ce8ddac467c269b840c7f + languageName: node + linkType: hard + "pirates@npm:^4.0.1, pirates@npm:^4.0.4, pirates@npm:^4.0.6": version: 4.0.6 resolution: "pirates@npm:4.0.6" @@ -19212,13 +29412,115 @@ __metadata: languageName: node linkType: hard -"pony-cause@npm:^1.0.0": +"pkginfo@npm:0.2.x": + version: 0.2.3 + resolution: "pkginfo@npm:0.2.3" + checksum: 2dc005c4821d716e2a20d2940fb136e0585a801941db4937ac8ec2c2404af3c194c34171474067ebdbb34c582187fc3ab08cfca47ef75b988f0fa1de3f833550 + languageName: node + linkType: hard + +"pkginfo@npm:^0.4.1": + version: 0.4.1 + resolution: "pkginfo@npm:0.4.1" + checksum: 0f13694f3682345647b7cb887fb6fe258df51b635f252324cd75eeb8181b4381cb8b9d91dc2d869849e857192b403bea65038d2f7c05b524eeae69ece5048209 + languageName: node + linkType: hard + +"playwright-core@npm:1.45.3": + version: 1.45.3 + resolution: "playwright-core@npm:1.45.3" + bin: + playwright-core: cli.js + checksum: cecb58877b2c643403d7a72c24a7aa0fdd087a3c7f9a5ea5403851336ea831d8e304b1f159aacbbabd12e5c47eaac054333746c9e5431ec07b13d64dbf3b50ec + languageName: node + linkType: hard + +"playwright-core@npm:1.49.1": + version: 1.49.1 + resolution: "playwright-core@npm:1.49.1" + bin: + playwright-core: cli.js + checksum: a940f4b10ff1de033b4b8594b5104b02849a892d9adda0d42330a872cd3d8d287ffd2b01fc33f33ccd34f8904bb8ae8220b878b62e899f3d9bcd1b0945ab45c7 + languageName: node + linkType: hard + +"playwright@npm:1.45.3": + version: 1.45.3 + resolution: "playwright@npm:1.45.3" + dependencies: + fsevents: 2.3.2 + playwright-core: 1.45.3 + dependenciesMeta: + fsevents: + optional: true + bin: + playwright: cli.js + checksum: d9d23b155ccd001553214f710561b01e48eb409676102f8ab94c0b4aa5ac5f398becc1a96528b0554944e07e34189503d891913e0e0a4aa58ad36b9c08747983 + languageName: node + linkType: hard + +"playwright@npm:1.49.1": + version: 1.49.1 + resolution: "playwright@npm:1.49.1" + dependencies: + fsevents: 2.3.2 + playwright-core: 1.49.1 + dependenciesMeta: + fsevents: + optional: true + bin: + playwright: cli.js + checksum: c136d42d625e32614f90e5228a165dc8be48c5bfb52aca9210c6ff04161a409dbe42fe5ae4f05a2653f6a1b836876a04d3b0f24bcbbc053d1509c1d605b7c8d5 + languageName: node + linkType: hard + +"pluralize@npm:^8.0.0": + version: 8.0.0 + resolution: "pluralize@npm:8.0.0" + checksum: 08931d4a6a4a5561a7f94f67a31c17e6632cb21e459ab3ff4f6f629d9a822984cf8afef2311d2005fbea5d7ef26016ebb090db008e2d8bce39d0a9a9d218736e + languageName: node + linkType: hard + +"point-in-svg-path@npm:^1.0.1": + version: 1.0.2 + resolution: "point-in-svg-path@npm:1.0.2" + checksum: 0145eeb8c513fd4087ae569c6c7a4be5382854a251726d32e49cf0f08ff2663178f018ccc77c05609dd8fa73c087066ce8d6ab77b97350316e7b2e6a59174e12 + languageName: node + linkType: hard + +"pony-cause@npm:^1.1.1": version: 1.1.1 resolution: "pony-cause@npm:1.1.1" checksum: 5ff8878b808be48db801d52246a99d7e4789e52d20575ba504ede30c818fd85d38a033915e02c15fa9b6dce72448836dc1a47094acf8f1c21c4f04a4603b0cfb languageName: node linkType: hard +"popmotion@npm:11.0.3": + version: 11.0.3 + resolution: "popmotion@npm:11.0.3" + dependencies: + framesync: 6.0.1 + hey-listen: ^1.0.8 + style-value-types: 5.0.0 + tslib: ^2.1.0 + checksum: 9fe7d03b4ec0e85bfb9dadc23b745147bfe42e16f466ba06e6327197d0e38b72015afc2f918a8051dedc3680310417f346ffdc463be6518e2e92e98f48e30268 + languageName: node + linkType: hard + +"popper.js@npm:1.16.1-lts": + version: 1.16.1-lts + resolution: "popper.js@npm:1.16.1-lts" + checksum: 27c00b5b07afa91a5e9f9db78a9a61b50f44ca156d09c851cd29d79cd359e54cfde4288ae555b88801438227e452e56cb4b56bd79fd45ab17dac780a70a7e9ac + languageName: node + linkType: hard + +"popper.js@npm:^1.16.1": + version: 1.16.1 + resolution: "popper.js@npm:1.16.1" + checksum: c56ae5001ec50a77ee297a8061a0221d99d25c7348d2e6bcd3e45a0d0f32a1fd81bca29d46cb0d4bdf13efb77685bd6a0ce93f9eb3c608311a461f945fffedbe + languageName: node + linkType: hard + "portfinder@npm:^1.0.32": version: 1.0.32 resolution: "portfinder@npm:1.0.32" @@ -19413,26 +29715,26 @@ __metadata: linkType: hard "postcss-modules-local-by-default@npm:^4.0.0, postcss-modules-local-by-default@npm:^4.0.5": - version: 4.0.5 - resolution: "postcss-modules-local-by-default@npm:4.0.5" + version: 4.2.0 + resolution: "postcss-modules-local-by-default@npm:4.2.0" dependencies: icss-utils: ^5.0.0 - postcss-selector-parser: ^6.0.2 + postcss-selector-parser: ^7.0.0 postcss-value-parser: ^4.1.0 peerDependencies: postcss: ^8.1.0 - checksum: ca9b01f4a0a3dfb33e016299e2dfb7e85c3123292f7aec2efc0c6771b9955648598bfb4c1561f7ee9732fb27fb073681233661b32eef98baab43743f96735452 + checksum: 720d145453f82ad5f1c1d0ff7386d64722f0812808e4132e573c1a49909745e109fcce3792a0b0cb18770dbeb3d9741867e81c698dc8353a18bc664b7d6d9533 languageName: node linkType: hard "postcss-modules-scope@npm:^3.0.0, postcss-modules-scope@npm:^3.2.0": - version: 3.2.0 - resolution: "postcss-modules-scope@npm:3.2.0" + version: 3.2.1 + resolution: "postcss-modules-scope@npm:3.2.1" dependencies: - postcss-selector-parser: ^6.0.4 + postcss-selector-parser: ^7.0.0 peerDependencies: postcss: ^8.1.0 - checksum: 2ffe7e98c1fa993192a39c8dd8ade93fc4f59fbd1336ce34fcedaee0ee3bafb29e2e23fb49189256895b30e4f21af661c6a6a16ef7b17ae2c859301e4a4459ae + checksum: 085f65863bb7d8bf08209a979ceb22b2b07bb466574e0e698d34aaad832d614957bb05f2418348a14e4035f65e23b2be2951369d26ea429dd5762c6a020f0f7c languageName: node linkType: hard @@ -19599,7 +29901,7 @@ __metadata: languageName: node linkType: hard -"postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4, postcss-selector-parser@npm:^6.0.5, postcss-selector-parser@npm:^6.0.9": +"postcss-selector-parser@npm:^6.0.4, postcss-selector-parser@npm:^6.0.5, postcss-selector-parser@npm:^6.0.9": version: 6.1.2 resolution: "postcss-selector-parser@npm:6.1.2" dependencies: @@ -19609,6 +29911,16 @@ __metadata: languageName: node linkType: hard +"postcss-selector-parser@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-selector-parser@npm:7.0.0" + dependencies: + cssesc: ^3.0.0 + util-deprecate: ^1.0.2 + checksum: f906b7449fcbe9fa6ae739b6fc324ee3c6201aaf5224f26da27de64ccba68d878d734dd182a467881e463f7ede08972d0129b0cc4d6b671d78c6492cddcef154 + languageName: node + linkType: hard + "postcss-svgo@npm:^5.1.0": version: 5.1.0 resolution: "postcss-svgo@npm:5.1.0" @@ -19639,14 +29951,14 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.1.0, postcss@npm:^8.2.13, postcss@npm:^8.4.33": - version: 8.4.47 - resolution: "postcss@npm:8.4.47" +"postcss@npm:^8.1.0, postcss@npm:^8.4.33": + version: 8.4.49 + resolution: "postcss@npm:8.4.49" dependencies: nanoid: ^3.3.7 - picocolors: ^1.1.0 + picocolors: ^1.1.1 source-map-js: ^1.2.1 - checksum: f78440a9d8f97431dd2ab1ab8e1de64f12f3eff38a3d8d4a33919b96c381046a314658d2de213a5fa5eb296b656de76a3ec269fdea27f16d5ab465b916a0f52c + checksum: eb5d6cbdca24f50399aafa5d2bea489e4caee4c563ea1edd5a2485bc5f84e9ceef3febf170272bc83a99c31d23a316ad179213e853f34c2a7a8ffa534559d63a languageName: node linkType: hard @@ -19680,7 +29992,7 @@ __metadata: languageName: node linkType: hard -"prebuild-install@npm:^7.1.1": +"prebuild-install@npm:^7.1.1, prebuild-install@npm:^7.1.2": version: 7.1.2 resolution: "prebuild-install@npm:7.1.2" dependencies: @@ -19716,6 +30028,15 @@ __metadata: languageName: node linkType: hard +"prettier@npm:3.3.3": + version: 3.3.3 + resolution: "prettier@npm:3.3.3" + bin: + prettier: bin/prettier.cjs + checksum: bc8604354805acfdde6106852d14b045bb20827ad76a5ffc2455b71a8257f94de93f17f14e463fe844808d2ccc87248364a5691488a3304f1031326e62d9276e + languageName: node + linkType: hard + "prettier@npm:3.4.2": version: 3.4.2 resolution: "prettier@npm:3.4.2" @@ -19744,6 +30065,17 @@ __metadata: languageName: node linkType: hard +"pretty-format@npm:^27.0.2": + version: 27.5.1 + resolution: "pretty-format@npm:27.5.1" + dependencies: + ansi-regex: ^5.0.1 + ansi-styles: ^5.0.0 + react-is: ^17.0.1 + checksum: cf610cffcb793885d16f184a62162f2dd0df31642d9a18edf4ca298e909a8fe80bdbf556d5c9573992c102ce8bf948691da91bf9739bee0ffb6e79c8a8a6e088 + languageName: node + linkType: hard + "pretty-format@npm:^29.0.0, pretty-format@npm:^29.7.0": version: 29.7.0 resolution: "pretty-format@npm:29.7.0" @@ -19756,11 +30088,25 @@ __metadata: linkType: hard "pretty-ms@npm:^9.0.0": - version: 9.1.0 - resolution: "pretty-ms@npm:9.1.0" + version: 9.2.0 + resolution: "pretty-ms@npm:9.2.0" dependencies: parse-ms: ^4.0.0 - checksum: 0f66507467f2005040cccdcb36f35b82674d7809f41c4432009235ed6c920787afa17f621c25b7ccb8ccd80b0840c7b71f7f4a3addb8f0eeef3a033ff1e5cf71 + checksum: d3a5a5b1c8a3417f64a877dba5ee2bacee404b59bc12083466e5e6dce2745e4bd716e1f9860624c7dceb1b4a532e808e4f2a7a03903a132344b3818951e2d125 + languageName: node + linkType: hard + +"prismjs@npm:^1.27.0": + version: 1.29.0 + resolution: "prismjs@npm:1.29.0" + checksum: 007a8869d4456ff8049dc59404e32d5666a07d99c3b0e30a18bd3b7676dfa07d1daae9d0f407f20983865fd8da56de91d09cb08e6aa61f5bc420a27c0beeaf93 + languageName: node + linkType: hard + +"prismjs@npm:~1.27.0": + version: 1.27.0 + resolution: "prismjs@npm:1.27.0" + checksum: 85c7f4a3e999073502cc9e1882af01e3709706369ec254b60bff1149eda701f40d02512acab956012dc7e61cfd61743a3a34c1bd0737e8dbacd79141e5698bbc languageName: node linkType: hard @@ -19771,6 +30117,13 @@ __metadata: languageName: node linkType: hard +"proc-log@npm:^5.0.0": + version: 5.0.0 + resolution: "proc-log@npm:5.0.0" + checksum: c78b26ecef6d5cce4a7489a1e9923d7b4b1679028c8654aef0463b27f4a90b0946cd598f55799da602895c52feb085ec76381d007ab8dcceebd40b89c2f9dfe0 + languageName: node + linkType: hard + "process-nextick-args@npm:~2.0.0": version: 2.0.1 resolution: "process-nextick-args@npm:2.0.1" @@ -19785,6 +30138,16 @@ __metadata: languageName: node linkType: hard +"prom-client@npm:^15.0.0": + version: 15.1.3 + resolution: "prom-client@npm:15.1.3" + dependencies: + "@opentelemetry/api": ^1.4.0 + tdigest: ^0.1.1 + checksum: 9a57f3c16f39aa9a03da021883a4231c0bb56fc9d02f6ef9c28f913379f275640a5a33b98d9946ebf53c71011a29b580e9d2d6e3806cb1c229a3f59c65993968 + languageName: node + linkType: hard + "promise-inflight@npm:^1.0.1": version: 1.0.1 resolution: "promise-inflight@npm:1.0.1" @@ -19819,7 +30182,7 @@ __metadata: languageName: node linkType: hard -"prop-types@npm:^15.8.1": +"prop-types@npm:15.x, prop-types@npm:^15.0.0, prop-types@npm:^15.5.10, prop-types@npm:^15.6.2, prop-types@npm:^15.7.2, prop-types@npm:^15.8.1": version: 15.8.1 resolution: "prop-types@npm:15.8.1" dependencies: @@ -19850,13 +30213,58 @@ __metadata: languageName: node linkType: hard -"property-expr@npm:^2.0.4": +"property-expr@npm:^2.0.5": version: 2.0.6 resolution: "property-expr@npm:2.0.6" checksum: 89977f4bb230736c1876f460dd7ca9328034502fd92e738deb40516d16564b850c0bbc4e052c3df88b5b8cd58e51c93b46a94bea049a3f23f4a022c038864cab languageName: node linkType: hard +"property-information@npm:^5.0.0": + version: 5.6.0 + resolution: "property-information@npm:5.6.0" + dependencies: + xtend: ^4.0.0 + checksum: fcf87c6542e59a8bbe31ca0b3255a4a63ac1059b01b04469680288998bcfa97f341ca989566adbb63975f4d85339030b82320c324a511532d390910d1c583893 + languageName: node + linkType: hard + +"property-information@npm:^6.0.0": + version: 6.5.0 + resolution: "property-information@npm:6.5.0" + checksum: 6e55664e2f64083b715011e5bafaa1e694faf36986c235b0907e95d09259cc37c38382e3cc94a4c3f56366e05336443db12c8a0f0968a8c0a1b1416eebfc8f53 + languageName: node + linkType: hard + +"proto3-json-serializer@npm:^2.0.2": + version: 2.0.2 + resolution: "proto3-json-serializer@npm:2.0.2" + dependencies: + protobufjs: ^7.2.5 + checksum: 21b8aa65be6dac2bb24920e5bdabef48b249bdf65b1498ae7e69ac4e70722275b083cd60a21d2b4be3ead9d768de2f6f5fb6b188bd177d51c824a539b5ba55cc + languageName: node + linkType: hard + +"protobufjs@npm:^7.2.5, protobufjs@npm:^7.2.6, protobufjs@npm:^7.3.2, protobufjs@npm:^7.4.0": + version: 7.4.0 + resolution: "protobufjs@npm:7.4.0" + dependencies: + "@protobufjs/aspromise": ^1.1.2 + "@protobufjs/base64": ^1.1.2 + "@protobufjs/codegen": ^2.0.4 + "@protobufjs/eventemitter": ^1.1.0 + "@protobufjs/fetch": ^1.1.0 + "@protobufjs/float": ^1.0.2 + "@protobufjs/inquire": ^1.1.0 + "@protobufjs/path": ^1.1.2 + "@protobufjs/pool": ^1.1.0 + "@protobufjs/utf8": ^1.1.0 + "@types/node": ">=13.7.0" + long: ^5.0.0 + checksum: ba0e6b60541bbf818bb148e90f5eb68bd99004e29a6034ad9895a381cbd352be8dce5376e47ae21b2e05559f2505b4a5f4a3c8fa62402822c6ab4dcdfb89ffb3 + languageName: node + linkType: hard + "protocols@npm:^2.0.0, protocols@npm:^2.0.1": version: 2.0.1 resolution: "protocols@npm:2.0.1" @@ -19897,17 +30305,23 @@ __metadata: languageName: node linkType: hard -"pseudomap@npm:^1.0.2": - version: 1.0.2 - resolution: "pseudomap@npm:1.0.2" - checksum: 856c0aae0ff2ad60881168334448e898ad7a0e45fe7386d114b150084254c01e200c957cf378378025df4e052c7890c5bd933939b0e0d2ecfcc1dc2f0b2991f5 +"ps-tree@npm:1.2.0": + version: 1.2.0 + resolution: "ps-tree@npm:1.2.0" + dependencies: + event-stream: =3.3.4 + bin: + ps-tree: ./bin/ps-tree.js + checksum: e635dd00f53d30d31696cf5f95b3a8dbdf9b1aeb36d4391578ce8e8cd22949b7c5536c73b0dc18c78615ea3ddd4be96101166be59ca2e3e3cb1e2f79ba3c7f98 languageName: node linkType: hard "psl@npm:^1.1.28, psl@npm:^1.1.33": - version: 1.9.0 - resolution: "psl@npm:1.9.0" - checksum: 20c4277f640c93d393130673f392618e9a8044c6c7bf61c53917a0fddb4952790f5f362c6c730a9c32b124813e173733f9895add8d26f566ed0ea0654b2e711d + version: 1.15.0 + resolution: "psl@npm:1.15.0" + dependencies: + punycode: ^2.3.1 + checksum: 6f777d82eecfe1c2406dadbc15e77467b186fec13202ec887a45d0209a2c6fca530af94a462a477c3c4a767ad892ec9ede7c482d98f61f653dd838b50e89dc15 languageName: node linkType: hard @@ -19935,6 +30349,13 @@ __metadata: languageName: node linkType: hard +"punycode.js@npm:^2.3.1": + version: 2.3.1 + resolution: "punycode.js@npm:2.3.1" + checksum: 13466d7ed5e8dacdab8c4cc03837e7dd14218a59a40eb14a837f1f53ca396e18ef2c4ee6d7766b8ed2fc391d6a3ac489eebf2de83b3596f5a54e86df4a251b72 + languageName: node + linkType: hard + "punycode@npm:^1.2.4, punycode@npm:^1.4.1": version: 1.4.1 resolution: "punycode@npm:1.4.1" @@ -19942,7 +30363,7 @@ __metadata: languageName: node linkType: hard -"punycode@npm:^2.1.0, punycode@npm:^2.1.1": +"punycode@npm:^2.1.0, punycode@npm:^2.1.1, punycode@npm:^2.3.1": version: 2.3.1 resolution: "punycode@npm:2.3.1" checksum: bb0a0ceedca4c3c57a9b981b90601579058903c62be23c5e8e843d2c2d4148a3ecf029d5133486fb0e1822b098ba8bba09e89d6b21742d02fa26bda6441a6fb2 @@ -19956,7 +30377,7 @@ __metadata: languageName: node linkType: hard -"qs@npm:6.13.0, qs@npm:^6.11.0, qs@npm:^6.12.3": +"qs@npm:6.13.0": version: 6.13.0 resolution: "qs@npm:6.13.0" dependencies: @@ -19965,45 +30386,125 @@ __metadata: languageName: node linkType: hard -"qs@npm:~6.5.2": - version: 6.5.3 - resolution: "qs@npm:6.5.3" - checksum: 6f20bf08cabd90c458e50855559539a28d00b2f2e7dddcb66082b16a43188418cb3cb77cbd09268bcef6022935650f0534357b8af9eeb29bf0f27ccb17655692 +"qs@npm:^6.10.1, qs@npm:^6.10.3, qs@npm:^6.11.0, qs@npm:^6.12.2, qs@npm:^6.12.3, qs@npm:^6.9.4": + version: 6.13.1 + resolution: "qs@npm:6.13.1" + dependencies: + side-channel: ^1.0.6 + checksum: 86c5059146955fab76624e95771031541328c171b1d63d48a7ac3b1fdffe262faf8bc5fcadc1684e6f3da3ec87a8dedc8c0009792aceb20c5e94dc34cf468bb9 + languageName: node + linkType: hard + +"qs@npm:~6.5.2": + version: 6.5.3 + resolution: "qs@npm:6.5.3" + checksum: 6f20bf08cabd90c458e50855559539a28d00b2f2e7dddcb66082b16a43188418cb3cb77cbd09268bcef6022935650f0534357b8af9eeb29bf0f27ccb17655692 + languageName: node + linkType: hard + +"querystring-es3@npm:^0.2.0": + version: 0.2.1 + resolution: "querystring-es3@npm:0.2.1" + checksum: 691e8d6b8b157e7cd49ae8e83fcf86de39ab3ba948c25abaa94fba84c0986c641aa2f597770848c64abce290ed17a39c9df6df737dfa7e87c3b63acc7d225d61 + languageName: node + linkType: hard + +"querystringify@npm:^2.1.1": + version: 2.2.0 + resolution: "querystringify@npm:2.2.0" + checksum: 5641ea231bad7ef6d64d9998faca95611ed4b11c2591a8cae741e178a974f6a8e0ebde008475259abe1621cb15e692404e6b6626e927f7b849d5c09392604b15 + languageName: node + linkType: hard + +"queue-microtask@npm:^1.2.2": + version: 1.2.3 + resolution: "queue-microtask@npm:1.2.3" + checksum: b676f8c040cdc5b12723ad2f91414d267605b26419d5c821ff03befa817ddd10e238d22b25d604920340fd73efd8ba795465a0377c4adf45a4a41e4234e42dc4 + languageName: node + linkType: hard + +"queue-tick@npm:^1.0.1": + version: 1.0.1 + resolution: "queue-tick@npm:1.0.1" + checksum: 57c3292814b297f87f792fbeb99ce982813e4e54d7a8bdff65cf53d5c084113913289d4a48ec8bbc964927a74b847554f9f4579df43c969a6c8e0f026457ad01 + languageName: node + linkType: hard + +"quick-format-unescaped@npm:^3.0.3": + version: 3.0.3 + resolution: "quick-format-unescaped@npm:3.0.3" + checksum: ab00a443eb2445255333ddb93d3516ba7c4463486546955c798722cfbaddc0b6c12f90fb06e7d134b84d8dd216b538899c40fde09be11959c84c8a930745ce72 + languageName: node + linkType: hard + +"quick-lru@npm:^5.1.1": + version: 5.1.1 + resolution: "quick-lru@npm:5.1.1" + checksum: a516faa25574be7947969883e6068dbe4aa19e8ef8e8e0fd96cddd6d36485e9106d85c0041a27153286b0770b381328f4072aa40d3b18a19f5f7d2b78b94b5ed + languageName: node + linkType: hard + +"raf-schd@npm:^4.0.2": + version: 4.0.3 + resolution: "raf-schd@npm:4.0.3" + checksum: 45514041c5ad31fa96aef3bb3c572a843b92da2f2cd1cb4a47c9ad58e48761d3a4126e18daa32b2bfa0bc2551a42d8f324a0e40e536cb656969929602b4e8b58 + languageName: node + linkType: hard + +"railroad-diagrams@npm:^1.0.0": + version: 1.0.0 + resolution: "railroad-diagrams@npm:1.0.0" + checksum: 9e312af352b5ed89c2118edc0c06cef2cc039681817f65266719606e4e91ff6ae5374c707cc9033fe29a82c2703edf3c63471664f97f0167c85daf6f93496319 languageName: node linkType: hard -"querystring-es3@npm:^0.2.0": - version: 0.2.1 - resolution: "querystring-es3@npm:0.2.1" - checksum: 691e8d6b8b157e7cd49ae8e83fcf86de39ab3ba948c25abaa94fba84c0986c641aa2f597770848c64abce290ed17a39c9df6df737dfa7e87c3b63acc7d225d61 +"rambda@npm:^9.1.0": + version: 9.4.1 + resolution: "rambda@npm:9.4.1" + checksum: cf01bf53666f96d507a2657338037e3be22a0de778e8558eca85e3f8124816adb86a11e431fceb1d6434afa750e07f966269aeeaabae826c4713f292bdc21805 languageName: node linkType: hard -"querystringify@npm:^2.1.1": - version: 2.2.0 - resolution: "querystringify@npm:2.2.0" - checksum: 5641ea231bad7ef6d64d9998faca95611ed4b11c2591a8cae741e178a974f6a8e0ebde008475259abe1621cb15e692404e6b6626e927f7b849d5c09392604b15 +"ramda-adjunct@npm:^5.0.0": + version: 5.1.0 + resolution: "ramda-adjunct@npm:5.1.0" + peerDependencies: + ramda: ">= 0.30.0" + checksum: 0b5d10add35e56ff1ce1202d9e086602ba5619ce380197e692c03d19b92d7eea41a0fc07e34588c0f6d54d31e00b889fa2bf614d88d10b98822117cbb4666207 languageName: node linkType: hard -"queue-microtask@npm:^1.2.2": - version: 1.2.3 - resolution: "queue-microtask@npm:1.2.3" - checksum: b676f8c040cdc5b12723ad2f91414d267605b26419d5c821ff03befa817ddd10e238d22b25d604920340fd73efd8ba795465a0377c4adf45a4a41e4234e42dc4 +"ramda@npm:^0.30.1, ramda@npm:~0.30.0": + version: 0.30.1 + resolution: "ramda@npm:0.30.1" + checksum: ce6f4b6b967a84a4e65c01ab1b1cdd73d46b8efe71aeccf5d1443c56c4e31a0ea82ece7df6510453dd3d83b92cabf8a6b4d50d189a1b35c08a6f44b281bebf79 languageName: node linkType: hard -"queue-tick@npm:^1.0.1": - version: 1.0.1 - resolution: "queue-tick@npm:1.0.1" - checksum: 57c3292814b297f87f792fbeb99ce982813e4e54d7a8bdff65cf53d5c084113913289d4a48ec8bbc964927a74b847554f9f4579df43c969a6c8e0f026457ad01 +"randexp@npm:0.4.6": + version: 0.4.6 + resolution: "randexp@npm:0.4.6" + dependencies: + discontinuous-range: 1.0.0 + ret: ~0.1.10 + checksum: 3c0d440a3f89d6d36844aa4dd57b5cdb0cab938a41956a16da743d3a3578ab32538fc41c16cc0984b6938f2ae4cbc0216967e9829e52191f70e32690d8e3445d languageName: node linkType: hard -"rambda@npm:^9.1.0": - version: 9.3.0 - resolution: "rambda@npm:9.3.0" - checksum: 9ab615c7f00dd8f4165887a92c34e752244b7c197ffd283255e3cd4f78c57a3832fef63ec9deda5bbeb66199f822add7d124acd8d85edb173839481ee809bd30 +"randexp@npm:^0.5.3": + version: 0.5.3 + resolution: "randexp@npm:0.5.3" + dependencies: + drange: ^1.0.2 + ret: ^0.2.0 + checksum: 9a4011b4b012debea545fc379a18208876fffc1179d2ac211351caf7626a3956efc4bc41e329bc5b241a671553eda58e0703933a9bcfdf90dde501ba1a2cf40a + languageName: node + linkType: hard + +"random-bytes@npm:~1.0.0": + version: 1.0.0 + resolution: "random-bytes@npm:1.0.0" + checksum: 09faa256394aa2ca9754aa57e92a27c452c3e97ffb266e98bebb517332e9df7168fea393159f88d884febce949ba8bec8ddb02f03342da6c6023ecc7b155e0ae languageName: node linkType: hard @@ -20033,6 +30534,13 @@ __metadata: languageName: node linkType: hard +"rate-limiter-flexible@npm:^4.0.1": + version: 4.0.1 + resolution: "rate-limiter-flexible@npm:4.0.1" + checksum: 88cb4ae4c6a94646eb4987f08ae203896fc340d84038e145958607ab711d9c703e47e55f177a4bf9bab4c637c73ee2254fffe2ec4e289d41389c8502194ca868 + languageName: node + linkType: hard + "raw-body@npm:2.5.2, raw-body@npm:^2.4.1": version: 2.5.2 resolution: "raw-body@npm:2.5.2" @@ -20057,6 +30565,33 @@ __metadata: languageName: node linkType: hard +"rc-progress@npm:3.5.1": + version: 3.5.1 + resolution: "rc-progress@npm:3.5.1" + dependencies: + "@babel/runtime": ^7.10.1 + classnames: ^2.2.6 + rc-util: ^5.16.1 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: b0722a696396f985267e35e26f49c1c1bd6a17b4918eb93318fc36a7a5ffae9806932d4982a7da0d83349648ca85325b792003ec40240820fd6e00e0bc6f3c1d + languageName: node + linkType: hard + +"rc-util@npm:^5.16.1": + version: 5.44.2 + resolution: "rc-util@npm:5.44.2" + dependencies: + "@babel/runtime": ^7.18.3 + react-is: ^18.2.0 + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 238eb922fd55297d2ae84f0979da9b5507087d162c3deac8b040ea9a0381b5a5e518f604c7291d2095f9bc1e4b67f3be773da0e88341b5319d2b437c656cffc0 + languageName: node + linkType: hard + "rc@npm:^1.2.7": version: 1.2.8 resolution: "rc@npm:1.2.8" @@ -20071,6 +30606,71 @@ __metadata: languageName: node linkType: hard +"re2-wasm@npm:^1.0.2": + version: 1.0.2 + resolution: "re2-wasm@npm:1.0.2" + checksum: cd47ad62db1e2f01dec40129f0c994f86bebbade1bd85920fa32229bec0a64b0ebbf550fefbba68a1f8268b73d811f223f79264d5ed9a208efda3fb832e9f0a9 + languageName: node + linkType: hard + +"react-ace@npm:9.5.0": + version: 9.5.0 + resolution: "react-ace@npm:9.5.0" + dependencies: + ace-builds: ^1.4.13 + diff-match-patch: ^1.0.5 + lodash.get: ^4.4.2 + lodash.isequal: ^4.5.0 + prop-types: ^15.7.2 + peerDependencies: + react: ^0.13.0 || ^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 + react-dom: ^0.13.0 || ^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 + checksum: 4fcb8cf5c69507074c5fca1d40965abef8e411ac6ab66bdfbfc8505eb13e3bc2bb1c31edb80762bae9578802a53c50fda9037619b8ade1084a89244641ebb1c8 + languageName: node + linkType: hard + +"react-beautiful-dnd@npm:^13.0.0": + version: 13.1.1 + resolution: "react-beautiful-dnd@npm:13.1.1" + dependencies: + "@babel/runtime": ^7.9.2 + css-box-model: ^1.2.0 + memoize-one: ^5.1.1 + raf-schd: ^4.0.2 + react-redux: ^7.2.0 + redux: ^4.0.4 + use-memo-one: ^1.1.1 + peerDependencies: + react: ^16.8.5 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.5 || ^17.0.0 || ^18.0.0 + checksum: 5f90f7c0ab77a14dfcd496cbd94bbde457612f380c6fc815f3bba7b52effd75132948fcaa661a902a184bb1e6ae5896dcf5b0c77c4ddf809a2c65288f3eed5a7 + languageName: node + linkType: hard + +"react-copy-to-clipboard@npm:5.1.0, react-copy-to-clipboard@npm:5.x": + version: 5.1.0 + resolution: "react-copy-to-clipboard@npm:5.1.0" + dependencies: + copy-to-clipboard: ^3.3.1 + prop-types: ^15.8.1 + peerDependencies: + react: ^15.3.0 || 16 || 17 || 18 + checksum: f00a4551b9b63c944a041a6ab46af5ef20ba1106b3bc25173e7ef9bffbfba17a613368682ab8820cfe8d4b3acc5335cd9ce20229145bcc1e6aa8d1db04c512e5 + languageName: node + linkType: hard + +"react-debounce-input@npm:=3.3.0": + version: 3.3.0 + resolution: "react-debounce-input@npm:3.3.0" + dependencies: + lodash.debounce: ^4 + prop-types: ^15.8.1 + peerDependencies: + react: ^15.3.0 || 16 || 17 || 18 + checksum: c391ddc73047df759a68913ab8cb0444d211ab91657d94b3b1660ca434ece4a9ac611a7b8b3e82c89d3b7c3d061d0c99bdf6a426e61802848d1c783acb44b69f + languageName: node + linkType: hard + "react-dev-utils@npm:^12.0.0-next.60": version: 12.0.1 resolution: "react-dev-utils@npm:12.0.1" @@ -20103,31 +30703,459 @@ __metadata: languageName: node linkType: hard -"react-error-overlay@npm:^6.0.11": - version: 6.0.11 - resolution: "react-error-overlay@npm:6.0.11" - checksum: ce7b44c38fadba9cedd7c095cf39192e632daeccf1d0747292ed524f17dcb056d16bc197ddee5723f9dd888f0b9b19c3b486c430319e30504289b9296f2d2c42 +"react-dom@npm:^16.13.1 || ^17.0.0 || ^18.0.0, react-dom@npm:^18.0.2": + version: 18.3.1 + resolution: "react-dom@npm:18.3.1" + dependencies: + loose-envify: ^1.1.0 + scheduler: ^0.23.2 + peerDependencies: + react: ^18.3.1 + checksum: 298954ecd8f78288dcaece05e88b570014d8f6dce5db6f66e6ee91448debeb59dcd31561dddb354eee47e6c1bb234669459060deb238ed0213497146e555a0b9 + languageName: node + linkType: hard + +"react-double-scrollbar@npm:0.0.15": + version: 0.0.15 + resolution: "react-double-scrollbar@npm:0.0.15" + peerDependencies: + react: ">= 0.14.7" + checksum: f81c13bdf698d6f699178b6597cb43fff3ec7d2b47f489ee306499a814151822e21b2daed995840832a11261f24dbd56573fe9225d43df22c14af5c564041bc0 + languageName: node + linkType: hard + +"react-draggable@npm:^4.0.3": + version: 4.4.6 + resolution: "react-draggable@npm:4.4.6" + dependencies: + clsx: ^1.1.1 + prop-types: ^15.8.1 + peerDependencies: + react: ">= 16.3.0" + react-dom: ">= 16.3.0" + checksum: 9b15aac59244873ac4561c5a2bead43a56e18d406e0a5f242bd4f9d151c074530c02b99387983104bf43417292f9cf8d063e554ed08d88792235e3fbc965f1b8 + languageName: node + linkType: hard + +"react-dropzone@npm:^14.2.3": + version: 14.3.5 + resolution: "react-dropzone@npm:14.3.5" + dependencies: + attr-accept: ^2.2.4 + file-selector: ^2.1.0 + prop-types: ^15.8.1 + peerDependencies: + react: ">= 16.8 || 18.0.0" + checksum: 9eae7e91f1a786f74234c3a9fcf905691494531861d0c568f260abb770c35edaab7d1e43fe6cb413d77ae56ba286ac1c1606bade46ec15421fd41059f985f6ee + languageName: node + linkType: hard + +"react-error-overlay@npm:^6.0.11": + version: 6.0.11 + resolution: "react-error-overlay@npm:6.0.11" + checksum: ce7b44c38fadba9cedd7c095cf39192e632daeccf1d0747292ed524f17dcb056d16bc197ddee5723f9dd888f0b9b19c3b486c430319e30504289b9296f2d2c42 + languageName: node + linkType: hard + +"react-fast-compare@npm:^3.1.1, react-fast-compare@npm:^3.2.0": + version: 3.2.2 + resolution: "react-fast-compare@npm:3.2.2" + checksum: 2071415b4f76a3e6b55c84611c4d24dcb12ffc85811a2840b5a3f1ff2d1a99be1020d9437ee7c6e024c9f4cbb84ceb35e48cf84f28fcb00265ad2dfdd3947704 + languageName: node + linkType: hard + +"react-helmet@npm:6.1.0": + version: 6.1.0 + resolution: "react-helmet@npm:6.1.0" + dependencies: + object-assign: ^4.1.1 + prop-types: ^15.7.2 + react-fast-compare: ^3.1.1 + react-side-effect: ^2.1.0 + peerDependencies: + react: ">=16.3.0" + checksum: a4998479dab7fc1c2799eddefb1870a9d881b5f71cfdf97979a9882e42f4bb50402d55335f308f461e735e01a06f46b16cc7b4e6bcb22c7a4a6f85a753c5c106 + languageName: node + linkType: hard + +"react-hook-form@npm:^7.12.2": + version: 7.54.1 + resolution: "react-hook-form@npm:7.54.1" + peerDependencies: + react: ^16.8.0 || ^17 || ^18 || ^19 + checksum: a612479ca0e084d64eadc0197fe1a34c3bdb0b6a30f2646d73b5a93aa85793d1950476aa2dd2911713e18c6bd13b1641d3ccf846033aefc652cf973d2d842f87 + languageName: node + linkType: hard + +"react-idle-timer@npm:5.7.2": + version: 5.7.2 + resolution: "react-idle-timer@npm:5.7.2" + peerDependencies: + react: ">=16" + react-dom: ">=16" + checksum: 6faf3cfa87c9d65ae7a87078a2d82db5b821936a45565a98d69e7341e4b4acd5610b1f26cf1a6809b5551e4c30357f2ab5ce729c4c33751f66cb9ce6072dfb02 + languageName: node + linkType: hard + +"react-immutable-proptypes@npm:2.2.0": + version: 2.2.0 + resolution: "react-immutable-proptypes@npm:2.2.0" + dependencies: + invariant: ^2.2.2 + peerDependencies: + immutable: ">=3.6.2" + checksum: 7e2a6cae621d213140102923fa305d6621444a37572cbf684a5ff5743746ba4dbacb30d60e6d8278702f3cbbc48805e716f69e2bf8c9953fd570f86254c1a2b1 + languageName: node + linkType: hard + +"react-immutable-pure-component@npm:^2.2.0": + version: 2.2.2 + resolution: "react-immutable-pure-component@npm:2.2.2" + peerDependencies: + immutable: ">= 2 || >= 4.0.0-rc" + react: ">= 16.6" + react-dom: ">= 16.6" + checksum: 73254040cb25b93343c03fb694c5eebbe558d486068ad9766d87ecb2661c38a2c2edf75e683da269f01a138f1aad1cd23cc456a857c5931af4ca54bf941bf12a + languageName: node + linkType: hard + +"react-inspector@npm:^6.0.1": + version: 6.0.2 + resolution: "react-inspector@npm:6.0.2" + peerDependencies: + react: ^16.8.4 || ^17.0.0 || ^18.0.0 + checksum: dab7a7daf570c283fdc5d4e07ee8941ee8670af698ab5a27a704602b248e29ab911b117310d64c30a4af93931b2d6ee2a729369e3f5ab7f02df4651692e195a5 + languageName: node + linkType: hard + +"react-is@npm:^16.13.1, react-is@npm:^16.7.0": + version: 16.13.1 + resolution: "react-is@npm:16.13.1" + checksum: f7a19ac3496de32ca9ae12aa030f00f14a3d45374f1ceca0af707c831b2a6098ef0d6bdae51bd437b0a306d7f01d4677fcc8de7c0d331eb47ad0f46130e53c5f + languageName: node + linkType: hard + +"react-is@npm:^16.8.0 || ^17.0.0, react-is@npm:^17.0.1, react-is@npm:^17.0.2": + version: 17.0.2 + resolution: "react-is@npm:17.0.2" + checksum: 9d6d111d8990dc98bc5402c1266a808b0459b5d54830bbea24c12d908b536df7883f268a7868cfaedde3dd9d4e0d574db456f84d2e6df9c4526f99bb4b5344d8 + languageName: node + linkType: hard + +"react-is@npm:^18.0.0, react-is@npm:^18.2.0": + version: 18.3.1 + resolution: "react-is@npm:18.3.1" + checksum: e20fe84c86ff172fc8d898251b7cc2c43645d108bf96d0b8edf39b98f9a2cae97b40520ee7ed8ee0085ccc94736c4886294456033304151c3f94978cec03df21 + languageName: node + linkType: hard + +"react-is@npm:^19.0.0": + version: 19.0.0 + resolution: "react-is@npm:19.0.0" + checksum: fbb3060bcb6b3e8e525b17f0872d1cf62a40b73fa7c5de02419069e2edd3e01cf1e8e86c8888f0733cff006175ee76ae927b40b6f0c4332bdda21020505ac90b + languageName: node + linkType: hard + +"react-markdown@npm:^8.0.0": + version: 8.0.7 + resolution: "react-markdown@npm:8.0.7" + dependencies: + "@types/hast": ^2.0.0 + "@types/prop-types": ^15.0.0 + "@types/unist": ^2.0.0 + comma-separated-tokens: ^2.0.0 + hast-util-whitespace: ^2.0.0 + prop-types: ^15.0.0 + property-information: ^6.0.0 + react-is: ^18.0.0 + remark-parse: ^10.0.0 + remark-rehype: ^10.0.0 + space-separated-tokens: ^2.0.0 + style-to-object: ^0.4.0 + unified: ^10.0.0 + unist-util-visit: ^4.0.0 + vfile: ^5.0.0 + peerDependencies: + "@types/react": ">=16" + react: ">=16" + checksum: 0f3e570975134a3382c3fe5189e04e742ae154941463bdfaab2293319da1f1585cb9b75b6f07d99f514c4d728d69cc1af3c96ab37df90003b3bcc210dd0001ba + languageName: node + linkType: hard + +"react-measure@npm:^2.3.0": + version: 2.5.2 + resolution: "react-measure@npm:2.5.2" + dependencies: + "@babel/runtime": ^7.2.0 + get-node-dimensions: ^1.2.1 + prop-types: ^15.6.2 + resize-observer-polyfill: ^1.5.0 + peerDependencies: + react: ">0.13.0" + react-dom: ">0.13.0" + checksum: 75bd3cd74d96f3e83f0a42b8f59e8764e6a5eec994492e077c49a4fea0d0b27775a5154502aff2eee3f6af40650ce2e58ed18ac927a64013b14c9942cc9c4872 + languageName: node + linkType: hard + +"react-redux@npm:^7.2.0": + version: 7.2.9 + resolution: "react-redux@npm:7.2.9" + dependencies: + "@babel/runtime": ^7.15.4 + "@types/react-redux": ^7.1.20 + hoist-non-react-statics: ^3.3.2 + loose-envify: ^1.4.0 + prop-types: ^15.7.2 + react-is: ^17.0.2 + peerDependencies: + react: ^16.8.3 || ^17 || ^18 + peerDependenciesMeta: + react-dom: + optional: true + react-native: + optional: true + checksum: 369a2bdcf87915659af9e5c55abfd9f52a84e43e0d12dcc108ed17dbe6933558b7b7fc12caa9c10c1a10a8be7df89454b6c96989d8573fedec1a772c94a1f145 + languageName: node + linkType: hard + +"react-redux@npm:^9.1.2": + version: 9.2.0 + resolution: "react-redux@npm:9.2.0" + dependencies: + "@types/use-sync-external-store": ^0.0.6 + use-sync-external-store: ^1.4.0 + peerDependencies: + "@types/react": ^18.2.25 || ^19 + react: ^18.0 || ^19 + redux: ^5.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + redux: + optional: true + checksum: 96dfe2929561d7c98d4443722738e4595f08758bde27b7bc20cd98ba9b0dfe9b81b9fa17b6888be94a0c1d2d1305397ae493a8219698536d011a941589eb82bd + languageName: node + linkType: hard + +"react-refresh@npm:^0.14.0": + version: 0.14.2 + resolution: "react-refresh@npm:0.14.2" + checksum: d80db4bd40a36dab79010dc8aa317a5b931f960c0d83c4f3b81f0552cbcf7f29e115b84bb7908ec6a1eb67720fff7023084eff73ece8a7ddc694882478464382 + languageName: node + linkType: hard + +"react-remove-scroll-bar@npm:^2.3.7": + version: 2.3.8 + resolution: "react-remove-scroll-bar@npm:2.3.8" + dependencies: + react-style-singleton: ^2.2.2 + tslib: ^2.0.0 + peerDependencies: + "@types/react": "*" + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: c4663247f689dbe51c370836edf735487f6d8796acb7f15b09e8a1c14e84c7997360e8e3d54de2bc9c0e782fed2b2c4127d15b4053e4d2cf26839e809e57605f + languageName: node + linkType: hard + +"react-remove-scroll@npm:^2.6.1": + version: 2.6.2 + resolution: "react-remove-scroll@npm:2.6.2" + dependencies: + react-remove-scroll-bar: ^2.3.7 + react-style-singleton: ^2.2.1 + tslib: ^2.1.0 + use-callback-ref: ^1.3.3 + use-sidecar: ^1.1.2 + peerDependencies: + "@types/react": "*" + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 310e6e6d2f28226a1751dc5084a2dce49167f0b69e3d78d6510f329f423ee313d4f6477f5e1adccb68baef40a7af75541e980a8c398cb82ea0d3573e514e8124 + languageName: node + linkType: hard + +"react-resizable@npm:^3.0.5": + version: 3.0.5 + resolution: "react-resizable@npm:3.0.5" + dependencies: + prop-types: 15.x + react-draggable: ^4.0.3 + peerDependencies: + react: ">= 16.3" + checksum: 616a10205acfaf8cc3aa0824b60f6d037eef87143d8f338cf826deb74a353db9b9baad67a65dc8535fe90840bfc3e1b8a901f9c247033ffeec2f30405ac7528e + languageName: node + linkType: hard + +"react-router-dom@npm:^6.0.0, react-router-dom@npm:^6.3.0": + version: 6.28.0 + resolution: "react-router-dom@npm:6.28.0" + dependencies: + "@remix-run/router": 1.21.0 + react-router: 6.28.0 + peerDependencies: + react: ">=16.8" + react-dom: ">=16.8" + checksum: 0cf4658a92bc66f50ec9d8518c36aa5a402bcadce71fb624ed6f900d73a29ea87ff904a4f2c42279107e75e80cc08c6192563fadcc5d4e642e6d476e38e83b21 + languageName: node + linkType: hard + +"react-router@npm:6.28.0, react-router@npm:^6.3.0": + version: 6.28.0 + resolution: "react-router@npm:6.28.0" + dependencies: + "@remix-run/router": 1.21.0 + peerDependencies: + react: ">=16.8" + checksum: 23246ca957b5c2bc8d6f9a81fee2df2ce4fc3feca3ec27c2fd85999568fc1299a4e8273e4ab70b6f3acd43a1fb45e0c93cb01ef77e68c9f9e1f7e4f42a1419ea + languageName: node + linkType: hard + +"react-side-effect@npm:^2.1.0": + version: 2.1.2 + resolution: "react-side-effect@npm:2.1.2" + peerDependencies: + react: ^16.3.0 || ^17.0.0 || ^18.0.0 + checksum: c5eb1f42b464fb093bca59aaae0f1b2060373a2aaff95275b8781493628cdbbb6acdd6014e7883782c65c361f35a30f28cc515d68a1263ddb39cbbc47110be53 + languageName: node + linkType: hard + +"react-sparklines@npm:^1.7.0": + version: 1.7.0 + resolution: "react-sparklines@npm:1.7.0" + dependencies: + prop-types: ^15.5.10 + peerDependencies: + react: "*" + react-dom: "*" + checksum: 9d2f701031e56e0c7b49e3b56479cd7bc1b651c029c2d525d2b480cf6ebcecbdb4dfe83053e7bcdecee1c490f3e5b4cecfa8b48301860b679778d6df7758e480 + languageName: node + linkType: hard + +"react-style-singleton@npm:^2.2.1, react-style-singleton@npm:^2.2.2": + version: 2.2.3 + resolution: "react-style-singleton@npm:2.2.3" + dependencies: + get-nonce: ^1.0.0 + tslib: ^2.0.0 + peerDependencies: + "@types/react": "*" + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: a7b0bf493c9231065ebafa84c4237aed997c746c561196121b7de82fe155a5355b372db5070a3ac9fe980cf7f60dc0f1e8cf6402a2aa5b2957392932ccf76e76 + languageName: node + linkType: hard + +"react-syntax-highlighter@npm:^15.4.5, react-syntax-highlighter@npm:^15.5.0": + version: 15.6.1 + resolution: "react-syntax-highlighter@npm:15.6.1" + dependencies: + "@babel/runtime": ^7.3.1 + highlight.js: ^10.4.1 + highlightjs-vue: ^1.0.0 + lowlight: ^1.17.0 + prismjs: ^1.27.0 + refractor: ^3.6.0 + peerDependencies: + react: ">= 0.14.0" + checksum: 417b6f1f2e0c1e00dcc12d34da457b94c7419345306a951d0a8d2d031a0c964179d6b700137870ad1397572cbc3a4454e94de7bbef914a81674edae2098f02dc languageName: node linkType: hard -"react-is@npm:^16.13.1": - version: 16.13.1 - resolution: "react-is@npm:16.13.1" - checksum: f7a19ac3496de32ca9ae12aa030f00f14a3d45374f1ceca0af707c831b2a6098ef0d6bdae51bd437b0a306d7f01d4677fcc8de7c0d331eb47ad0f46130e53c5f +"react-transition-group@npm:^4.0.0, react-transition-group@npm:^4.4.0, react-transition-group@npm:^4.4.5": + version: 4.4.5 + resolution: "react-transition-group@npm:4.4.5" + dependencies: + "@babel/runtime": ^7.5.5 + dom-helpers: ^5.0.1 + loose-envify: ^1.4.0 + prop-types: ^15.6.2 + peerDependencies: + react: ">=16.6.0" + react-dom: ">=16.6.0" + checksum: 75602840106aa9c6545149d6d7ae1502fb7b7abadcce70a6954c4b64a438ff1cd16fc77a0a1e5197cdd72da398f39eb929ea06f9005c45b132ed34e056ebdeb1 + languageName: node + linkType: hard + +"react-universal-interface@npm:^0.6.2": + version: 0.6.2 + resolution: "react-universal-interface@npm:0.6.2" + peerDependencies: + react: "*" + tslib: "*" + checksum: 070a7e9e3cdd8b0ec91a2ac9ac0a8df6bcb3fd183d2775bf0f439b9870fc1faf5b4fa9fe9741abd5187f0a35be645cb4004e1c9ebda9ada7e5d0a624f94910cb + languageName: node + linkType: hard + +"react-use@npm:^17.2.4, react-use@npm:^17.3.2, react-use@npm:^17.4.0": + version: 17.6.0 + resolution: "react-use@npm:17.6.0" + dependencies: + "@types/js-cookie": ^2.2.6 + "@xobotyi/scrollbar-width": ^1.9.5 + copy-to-clipboard: ^3.3.1 + fast-deep-equal: ^3.1.3 + fast-shallow-equal: ^1.0.0 + js-cookie: ^2.2.1 + nano-css: ^5.6.2 + react-universal-interface: ^0.6.2 + resize-observer-polyfill: ^1.5.1 + screenfull: ^5.1.0 + set-harmonic-interval: ^1.0.1 + throttle-debounce: ^3.0.1 + ts-easing: ^0.2.0 + tslib: ^2.1.0 + peerDependencies: + react: "*" + react-dom: "*" + checksum: c76de18b56b554bfbb28199e4ad4098f4e4ab15f0d3cefef661a7a5e6a4c167ae85390fc7bc648c34b80c17498abf1e8223d7078f3e51c09e4da70e11a41a54e + languageName: node + linkType: hard + +"react-virtualized-auto-sizer@npm:^1.0.11": + version: 1.0.25 + resolution: "react-virtualized-auto-sizer@npm:1.0.25" + peerDependencies: + react: ^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0 || ^19.0.0 + checksum: 1d325db5bf78fd4a6a8df90fccc9a50b29c648d899d2ce779159903c7eaba2a98254e6436ca6d366b89c44c8b2de7042425dd36d17874d2b51a2455557423c3a + languageName: node + linkType: hard + +"react-window@npm:^1.8.10, react-window@npm:^1.8.6": + version: 1.8.11 + resolution: "react-window@npm:1.8.11" + dependencies: + "@babel/runtime": ^7.0.0 + memoize-one: ">=3.1.1 <6" + peerDependencies: + 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: 04f0835869fbc1dc69637416e91bd7dfd462dcb9bf33ed2db4b4a515116c7a1c1ded3ca5e6df8d9a9ea3ec4f34e8e05f642d50f969bb495a9e11906d6a8cc418 languageName: node linkType: hard -"react-is@npm:^18.0.0": +"react@npm:^16.13.1 || ^17.0.0 || ^18.0.0, react@npm:^18.0.2": version: 18.3.1 - resolution: "react-is@npm:18.3.1" - checksum: e20fe84c86ff172fc8d898251b7cc2c43645d108bf96d0b8edf39b98f9a2cae97b40520ee7ed8ee0085ccc94736c4886294456033304151c3f94978cec03df21 + resolution: "react@npm:18.3.1" + dependencies: + loose-envify: ^1.1.0 + checksum: a27bcfa8ff7c15a1e50244ad0d0c1cb2ad4375eeffefd266a64889beea6f6b64c4966c9b37d14ee32d6c9fcd5aa6ba183b6988167ab4d127d13e7cb5b386a376 languageName: node linkType: hard -"react-refresh@npm:^0.14.0": - version: 0.14.2 - resolution: "react-refresh@npm:0.14.2" - checksum: d80db4bd40a36dab79010dc8aa317a5b931f960c0d83c4f3b81f0552cbcf7f29e115b84bb7908ec6a1eb67720fff7023084eff73ece8a7ddc694882478464382 +"read-tls-client-hello@npm:^1.0.0": + version: 1.0.1 + resolution: "read-tls-client-hello@npm:1.0.1" + dependencies: + "@types/node": "*" + checksum: 532c1c32ef049c245b59473ad7a06ad5db61bd22258ccfb54923be24173e8cafbb1a6a17bcc783884dce9b98db15db76a9569ea9c95b2b9b729be990439b931b languageName: node linkType: hard @@ -20143,7 +31171,18 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:^2.0.1, readable-stream@npm:^2.0.2, readable-stream@npm:^2.0.5, readable-stream@npm:^2.3.3, readable-stream@npm:^2.3.6, readable-stream@npm:^2.3.8": +"readable-stream@npm:3, readable-stream@npm:^3.0.0, readable-stream@npm:^3.0.2, readable-stream@npm:^3.0.6, readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0, readable-stream@npm:^3.5.0, readable-stream@npm:^3.6.0, readable-stream@npm:^3.6.2": + version: 3.6.2 + resolution: "readable-stream@npm:3.6.2" + dependencies: + inherits: ^2.0.3 + string_decoder: ^1.1.1 + util-deprecate: ^1.0.1 + checksum: bdcbe6c22e846b6af075e32cf8f4751c2576238c5043169a1c221c92ee2878458a816a4ea33f4c67623c0b6827c8a400409bfb3cf0bf3381392d0b1dfb52ac8d + languageName: node + linkType: hard + +"readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.1, readable-stream@npm:^2.0.2, readable-stream@npm:^2.0.5, readable-stream@npm:^2.2.2, readable-stream@npm:^2.3.3, readable-stream@npm:^2.3.6, readable-stream@npm:^2.3.8, readable-stream@npm:~2.3.6": version: 2.3.8 resolution: "readable-stream@npm:2.3.8" dependencies: @@ -20158,27 +31197,25 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:^3.0.2, readable-stream@npm:^3.0.6, readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0, readable-stream@npm:^3.5.0, readable-stream@npm:^3.6.0": - version: 3.6.2 - resolution: "readable-stream@npm:3.6.2" - dependencies: - inherits: ^2.0.3 - string_decoder: ^1.1.1 - util-deprecate: ^1.0.1 - checksum: bdcbe6c22e846b6af075e32cf8f4751c2576238c5043169a1c221c92ee2878458a816a4ea33f4c67623c0b6827c8a400409bfb3cf0bf3381392d0b1dfb52ac8d - languageName: node - linkType: hard - -"readable-stream@npm:^4.0.0, readable-stream@npm:^4.5.2": - version: 4.5.2 - resolution: "readable-stream@npm:4.5.2" +"readable-stream@npm:^4.0.0": + version: 4.6.0 + resolution: "readable-stream@npm:4.6.0" dependencies: abort-controller: ^3.0.0 buffer: ^6.0.3 events: ^3.3.0 process: ^0.11.10 string_decoder: ^1.3.0 - checksum: c4030ccff010b83e4f33289c535f7830190773e274b3fcb6e2541475070bdfd69c98001c3b0cb78763fc00c8b62f514d96c2b10a8bd35d5ce45203a25fa1d33a + checksum: e688851298eeb6077e82efb32d692389a8db9e42037c1e9ba95533818f6c1899b80572cce987273dd90b3bf0b1b15b51519c82ea7a863d808b215b3b49ef4a95 + languageName: node + linkType: hard + +"readable-web-to-node-stream@npm:^3.0.0": + version: 3.0.2 + resolution: "readable-web-to-node-stream@npm:3.0.2" + dependencies: + readable-stream: ^3.6.0 + checksum: 8c56cc62c68513425ddfa721954875b382768f83fa20e6b31e365ee00cbe7a3d6296f66f7f1107b16cd3416d33aa9f1680475376400d62a081a88f81f0ea7f9c languageName: node linkType: hard @@ -20218,6 +31255,16 @@ __metadata: languageName: node linkType: hard +"redent@npm:^3.0.0": + version: 3.0.0 + resolution: "redent@npm:3.0.0" + dependencies: + indent-string: ^4.0.0 + strip-indent: ^3.0.0 + checksum: fa1ef20404a2d399235e83cc80bd55a956642e37dd197b4b612ba7327bf87fa32745aeb4a1634b2bab25467164ab4ed9c15be2c307923dd08b0fe7c52431ae6b + languageName: node + linkType: hard + "redis-errors@npm:^1.0.0, redis-errors@npm:^1.2.0": version: 1.2.0 resolution: "redis-errors@npm:1.2.0" @@ -20234,6 +31281,45 @@ __metadata: languageName: node linkType: hard +"redis@npm:^4.7.0": + version: 4.7.0 + resolution: "redis@npm:4.7.0" + dependencies: + "@redis/bloom": 1.2.0 + "@redis/client": 1.6.0 + "@redis/graph": 1.1.1 + "@redis/json": 1.0.7 + "@redis/search": 1.2.0 + "@redis/time-series": 1.1.0 + checksum: 625172dd913118241288c33f351cda42630819bc82a1dc31f22e1d3e0a4267075ecb851aecfaf106a0c73ff287a434a3df3d2a8ce46713acf68d34d66efc39ec + languageName: node + linkType: hard + +"redux-immutable@npm:^4.0.0": + version: 4.0.0 + resolution: "redux-immutable@npm:4.0.0" + peerDependencies: + immutable: ^3.8.1 || ^4.0.0-rc.1 + checksum: c24d3408c3d3b24e10ef3040b722e1d20520bf9a6c43b37653f49de93516e198ee247184003331227fa7a1f1598fb964fb4bcb41522586b31073000a3b3820e8 + languageName: node + linkType: hard + +"redux@npm:^4.0.0, redux@npm:^4.0.4": + version: 4.2.1 + resolution: "redux@npm:4.2.1" + dependencies: + "@babel/runtime": ^7.9.2 + checksum: f63b9060c3a1d930ae775252bb6e579b42415aee7a23c4114e21a0b4ba7ec12f0ec76936c00f546893f06e139819f0e2855e0d55ebfce34ca9c026241a6950dd + languageName: node + linkType: hard + +"redux@npm:^5.0.1": + version: 5.0.1 + resolution: "redux@npm:5.0.1" + checksum: e74affa9009dd5d994878b9a1ce30d6569d986117175056edb003de2651c05b10fe7819d6fa94aea1a94de9a82f252f986547f007a2fbeb35c317a2e5f5ecf2c + languageName: node + linkType: hard + "reflect-metadata@npm:0.1.13": version: 0.1.13 resolution: "reflect-metadata@npm:0.1.13" @@ -20241,18 +31327,30 @@ __metadata: languageName: node linkType: hard -"reflect.getprototypeof@npm:^1.0.4": - version: 1.0.6 - resolution: "reflect.getprototypeof@npm:1.0.6" +"reflect.getprototypeof@npm:^1.0.6, reflect.getprototypeof@npm:^1.0.8, reflect.getprototypeof@npm:^1.0.9": + version: 1.0.9 + resolution: "reflect.getprototypeof@npm:1.0.9" dependencies: - call-bind: ^1.0.7 + call-bind: ^1.0.8 define-properties: ^1.2.1 - es-abstract: ^1.23.1 + dunder-proto: ^1.0.1 + es-abstract: ^1.23.6 es-errors: ^1.3.0 - get-intrinsic: ^1.2.4 - globalthis: ^1.0.3 - which-builtin-type: ^1.1.3 - checksum: 88e9e65a7eaa0bf8e9a8bbf8ac07571363bc333ba8b6769ed5e013e0042ed7c385e97fae9049510b3b5fe4b42472d8f32de9ce8ce84902bc4297d4bbe3777dba + get-intrinsic: ^1.2.6 + gopd: ^1.2.0 + which-builtin-type: ^1.2.1 + checksum: 280cfdb1ba29d838440731ccea877431ec41415783dff7845d5f026c9923a71165a00e56ebd21050cec31e9c39e2e3620d6077ad3025d3782ede8b47d14ef8ab + languageName: node + linkType: hard + +"refractor@npm:^3.6.0": + version: 3.6.0 + resolution: "refractor@npm:3.6.0" + dependencies: + hastscript: ^6.0.0 + parse-entities: ^2.0.0 + prismjs: ~1.27.0 + checksum: 39b01c4168c77c5c8486f9bf8907bbb05f257f15026057ba5728535815a2d90eed620468a4bfbb2b8ceefbb3ce3931a1be8b17152dbdbc8b0eef92450ff750a2 languageName: node linkType: hard @@ -20272,6 +31370,20 @@ __metadata: languageName: node linkType: hard +"regenerator-runtime@npm:^0.10.5": + version: 0.10.5 + resolution: "regenerator-runtime@npm:0.10.5" + checksum: 35b33dbe5381d268b2be98f4ee4b028702acb38b012bff90723df067f915a337e5c979cce4dab4ed23febb223bbebb8820d46902f897742c55818c22c14e2a7c + languageName: node + linkType: hard + +"regenerator-runtime@npm:^0.11.0": + version: 0.11.1 + resolution: "regenerator-runtime@npm:0.11.1" + checksum: 3c97bd2c7b2b3247e6f8e2147a002eb78c995323732dad5dc70fac8d8d0b758d0295e7015b90d3d444446ae77cbd24b9f9123ec3a77018e81d8999818301b4f4 + languageName: node + linkType: hard + "regenerator-runtime@npm:^0.14.0": version: 0.14.1 resolution: "regenerator-runtime@npm:0.14.1" @@ -20288,7 +31400,7 @@ __metadata: languageName: node linkType: hard -"regexp.prototype.flags@npm:^1.5.2": +"regexp.prototype.flags@npm:^1.5.1, regexp.prototype.flags@npm:^1.5.3": version: 1.5.3 resolution: "regexp.prototype.flags@npm:1.5.3" dependencies: @@ -20300,17 +31412,17 @@ __metadata: languageName: node linkType: hard -"regexpu-core@npm:^6.1.1": - version: 6.1.1 - resolution: "regexpu-core@npm:6.1.1" +"regexpu-core@npm:^6.2.0": + version: 6.2.0 + resolution: "regexpu-core@npm:6.2.0" dependencies: regenerate: ^1.4.2 regenerate-unicode-properties: ^10.2.0 regjsgen: ^0.8.0 - regjsparser: ^0.11.0 + regjsparser: ^0.12.0 unicode-match-property-ecmascript: ^2.0.0 unicode-match-property-value-ecmascript: ^2.1.0 - checksum: ed8e3784e81b816b237313688f28b4695d30d4e0f823dfdf130fd4313c629ac6ec67650563867a6ca9a2435f33e79f3a5001c651aee52791e346213a948de0ff + checksum: 67d3c4a3f6c99bc80b5d690074a27e6f675be1c1739f8a9acf028fbc36f1a468472574ea65e331e217995198ba4404d7878f3cb3739a73552dd3c70d3fb7f8e6 languageName: node linkType: hard @@ -20321,14 +31433,21 @@ __metadata: languageName: node linkType: hard -"regjsparser@npm:^0.11.0": - version: 0.11.2 - resolution: "regjsparser@npm:0.11.2" +"regjsparser@npm:^0.12.0": + version: 0.12.0 + resolution: "regjsparser@npm:0.12.0" dependencies: jsesc: ~3.0.2 bin: regjsparser: bin/parser - checksum: 500ab99d6174aef18b43518f4b1f217192459621b0505ad6e8cbbec8135a83e64491077843b4ad06249a207ffecd6566f3db1895a7c5df98f786b4b0edcc9820 + checksum: 094b55b0ab3e1fd58f8ce5132a1d44dab08d91f7b0eea4132b0157b303ebb8ded20a9cbd893d25402d2aeddb23fac1f428ab4947b295d6fa51dd1c334a9e76f0 + languageName: node + linkType: hard + +"regression@npm:^2.0.1": + version: 2.0.1 + resolution: "regression@npm:2.0.1" + checksum: 2afb76ed65c87f22ef25dffb19fa95d70cded586ee9fcd5239f61d40993f5904bab0aae8fece73a8dddd35e19956a027004e727385ee4b4e7f800229a50edfb5 languageName: node linkType: hard @@ -20339,6 +31458,60 @@ __metadata: languageName: node linkType: hard +"remark-gfm@npm:^3.0.1": + version: 3.0.1 + resolution: "remark-gfm@npm:3.0.1" + dependencies: + "@types/mdast": ^3.0.0 + mdast-util-gfm: ^2.0.0 + micromark-extension-gfm: ^2.0.0 + unified: ^10.0.0 + checksum: 02254f74d67b3419c2c9cf62d799ec35f6c6cd74db25c001361751991552a7ce86049a972107bff8122d85d15ae4a8d1a0618f3bc01a7df837af021ae9b2a04e + languageName: node + linkType: hard + +"remark-parse@npm:^10.0.0": + version: 10.0.2 + resolution: "remark-parse@npm:10.0.2" + dependencies: + "@types/mdast": ^3.0.0 + mdast-util-from-markdown: ^1.0.0 + unified: ^10.0.0 + checksum: 5041b4b44725f377e69986e02f8f072ae2222db5e7d3b6c80829756b842e811343ffc2069cae1f958a96bfa36104ab91a57d7d7e2f0cef521e210ab8c614d5c7 + languageName: node + linkType: hard + +"remark-rehype@npm:^10.0.0": + version: 10.1.0 + resolution: "remark-rehype@npm:10.1.0" + dependencies: + "@types/hast": ^2.0.0 + "@types/mdast": ^3.0.0 + mdast-util-to-hast: ^12.1.0 + unified: ^10.0.0 + checksum: b9ac8acff3383b204dfdc2599d0bdf86e6ca7e837033209584af2e6aaa6a9013e519a379afa3201299798cab7298c8f4b388de118c312c67234c133318aec084 + languageName: node + linkType: hard + +"remarkable@npm:^2.0.1": + version: 2.0.1 + resolution: "remarkable@npm:2.0.1" + dependencies: + argparse: ^1.0.10 + autolinker: ^3.11.0 + bin: + remarkable: bin/remarkable.js + checksum: aee83ece531a7196f92e668aa76450f17bc1af77ce2939153f57b289b54f3aa3a72f355f4d57680336ab8205d53dca7ae06e6e743355ad2d4868cc7c85eafe89 + languageName: node + linkType: hard + +"remove-trailing-separator@npm:^1.0.1": + version: 1.1.0 + resolution: "remove-trailing-separator@npm:1.1.0" + checksum: d3c20b5a2d987db13e1cca9385d56ecfa1641bae143b620835ac02a6b70ab88f68f117a0021838db826c57b31373d609d52e4f31aca75fc490c862732d595419 + languageName: node + linkType: hard + "renderkid@npm:^3.0.0": version: 3.0.0 resolution: "renderkid@npm:3.0.0" @@ -20352,6 +31525,13 @@ __metadata: languageName: node linkType: hard +"repeat-string@npm:^1.5.2": + version: 1.6.1 + resolution: "repeat-string@npm:1.6.1" + checksum: 1b809fc6db97decdc68f5b12c4d1a671c8e3f65ec4a40c238bc5200e44e85bcc52a54f78268ab9c29fcf5fe4f1343e805420056d1f30fa9a9ee4c2d93e3cc6c0 + languageName: node + linkType: hard + "replace-in-file@npm:^7.1.0": version: 7.2.0 resolution: "replace-in-file@npm:7.2.0" @@ -20414,6 +31594,27 @@ __metadata: languageName: node linkType: hard +"reselect@npm:^5.1.1": + version: 5.1.1 + resolution: "reselect@npm:5.1.1" + checksum: 5d32d48be29071ddda21a775945c2210cf4ca3fccde1c4a0e1582ac3bf99c431c6c2330ef7ca34eae4c06feea617e7cb2c275c4b33ccf9a930836dfc98b49b13 + languageName: node + linkType: hard + +"resize-observer-polyfill@npm:^1.5.0, resize-observer-polyfill@npm:^1.5.1": + version: 1.5.1 + resolution: "resize-observer-polyfill@npm:1.5.1" + checksum: 57e7f79489867b00ba43c9c051524a5c8f162a61d5547e99333549afc23e15c44fd43f2f318ea0261ea98c0eb3158cca261e6f48d66e1ed1cd1f340a43977094 + languageName: node + linkType: hard + +"resolve-alpn@npm:^1.2.0": + version: 1.2.1 + resolution: "resolve-alpn@npm:1.2.1" + checksum: f558071fcb2c60b04054c99aebd572a2af97ef64128d59bef7ab73bd50d896a222a056de40ffc545b633d99b304c259ea9d0c06830d5c867c34f0bfa60b8eae0 + languageName: node + linkType: hard + "resolve-cwd@npm:^3.0.0": version: 3.0.0 resolution: "resolve-cwd@npm:3.0.0" @@ -20433,6 +31634,13 @@ __metadata: languageName: node linkType: hard +"resolve-from@npm:5.0.0, resolve-from@npm:^5.0.0": + version: 5.0.0 + resolution: "resolve-from@npm:5.0.0" + checksum: 4ceeb9113e1b1372d0cd969f3468fa042daa1dd9527b1b6bb88acb6ab55d8b9cd65dbf18819f9f9ddf0db804990901dcdaade80a215e7b2c23daae38e64f5bdf + languageName: node + linkType: hard + "resolve-from@npm:^4.0.0": version: 4.0.0 resolution: "resolve-from@npm:4.0.0" @@ -20440,13 +31648,6 @@ __metadata: languageName: node linkType: hard -"resolve-from@npm:^5.0.0": - version: 5.0.0 - resolution: "resolve-from@npm:5.0.0" - checksum: 4ceeb9113e1b1372d0cd969f3468fa042daa1dd9527b1b6bb88acb6ab55d8b9cd65dbf18819f9f9ddf0db804990901dcdaade80a215e7b2c23daae38e64f5bdf - languageName: node - linkType: hard - "resolve-pkg-maps@npm:^1.0.0": version: 1.0.0 resolution: "resolve-pkg-maps@npm:1.0.0" @@ -20455,13 +31656,13 @@ __metadata: linkType: hard "resolve.exports@npm:^2.0.0": - version: 2.0.2 - resolution: "resolve.exports@npm:2.0.2" - checksum: 1c7778ca1b86a94f8ab4055d196c7d87d1874b96df4d7c3e67bbf793140f0717fd506dcafd62785b079cd6086b9264424ad634fb904409764c3509c3df1653f2 + version: 2.0.3 + resolution: "resolve.exports@npm:2.0.3" + checksum: abfb9f98278dcd0c19b8a49bb486abfafa23df4636d49128ea270dc982053c3ef230a530aecda1fae1322873fdfa6c97674fc539651ddfdb375ac58e0b8ef6df languageName: node linkType: hard -"resolve@npm:1.22.8, resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.4, resolve@npm:~1.22.1, resolve@npm:~1.22.2": +"resolve@npm:1.22.8": version: 1.22.8 resolution: "resolve@npm:1.22.8" dependencies: @@ -20474,6 +31675,19 @@ __metadata: languageName: node linkType: hard +"resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.4, resolve@npm:~1.22.1, resolve@npm:~1.22.2": + version: 1.22.10 + resolution: "resolve@npm:1.22.10" + dependencies: + is-core-module: ^2.16.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: ab7a32ff4046fcd7c6fdd525b24a7527847d03c3650c733b909b01b757f92eb23510afa9cc3e9bf3f26a3e073b48c88c706dfd4c1d2fb4a16a96b73b6328ddcf + languageName: node + linkType: hard + "resolve@npm:^2.0.0-next.5": version: 2.0.0-next.5 resolution: "resolve@npm:2.0.0-next.5" @@ -20487,7 +31701,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@1.22.8#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin, resolve@patch:resolve@^1.22.4#~builtin, resolve@patch:resolve@~1.22.1#~builtin, resolve@patch:resolve@~1.22.2#~builtin": +"resolve@patch:resolve@1.22.8#~builtin": version: 1.22.8 resolution: "resolve@patch:resolve@npm%3A1.22.8#~builtin::version=1.22.8&hash=07638b" dependencies: @@ -20500,6 +31714,19 @@ __metadata: languageName: node linkType: hard +"resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin, resolve@patch:resolve@^1.22.4#~builtin, resolve@patch:resolve@~1.22.1#~builtin, resolve@patch:resolve@~1.22.2#~builtin": + version: 1.22.10 + resolution: "resolve@patch:resolve@npm%3A1.22.10#~builtin::version=1.22.10&hash=07638b" + dependencies: + is-core-module: ^2.16.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: 8aac1e4e4628bd00bf4b94b23de137dd3fe44097a8d528fd66db74484be929936e20c696e1a3edf4488f37e14180b73df6f600992baea3e089e8674291f16c9d + languageName: node + linkType: hard + "resolve@patch:resolve@^2.0.0-next.5#~builtin": version: 2.0.0-next.5 resolution: "resolve@patch:resolve@npm%3A2.0.0-next.5#~builtin::version=2.0.0-next.5&hash=07638b" @@ -20523,6 +31750,20 @@ __metadata: languageName: node linkType: hard +"ret@npm:^0.2.0": + version: 0.2.2 + resolution: "ret@npm:0.2.2" + checksum: 774964bb413a3525e687bca92d81c1cd75555ec33147c32ecca22f3d06409e35df87952cfe3d57afff7650a0f7e42139cf60cb44e94c29dde390243bc1941f16 + languageName: node + linkType: hard + +"ret@npm:~0.1.10": + version: 0.1.15 + resolution: "ret@npm:0.1.15" + checksum: d76a9159eb8c946586567bd934358dfc08a36367b3257f7a3d7255fdd7b56597235af23c6afa0d7f0254159e8051f93c918809962ebd6df24ca2a83dbe4d4151 + languageName: node + linkType: hard + "retry-request@npm:^7.0.0": version: 7.0.2 resolution: "retry-request@npm:7.0.2" @@ -20556,9 +31797,9 @@ __metadata: linkType: hard "rfc4648@npm:^1.3.0": - version: 1.5.3 - resolution: "rfc4648@npm:1.5.3" - checksum: 19c81d502582e377125b00fbd7a5cdb0e351f9a1e40182fa9f608b48e1ab852d211b75facb2f4f3fa17f7c6ebc2ef4acca61ae7eb7fbcfa4768f11d2db678116 + version: 1.5.4 + resolution: "rfc4648@npm:1.5.4" + checksum: 4bfd555f16b8ed1bceb3cf4d79242cf3253a2600de51f45ac19549f366b4b8edc0d9b8feaae778059c137f1d10ebd87e125fc839636f6267a7b6badaa95a9f00 languageName: node linkType: hard @@ -20569,6 +31810,17 @@ __metadata: languageName: node linkType: hard +"rifm@npm:^0.7.0": + version: 0.7.0 + resolution: "rifm@npm:0.7.0" + dependencies: + "@babel/runtime": ^7.3.1 + peerDependencies: + react: ">=16.8" + checksum: 7b89d9c5c92cb1b6848964ab5c5042d652ba803fe7ecea2282191e0e820b07fb3345306b2baf69af1cef2f0755c50e97efc51d0cfdd645b8956d05d5d19d381e + languageName: node + linkType: hard + "rimraf@npm:^3.0.2": version: 3.0.2 resolution: "rimraf@npm:3.0.2" @@ -20580,6 +31832,17 @@ __metadata: languageName: node linkType: hard +"rimraf@npm:^5.0.5": + version: 5.0.10 + resolution: "rimraf@npm:5.0.10" + dependencies: + glob: ^10.3.7 + bin: + rimraf: dist/esm/bin.mjs + checksum: 50e27388dd2b3fa6677385fc1e2966e9157c89c86853b96d02e6915663a96b7ff4d590e14f6f70e90f9b554093aa5dbc05ac3012876be558c06a65437337bc05 + languageName: node + linkType: hard + "ripemd160@npm:^2.0.0, ripemd160@npm:^2.0.1": version: 2.0.2 resolution: "ripemd160@npm:2.0.2" @@ -20604,19 +31867,10 @@ __metadata: languageName: node linkType: hard -"rollup-plugin-dts@npm:^4.0.1": - version: 4.2.3 - resolution: "rollup-plugin-dts@npm:4.2.3" - dependencies: - "@babel/code-frame": ^7.18.6 - magic-string: ^0.26.6 - peerDependencies: - rollup: ^2.55 - typescript: ^4.1 - dependenciesMeta: - "@babel/code-frame": - optional: true - checksum: b1de94202d0574e7c12105bf0d013e7142c1b9b74d6b83d194d870dcdc281e90cff45ed47a0ab1c62280cc25e75f522e1278ec0ba89c8f75b8bcb56dc98c2c63 +"robust-predicates@npm:^3.0.2": + version: 3.0.2 + resolution: "robust-predicates@npm:3.0.2" + checksum: 36854c1321548ceca96d36ad9d6e0a5a512986029ec6929ad6ed3ec1612c22cc8b46cc72d2c5674af42e8074a119d793f6f0ea3a5b51373e3ab926c64b172d7a languageName: node linkType: hard @@ -20636,22 +31890,6 @@ __metadata: languageName: node linkType: hard -"rollup-plugin-esbuild@npm:^4.7.2": - version: 4.10.3 - resolution: "rollup-plugin-esbuild@npm:4.10.3" - dependencies: - "@rollup/pluginutils": ^4.1.1 - debug: ^4.3.3 - es-module-lexer: ^0.9.3 - joycon: ^3.0.1 - jsonc-parser: ^3.0.0 - peerDependencies: - esbuild: ">=0.10.1" - rollup: ^1.20.0 || ^2.0.0 - checksum: 490a6a77573672cfda64a0222bb0dc2c202060bf4e9162571e24f2c26689e0e9faffced9c409eac80b35943dab06d1f0bd8bb3e2d3c6957b6bac1c0d6e5155cc - languageName: node - linkType: hard - "rollup-plugin-esbuild@npm:^6.1.1": version: 6.1.1 resolution: "rollup-plugin-esbuild@npm:6.1.1" @@ -20699,42 +31937,29 @@ __metadata: languageName: node linkType: hard -"rollup@npm:^2.78.0": - version: 2.79.2 - resolution: "rollup@npm:2.79.2" - dependencies: - fsevents: ~2.3.2 - dependenciesMeta: - fsevents: - optional: true - bin: - rollup: dist/bin/rollup - checksum: df7aa4c8b95245dede157b06ab71e1921de6080757d30e9bf31f8fb142064d12dda865e2bafbab4349588f43425b2965a290c9a5da1c048246a70fc21734ebd7 - languageName: node - linkType: hard - "rollup@npm:^4.0.0": - version: 4.24.3 - resolution: "rollup@npm:4.24.3" - dependencies: - "@rollup/rollup-android-arm-eabi": 4.24.3 - "@rollup/rollup-android-arm64": 4.24.3 - "@rollup/rollup-darwin-arm64": 4.24.3 - "@rollup/rollup-darwin-x64": 4.24.3 - "@rollup/rollup-freebsd-arm64": 4.24.3 - "@rollup/rollup-freebsd-x64": 4.24.3 - "@rollup/rollup-linux-arm-gnueabihf": 4.24.3 - "@rollup/rollup-linux-arm-musleabihf": 4.24.3 - "@rollup/rollup-linux-arm64-gnu": 4.24.3 - "@rollup/rollup-linux-arm64-musl": 4.24.3 - "@rollup/rollup-linux-powerpc64le-gnu": 4.24.3 - "@rollup/rollup-linux-riscv64-gnu": 4.24.3 - "@rollup/rollup-linux-s390x-gnu": 4.24.3 - "@rollup/rollup-linux-x64-gnu": 4.24.3 - "@rollup/rollup-linux-x64-musl": 4.24.3 - "@rollup/rollup-win32-arm64-msvc": 4.24.3 - "@rollup/rollup-win32-ia32-msvc": 4.24.3 - "@rollup/rollup-win32-x64-msvc": 4.24.3 + version: 4.28.1 + resolution: "rollup@npm:4.28.1" + dependencies: + "@rollup/rollup-android-arm-eabi": 4.28.1 + "@rollup/rollup-android-arm64": 4.28.1 + "@rollup/rollup-darwin-arm64": 4.28.1 + "@rollup/rollup-darwin-x64": 4.28.1 + "@rollup/rollup-freebsd-arm64": 4.28.1 + "@rollup/rollup-freebsd-x64": 4.28.1 + "@rollup/rollup-linux-arm-gnueabihf": 4.28.1 + "@rollup/rollup-linux-arm-musleabihf": 4.28.1 + "@rollup/rollup-linux-arm64-gnu": 4.28.1 + "@rollup/rollup-linux-arm64-musl": 4.28.1 + "@rollup/rollup-linux-loongarch64-gnu": 4.28.1 + "@rollup/rollup-linux-powerpc64le-gnu": 4.28.1 + "@rollup/rollup-linux-riscv64-gnu": 4.28.1 + "@rollup/rollup-linux-s390x-gnu": 4.28.1 + "@rollup/rollup-linux-x64-gnu": 4.28.1 + "@rollup/rollup-linux-x64-musl": 4.28.1 + "@rollup/rollup-win32-arm64-msvc": 4.28.1 + "@rollup/rollup-win32-ia32-msvc": 4.28.1 + "@rollup/rollup-win32-x64-msvc": 4.28.1 "@types/estree": 1.0.6 fsevents: ~2.3.2 dependenciesMeta: @@ -20758,6 +31983,8 @@ __metadata: optional: true "@rollup/rollup-linux-arm64-musl": optional: true + "@rollup/rollup-linux-loongarch64-gnu": + optional: true "@rollup/rollup-linux-powerpc64le-gnu": optional: true "@rollup/rollup-linux-riscv64-gnu": @@ -20778,7 +32005,16 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: d5e34ac61acef38faa8c5a38d80cede46dcc290eb53f88bd3274266b1cc244ef41f2821a4400b7b43dce560ec1c7fa4d34722432eba891e4101307a5dc344075 + checksum: 092b87526d32e6f97aa4912184f7b29b7e3b28009b2b8c6cac841c311c07e7636f6108c4338f1f66d8ed699ddd9100db4218faf50d6cfd358b2a85749aeb8935 + languageName: node + linkType: hard + +"rtl-css-js@npm:^1.16.1": + version: 1.16.1 + resolution: "rtl-css-js@npm:1.16.1" + dependencies: + "@babel/runtime": ^7.1.2 + checksum: 7d9ab942098eee565784ccf957f6b7dfa78ea1eec7c6bffedc6641575d274189e90752537c7bdba1f43ae6534648144f467fd6d581527455ba626a4300e62c7a languageName: node linkType: hard @@ -20812,7 +32048,14 @@ __metadata: languageName: node linkType: hard -"rxjs@npm:7.8.1, rxjs@npm:^7.5.5": +"rw@npm:1": + version: 1.3.3 + resolution: "rw@npm:1.3.3" + checksum: c20d82421f5a71c86a13f76121b751553a99cd4a70ea27db86f9b23f33db941f3f06019c30f60d50c356d0bd674c8e74764ac146ea55e217c091bde6fba82aa3 + languageName: node + linkType: hard + +"rxjs@npm:7.8.1, rxjs@npm:^7.5.5, rxjs@npm:^7.8.1": version: 7.8.1 resolution: "rxjs@npm:7.8.1" dependencies: @@ -20821,24 +32064,41 @@ __metadata: languageName: node linkType: hard -"rxjs@npm:^6.6.3": - version: 6.6.7 - resolution: "rxjs@npm:6.6.7" - dependencies: - tslib: ^1.9.0 - checksum: bc334edef1bb8bbf56590b0b25734ba0deaf8825b703256a93714308ea36dff8a11d25533671adf8e104e5e8f256aa6fdfe39b2e248cdbd7a5f90c260acbbd1b +"rxjs@npm:^6.6.3": + version: 6.6.7 + resolution: "rxjs@npm:6.6.7" + dependencies: + tslib: ^1.9.0 + checksum: bc334edef1bb8bbf56590b0b25734ba0deaf8825b703256a93714308ea36dff8a11d25533671adf8e104e5e8f256aa6fdfe39b2e248cdbd7a5f90c260acbbd1b + languageName: node + linkType: hard + +"sade@npm:^1.7.3": + version: 1.8.1 + resolution: "sade@npm:1.8.1" + dependencies: + mri: ^1.1.0 + checksum: 0756e5b04c51ccdc8221ebffd1548d0ce5a783a44a0fa9017a026659b97d632913e78f7dca59f2496aa996a0be0b0c322afd87ca72ccd909406f49dbffa0f45d + languageName: node + linkType: hard + +"safari-14-idb-fix@npm:^1.0.6": + version: 1.0.6 + resolution: "safari-14-idb-fix@npm:1.0.6" + checksum: 588cd632606ff0e47d64d0b71d88f9626f6187177a3187cb063a272ecb0412f7453f4e9321a9e731a1439b7830aa24f907e2338b402e1ef24e8d6a42f7ce8532 languageName: node linkType: hard -"safe-array-concat@npm:^1.1.2": - version: 1.1.2 - resolution: "safe-array-concat@npm:1.1.2" +"safe-array-concat@npm:^1.1.2, safe-array-concat@npm:^1.1.3": + version: 1.1.3 + resolution: "safe-array-concat@npm:1.1.3" dependencies: - call-bind: ^1.0.7 - get-intrinsic: ^1.2.4 - has-symbols: ^1.0.3 + call-bind: ^1.0.8 + call-bound: ^1.0.2 + get-intrinsic: ^1.2.6 + has-symbols: ^1.1.0 isarray: ^2.0.5 - checksum: a3b259694754ddfb73ae0663829e396977b99ff21cbe8607f35a469655656da8e271753497e59da8a7575baa94d2e684bea3e10ddd74ba046c0c9b4418ffa0c4 + checksum: 00f6a68140e67e813f3ad5e73e6dedcf3e42a9fa01f04d44b0d3f7b1f4b257af876832a9bfc82ac76f307e8a6cc652e3cf95876048a26cbec451847cf6ae3707 languageName: node linkType: hard @@ -20863,14 +32123,14 @@ __metadata: languageName: node linkType: hard -"safe-regex-test@npm:^1.0.3": - version: 1.0.3 - resolution: "safe-regex-test@npm:1.0.3" +"safe-regex-test@npm:^1.0.3, safe-regex-test@npm:^1.1.0": + version: 1.1.0 + resolution: "safe-regex-test@npm:1.1.0" dependencies: - call-bind: ^1.0.6 + call-bound: ^1.0.2 es-errors: ^1.3.0 - is-regex: ^1.1.4 - checksum: 6c7d392ff1ae7a3ae85273450ed02d1d131f1d2c76e177d6b03eb88e6df8fa062639070e7d311802c1615f351f18dc58f9454501c58e28d5ffd9b8f502ba6489 + is-regex: ^1.2.1 + checksum: 3c809abeb81977c9ed6c869c83aca6873ea0f3ab0f806b8edbba5582d51713f8a6e9757d24d2b4b088f563801475ea946c8e77e7713e8c65cdd02305b6caedab languageName: node linkType: hard @@ -20895,6 +32155,22 @@ __metadata: languageName: node linkType: hard +"sax@npm:>=0.6.0": + version: 1.4.1 + resolution: "sax@npm:1.4.1" + checksum: 3ad64df16b743f0f2eb7c38ced9692a6d924f1cd07bbe45c39576c2cf50de8290d9d04e7b2228f924c7d05fecc4ec5cf651423278e0c7b63d260c387ef3af84a + languageName: node + linkType: hard + +"saxes@npm:^5.0.1": + version: 5.0.1 + resolution: "saxes@npm:5.0.1" + dependencies: + xmlchars: ^2.2.0 + checksum: 5636b55cf15f7cf0baa73f2797bf992bdcf75d1b39d82c0aa4608555c774368f6ac321cb641fd5f3d3ceb87805122cd47540da6a7b5960fe0dbdb8f8c263f000 + languageName: node + linkType: hard + "saxes@npm:^6.0.0": version: 6.0.0 resolution: "saxes@npm:6.0.0" @@ -20904,6 +32180,15 @@ __metadata: languageName: node linkType: hard +"scheduler@npm:^0.23.2": + version: 0.23.2 + resolution: "scheduler@npm:0.23.2" + dependencies: + loose-envify: ^1.1.0 + checksum: 3e82d1f419e240ef6219d794ff29c7ee415fbdc19e038f680a10c067108e06284f1847450a210b29bbaf97b9d8a97ced5f624c31c681248ac84c80d56ad5a2c4 + languageName: node + linkType: hard + "schema-utils@npm:2.7.0": version: 2.7.0 resolution: "schema-utils@npm:2.7.0" @@ -20926,15 +32211,31 @@ __metadata: languageName: node linkType: hard -"schema-utils@npm:^4.0.0, schema-utils@npm:^4.2.0": - version: 4.2.0 - resolution: "schema-utils@npm:4.2.0" +"schema-utils@npm:^4.0.0, schema-utils@npm:^4.2.0, schema-utils@npm:^4.3.0": + version: 4.3.0 + resolution: "schema-utils@npm:4.3.0" dependencies: "@types/json-schema": ^7.0.9 ajv: ^8.9.0 ajv-formats: ^2.1.1 ajv-keywords: ^5.1.0 - checksum: 26a0463d47683258106e6652e9aeb0823bf0b85843039e068b57da1892f7ae6b6b1094d48e9ed5ba5cbe9f7166469d880858b9d91abe8bd249421eb813850cde + checksum: 3dbd9056727c871818eaf3cabeeb5c9e173ae2b17bbf2a9c7a2e49c220fa1a580e44df651c876aea3b4926cecf080730a39e28202cb63f2b68d99872b49cd37a + languageName: node + linkType: hard + +"schemes@npm:^1.4.0": + version: 1.4.0 + resolution: "schemes@npm:1.4.0" + dependencies: + extend: ^3.0.0 + checksum: 729646ac65fbf2b76529c8bbb3433b1079891c4916556d2e1302bfb0c6b84dafcc00ee56e76c4572becd70a2c22a8fd4690b656ea43d1e6b70c180720735948e + languageName: node + linkType: hard + +"screenfull@npm:5.2.0, screenfull@npm:^5.1.0": + version: 5.2.0 + resolution: "screenfull@npm:5.2.0" + checksum: 21eae33b780eb4679ea0ea2d14734b11168cf35049c45a2bf24ddeb39c67a788e7a8fb46d8b61ca6d8367fd67ce9dd4fc8bfe476489249c7189c2a79cf83f51a languageName: node linkType: hard @@ -20945,7 +32246,7 @@ __metadata: languageName: node linkType: hard -"selfsigned@npm:^2.0.0, selfsigned@npm:^2.1.1, selfsigned@npm:^2.4.1": +"selfsigned@npm:^2.0.0, selfsigned@npm:^2.4.1": version: 2.4.1 resolution: "selfsigned@npm:2.4.1" dependencies: @@ -20971,7 +32272,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^6.3.0, semver@npm:^6.3.1": +"semver@npm:^6.0.0, semver@npm:^6.3.0, semver@npm:^6.3.1": version: 6.3.1 resolution: "semver@npm:6.3.1" bin: @@ -21028,7 +32329,7 @@ __metadata: languageName: node linkType: hard -"serialize-error@npm:^8.0.1": +"serialize-error@npm:^8.0.1, serialize-error@npm:^8.1.0": version: 8.1.0 resolution: "serialize-error@npm:8.1.0" dependencies: @@ -21037,7 +32338,7 @@ __metadata: languageName: node linkType: hard -"serialize-javascript@npm:^6.0.1": +"serialize-javascript@npm:^6.0.2": version: 6.0.2 resolution: "serialize-javascript@npm:6.0.2" dependencies: @@ -21087,7 +32388,7 @@ __metadata: languageName: node linkType: hard -"set-function-length@npm:^1.2.1": +"set-function-length@npm:^1.2.2": version: 1.2.2 resolution: "set-function-length@npm:1.2.2" dependencies: @@ -21101,7 +32402,7 @@ __metadata: languageName: node linkType: hard -"set-function-name@npm:^2.0.1, set-function-name@npm:^2.0.2": +"set-function-name@npm:^2.0.2": version: 2.0.2 resolution: "set-function-name@npm:2.0.2" dependencies: @@ -21113,7 +32414,24 @@ __metadata: languageName: node linkType: hard -"setimmediate@npm:^1.0.4": +"set-harmonic-interval@npm:^1.0.1": + version: 1.0.1 + resolution: "set-harmonic-interval@npm:1.0.1" + checksum: c122b831c2e0b1fb812e5e9d065094b9d174bd0576f9a779ab7a7d8881c8f6dd7d5fcab9a2553da15eea670eb598f9dd4d5162b626d45cc9c529706aa1444a84 + languageName: node + linkType: hard + +"set-value@npm:^4.1.0": + version: 4.1.0 + resolution: "set-value@npm:4.1.0" + dependencies: + is-plain-object: ^2.0.4 + is-primitive: ^3.0.1 + checksum: 2b4f0f222538ae4c1f4171a5014c113649631c86ed81d1ac0c2df406d0a974d8006412ce1d7844c531268f1c66eb912f7eae7245ab3114e34357f1ff9d6dc697 + languageName: node + linkType: hard + +"setimmediate@npm:^1.0.4, setimmediate@npm:^1.0.5": version: 1.0.5 resolution: "setimmediate@npm:1.0.5" checksum: c9a6f2c5b51a2dabdc0247db9c46460152ffc62ee139f3157440bd48e7c59425093f42719ac1d7931f054f153e2d26cf37dfeb8da17a794a58198a2705e527fd @@ -21134,7 +32452,7 @@ __metadata: languageName: node linkType: hard -"sha.js@npm:^2.4.0, sha.js@npm:^2.4.8, sha.js@npm:^2.4.9": +"sha.js@npm:^2.4.0, sha.js@npm:^2.4.11, sha.js@npm:^2.4.8, sha.js@npm:^2.4.9": version: 2.4.11 resolution: "sha.js@npm:2.4.11" dependencies: @@ -21146,15 +32464,6 @@ __metadata: languageName: node linkType: hard -"shebang-command@npm:^1.2.0": - version: 1.2.0 - resolution: "shebang-command@npm:1.2.0" - dependencies: - shebang-regex: ^1.0.0 - checksum: 9eed1750301e622961ba5d588af2212505e96770ec376a37ab678f965795e995ade7ed44910f5d3d3cb5e10165a1847f52d3348c64e146b8be922f7707958908 - languageName: node - linkType: hard - "shebang-command@npm:^2.0.0": version: 2.0.0 resolution: "shebang-command@npm:2.0.0" @@ -21164,13 +32473,6 @@ __metadata: languageName: node linkType: hard -"shebang-regex@npm:^1.0.0": - version: 1.0.0 - resolution: "shebang-regex@npm:1.0.0" - checksum: 404c5a752cd40f94591dfd9346da40a735a05139dac890ffc229afba610854d8799aaa52f87f7e0c94c5007f2c6af55bdcaeb584b56691926c5eaf41dc8f1372 - languageName: node - linkType: hard - "shebang-regex@npm:^3.0.0": version: 3.0.0 resolution: "shebang-regex@npm:3.0.0" @@ -21179,25 +32481,71 @@ __metadata: linkType: hard "shell-quote@npm:^1.7.3, shell-quote@npm:^1.8.1": - version: 1.8.1 - resolution: "shell-quote@npm:1.8.1" - checksum: 5f01201f4ef504d4c6a9d0d283fa17075f6770bfbe4c5850b074974c68062f37929ca61700d95ad2ac8822e14e8c4b990ca0e6e9272e64befd74ce5e19f0736b + version: 1.8.2 + resolution: "shell-quote@npm:1.8.2" + checksum: 1e97b62ced1c4c5135015978ebf273bed1f425a68cf84163e83fbb0f34b3ff9471e656720dab2b7cbb4ae0f58998e686d17d166c28dfb3662acd009e8bd7faed languageName: node linkType: hard -"side-channel@npm:^1.0.4, side-channel@npm:^1.0.6": - version: 1.0.6 - resolution: "side-channel@npm:1.0.6" +"short-unique-id@npm:^5.0.2": + version: 5.2.0 + resolution: "short-unique-id@npm:5.2.0" + bin: + short-unique-id: bin/short-unique-id + suid: bin/short-unique-id + checksum: 55bfa5766cc7a1c5905a44337d0a1f8b5000174dec6b6e3039b6f93cf8f62b81ed4e5a525572266cbe20303a233f298cb3988c0f373ec0543a2706fe1b7f6cfc + languageName: node + linkType: hard + +"side-channel-list@npm:^1.0.0": + version: 1.0.0 + resolution: "side-channel-list@npm:1.0.0" dependencies: - call-bind: ^1.0.7 es-errors: ^1.3.0 - get-intrinsic: ^1.2.4 - object-inspect: ^1.13.1 - checksum: bfc1afc1827d712271453e91b7cd3878ac0efd767495fd4e594c4c2afaa7963b7b510e249572bfd54b0527e66e4a12b61b80c061389e129755f34c493aad9b97 + object-inspect: ^1.13.3 + checksum: 603b928997abd21c5a5f02ae6b9cc36b72e3176ad6827fab0417ead74580cc4fb4d5c7d0a8a2ff4ead34d0f9e35701ed7a41853dac8a6d1a664fcce1a044f86f + languageName: node + linkType: hard + +"side-channel-map@npm:^1.0.1": + version: 1.0.1 + resolution: "side-channel-map@npm:1.0.1" + dependencies: + call-bound: ^1.0.2 + es-errors: ^1.3.0 + get-intrinsic: ^1.2.5 + object-inspect: ^1.13.3 + checksum: 42501371cdf71f4ccbbc9c9e2eb00aaaab80a4c1c429d5e8da713fd4d39ef3b8d4a4b37ed4f275798a65260a551a7131fd87fe67e922dba4ac18586d6aab8b06 + languageName: node + linkType: hard + +"side-channel-weakmap@npm:^1.0.2": + version: 1.0.2 + resolution: "side-channel-weakmap@npm:1.0.2" + dependencies: + call-bound: ^1.0.2 + es-errors: ^1.3.0 + get-intrinsic: ^1.2.5 + object-inspect: ^1.13.3 + side-channel-map: ^1.0.1 + checksum: a815c89bc78c5723c714ea1a77c938377ea710af20d4fb886d362b0d1f8ac73a17816a5f6640f354017d7e292a43da9c5e876c22145bac00b76cfb3468001736 + languageName: node + linkType: hard + +"side-channel@npm:^1.0.4, side-channel@npm:^1.0.6, side-channel@npm:^1.1.0": + version: 1.1.0 + resolution: "side-channel@npm:1.1.0" + dependencies: + es-errors: ^1.3.0 + object-inspect: ^1.13.3 + side-channel-list: ^1.0.0 + side-channel-map: ^1.0.1 + side-channel-weakmap: ^1.0.2 + checksum: bf73d6d6682034603eb8e99c63b50155017ed78a522d27c2acec0388a792c3ede3238b878b953a08157093b85d05797217d270b7666ba1f111345fbe933380ff languageName: node linkType: hard -"signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": +"signal-exit@npm:^3.0.0, signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" checksum: a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 @@ -21218,12 +32566,23 @@ __metadata: languageName: node linkType: hard -"simple-eval@npm:1.0.0": - version: 1.0.0 - resolution: "simple-eval@npm:1.0.0" +"simple-eval@npm:1.0.1": + version: 1.0.1 + resolution: "simple-eval@npm:1.0.1" + dependencies: + jsep: ^1.3.6 + checksum: 280207cfe4538c500f6b41e4d88576cf250337b0042bec8f9f5cf025b3a70e07974e522edd01e69d378767dd73068765d4f46ad55db5c94943c8f3585bff95af + languageName: node + linkType: hard + +"simple-get@npm:^3.0.3": + version: 3.1.1 + resolution: "simple-get@npm:3.1.1" dependencies: - jsep: ^1.1.2 - checksum: 0f0719ae3a84d4b9c19366dc03065b1fe9638c982ed3e9d44ba541d25e3454e99419e3239034974fd6c5074b79c119419168b8f343fef4da6d7e35227cfd1f87 + decompress-response: ^4.2.0 + once: ^1.3.1 + simple-concat: ^1.0.0 + checksum: 80195e70bf171486e75c31e28e5485468195cc42f85940f8b45c4a68472160144d223eb4d07bc82ef80cb974b7c401db021a540deb2d34ac4b3b8883da2d6401 languageName: node linkType: hard @@ -21268,20 +32627,28 @@ __metadata: languageName: node linkType: hard -"smol-toml@npm:^1.3.0": - version: 1.3.0 - resolution: "smol-toml@npm:1.3.0" - checksum: 79e1db6b6cd32a13ad7602bfe1a02f20894fe599657a5cc2c8ffab7c3de4ba51f7426b701b513f9b859560918b36a63f7c73f7eaf6def8a1dc73db74ffd9b601 +"smol-toml@npm:^1.3.1": + version: 1.3.1 + resolution: "smol-toml@npm:1.3.1" + checksum: dc3284a674065874b1d34a945709ce3da2a0c44b1ff86b3274615d322c2f6cf8e5d2f5f7d569fd92330ec08590777972725e7d3ba856bd6d841243673064994e languageName: node linkType: hard -"snake-case@npm:^3.0.4": - version: 3.0.4 - resolution: "snake-case@npm:3.0.4" +"smtp-address-parser@npm:1.0.10": + version: 1.0.10 + resolution: "smtp-address-parser@npm:1.0.10" dependencies: - dot-case: ^3.0.4 - tslib: ^2.0.3 - checksum: 0a7a79900bbb36f8aaa922cf111702a3647ac6165736d5dc96d3ef367efc50465cac70c53cd172c382b022dac72ec91710608e5393de71f76d7142e6fd80e8a3 + nearley: ^2.20.1 + checksum: 5cf2e960a6836ebec68bb5185c62bc3d343e6fdb1434f8d0d6c273e8d5359b11f2560dea5ecbbd98a77f01f8ef94b56c31d3f6ff24a5c44ba6530b9af7b63626 + languageName: node + linkType: hard + +"smtp-address-parser@npm:^1.0.3": + version: 1.1.0 + resolution: "smtp-address-parser@npm:1.1.0" + dependencies: + nearley: ^2.20.1 + checksum: 63314f22dfe6f2ab2845c4ffa68a48cbd1569507cf9ee429c45beff7c4b5957d6f63e84c31fe0d148f67e4b000c76cb1d8a9d1f0f6bd5a678fa9d6a80bac70e2 languageName: node linkType: hard @@ -21307,14 +32674,14 @@ __metadata: languageName: node linkType: hard -"socks-proxy-agent@npm:^8.0.2, socks-proxy-agent@npm:^8.0.3, socks-proxy-agent@npm:^8.0.4": - version: 8.0.4 - resolution: "socks-proxy-agent@npm:8.0.4" +"socks-proxy-agent@npm:^8.0.2, socks-proxy-agent@npm:^8.0.3, socks-proxy-agent@npm:^8.0.5": + version: 8.0.5 + resolution: "socks-proxy-agent@npm:8.0.5" dependencies: - agent-base: ^7.1.1 + agent-base: ^7.1.2 debug: ^4.3.4 socks: ^2.8.3 - checksum: b2ec5051d85fe49072f9a250c427e0e9571fd09d5db133819192d078fd291276e1f0f50f6dbc04329b207738b1071314cee8bdbb4b12e27de42dbcf1d4233c67 + checksum: b4fbcdb7ad2d6eec445926e255a1fb95c975db0020543fbac8dfa6c47aecc6b3b619b7fb9c60a3f82c9b2969912a5e7e174a056ae4d98cb5322f3524d6036e1d languageName: node linkType: hard @@ -21328,6 +32695,16 @@ __metadata: languageName: node linkType: hard +"sonic-boom@npm:^0.7.5": + version: 0.7.7 + resolution: "sonic-boom@npm:0.7.7" + dependencies: + atomic-sleep: ^1.0.0 + flatstr: ^1.0.12 + checksum: b08e20dfa8d888ba32393141f96d195ab6fdecf341a736f25d9c1127cf0de8eaa4e03cde38c23cfa06c50a20ba4b5cb1b107dfc1251283b7c7a153c50f646628 + languageName: node + linkType: hard + "sorted-array-functions@npm:^1.3.0": version: 1.3.0 resolution: "sorted-array-functions@npm:1.3.0" @@ -21342,7 +32719,7 @@ __metadata: languageName: node linkType: hard -"source-map-js@npm:^1.0.1, source-map-js@npm:^1.2.1": +"source-map-js@npm:^1.2.1": version: 1.2.1 resolution: "source-map-js@npm:1.2.1" checksum: 4eb0cd997cdf228bc253bcaff9340afeb706176e64868ecd20efbe6efea931465f43955612346d6b7318789e5265bdc419bc7669c1cebe3db0eb255f57efa76b @@ -21369,6 +32746,20 @@ __metadata: languageName: node linkType: hard +"source-map@npm:0.5.6": + version: 0.5.6 + resolution: "source-map@npm:0.5.6" + checksum: 390b3f5165c9631a74fb6fb55ba61e62a7f9b7d4026ae0e2bfc2899c241d71c1bccb8731c496dc7f7cb79a5f523406eb03d8c5bebe8448ee3fc38168e2d209c8 + languageName: node + linkType: hard + +"source-map@npm:^0.5.7": + version: 0.5.7 + resolution: "source-map@npm:0.5.7" + checksum: 5dc2043b93d2f194142c7f38f74a24670cd7a0063acdaf4bf01d2964b402257ae843c2a8fa822ad5b71013b5fcafa55af7421383da919752f22ff488bc553f4d + languageName: node + linkType: hard + "source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.0, source-map@npm:~0.6.1": version: 0.6.1 resolution: "source-map@npm:0.6.1" @@ -21383,27 +32774,34 @@ __metadata: languageName: node linkType: hard -"sourcemap-codec@npm:^1.4.8": - version: 1.4.8 - resolution: "sourcemap-codec@npm:1.4.8" - checksum: b57981c05611afef31605732b598ccf65124a9fcb03b833532659ac4d29ac0f7bfacbc0d6c5a28a03e84c7510e7e556d758d0bb57786e214660016fb94279316 +"space-separated-tokens@npm:^1.0.0": + version: 1.1.5 + resolution: "space-separated-tokens@npm:1.1.5" + checksum: 8ef68f1cfa8ccad316b7f8d0df0919d0f1f6d32101e8faeee34ea3a923ce8509c1ad562f57388585ee4951e92d27afa211ed0a077d3d5995b5ba9180331be708 + languageName: node + linkType: hard + +"space-separated-tokens@npm:^2.0.0": + version: 2.0.2 + resolution: "space-separated-tokens@npm:2.0.2" + checksum: 202e97d7ca1ba0758a0aa4fe226ff98142073bcceeff2da3aad037968878552c3bbce3b3231970025375bbba5aee00c5b8206eda408da837ab2dc9c0f26be990 languageName: node linkType: hard -"spawn-command@npm:^0.0.2-1": +"spawn-command@npm:0.0.2, spawn-command@npm:^0.0.2-1": version: 0.0.2 resolution: "spawn-command@npm:0.0.2" checksum: e35c5d28177b4d461d33c88cc11f6f3a5079e2b132c11e1746453bbb7a0c0b8a634f07541a2a234fa4758239d88203b758def509161b651e81958894c0b4b64b languageName: node linkType: hard -"spawndamnit@npm:^2.0.0": - version: 2.0.0 - resolution: "spawndamnit@npm:2.0.0" +"spawndamnit@npm:^3.0.1": + version: 3.0.1 + resolution: "spawndamnit@npm:3.0.1" dependencies: - cross-spawn: ^5.1.0 - signal-exit: ^3.0.2 - checksum: c74b5e264ee5bc13d55692fd422d74c282e4607eb04ac64d19d06796718d89b14921620fa4237ec5635e7acdff21461670ff19850f210225410a353cad0d7fed + cross-spawn: ^7.0.5 + signal-exit: ^4.0.1 + checksum: 47d88a7f1e5691e13e435eddc3d34123c2f7746e2853e91bfac5ea7c6e3bb4b1d1995223b25f7a8745871510d92f63ecd3c9fa02aa2896ac0c79fb618eb08bbe languageName: node linkType: hard @@ -21441,6 +32839,15 @@ __metadata: languageName: node linkType: hard +"split2@npm:^3.0.0": + version: 3.2.2 + resolution: "split2@npm:3.2.2" + dependencies: + readable-stream: ^3.0.0 + checksum: 8127ddbedd0faf31f232c0e9192fede469913aa8982aa380752e0463b2e31c2359ef6962eb2d24c125bac59eeec76873678d723b1c7ff696216a1cd071e3994a + languageName: node + linkType: hard + "split2@npm:^4.1.0": version: 4.2.0 resolution: "split2@npm:4.2.0" @@ -21448,6 +32855,15 @@ __metadata: languageName: node linkType: hard +"split@npm:0.3": + version: 0.3.3 + resolution: "split@npm:0.3.3" + dependencies: + through: 2 + checksum: 2e076634c9637cfdc54ab4387b6a243b8c33b360874a25adf6f327a5647f07cb3bf1c755d515248eb3afee4e382278d01f62c62d87263c118f28065b86f74f02 + languageName: node + linkType: hard + "sprintf-js@npm:^1.1.2, sprintf-js@npm:^1.1.3": version: 1.1.3 resolution: "sprintf-js@npm:1.1.3" @@ -21526,6 +32942,15 @@ __metadata: languageName: node linkType: hard +"ssri@npm:^12.0.0": + version: 12.0.0 + resolution: "ssri@npm:12.0.0" + dependencies: + minipass: ^7.0.3 + checksum: ef4b6b0ae47b4a69896f5f1c4375f953b9435388c053c36d27998bc3d73e046969ccde61ab659e679142971a0b08e50478a1228f62edb994105b280f17900c98 + languageName: node + linkType: hard + "ssri@npm:^9.0.0": version: 9.0.1 resolution: "ssri@npm:9.0.1" @@ -21542,6 +32967,15 @@ __metadata: languageName: node linkType: hard +"stack-generator@npm:^2.0.5": + version: 2.0.10 + resolution: "stack-generator@npm:2.0.10" + dependencies: + stackframe: ^1.3.4 + checksum: 4fc3978a934424218a0aa9f398034e1f78153d5ff4f4ff9c62478c672debb47dd58de05b09fc3900530cbb526d72c93a6e6c9353bacc698e3b1c00ca3dda0c47 + languageName: node + linkType: hard + "stack-trace@npm:0.0.x": version: 0.0.10 resolution: "stack-trace@npm:0.0.10" @@ -21565,6 +32999,27 @@ __metadata: languageName: node linkType: hard +"stacktrace-gps@npm:^3.0.4": + version: 3.1.2 + resolution: "stacktrace-gps@npm:3.1.2" + dependencies: + source-map: 0.5.6 + stackframe: ^1.3.4 + checksum: 85daa232d138239b6ae0f4bcdd87d15d302a045d93625db17614030945b5314e204b5fbcf9bee5b6f4f9e6af5fca05f65c27fe910894b861ef6853b99470aa1c + languageName: node + linkType: hard + +"stacktrace-js@npm:^2.0.2": + version: 2.0.2 + resolution: "stacktrace-js@npm:2.0.2" + dependencies: + error-stack-parser: ^2.0.6 + stack-generator: ^2.0.5 + stacktrace-gps: ^3.0.4 + checksum: 081e786d56188ac04ac6604c09cd863b3ca2b4300ec061366cf68c3e4ad9edaa34fb40deea03cc23a05f442aa341e9171f47313f19bd588f9bec6c505a396286 + languageName: node + linkType: hard + "standard-as-callback@npm:^2.1.0": version: 2.1.0 resolution: "standard-as-callback@npm:2.1.0" @@ -21572,6 +33027,26 @@ __metadata: languageName: node linkType: hard +"start-server-and-test@npm:2.0.8": + version: 2.0.8 + resolution: "start-server-and-test@npm:2.0.8" + dependencies: + arg: ^5.0.2 + bluebird: 3.7.2 + check-more-types: 2.24.0 + debug: 4.3.7 + execa: 5.1.1 + lazy-ass: 1.6.0 + ps-tree: 1.2.0 + wait-on: 8.0.1 + bin: + server-test: src/bin/start.js + start-server-and-test: src/bin/start.js + start-test: src/bin/start.js + checksum: 64cd27598348d8b276f489fa2b394b1141819719f729118b2ba19cfce32df134491c889163a1709013e630cbd988384be9b3e501e3062604b66b1fb3f4db9e50 + languageName: node + linkType: hard + "static-eval@npm:2.0.2": version: 2.0.2 resolution: "static-eval@npm:2.0.2" @@ -21588,13 +33063,23 @@ __metadata: languageName: node linkType: hard -"statuses@npm:>= 1.4.0 < 2, statuses@npm:>= 1.5.0 < 2, statuses@npm:^1.5.0": +"statuses@npm:>= 1.4.0 < 2, statuses@npm:>= 1.5.0 < 2, statuses@npm:^1.5.0, statuses@npm:~1.5.0": version: 1.5.0 resolution: "statuses@npm:1.5.0" checksum: c469b9519de16a4bb19600205cffb39ee471a5f17b82589757ca7bd40a8d92ebb6ed9f98b5a540c5d302ccbc78f15dc03cc0280dd6e00df1335568a5d5758a5c languageName: node linkType: hard +"stop-iteration-iterator@npm:^1.0.0": + version: 1.1.0 + resolution: "stop-iteration-iterator@npm:1.1.0" + dependencies: + es-errors: ^1.3.0 + internal-slot: ^1.1.0 + checksum: be944489d8829fb3bdec1a1cc4a2142c6b6eb317305eeace1ece978d286d6997778afa1ae8cb3bd70e2b274b9aa8c69f93febb1e15b94b1359b11058f9d3c3a1 + languageName: node + linkType: hard + "stoppable@npm:^1.1.0": version: 1.1.0 resolution: "stoppable@npm:1.1.0" @@ -21602,6 +33087,16 @@ __metadata: languageName: node linkType: hard +"stream-browserify@npm:3.0.0": + version: 3.0.0 + resolution: "stream-browserify@npm:3.0.0" + dependencies: + inherits: ~2.0.4 + readable-stream: ^3.5.0 + checksum: 4c47ef64d6f03815a9ca3874e2319805e8e8a85f3550776c47ce523b6f4c6cd57f40e46ec6a9ab8ad260fde61863c2718f250d3bedb3fe9052444eb9abfd9921 + languageName: node + linkType: hard + "stream-browserify@npm:^2.0.1": version: 2.0.2 resolution: "stream-browserify@npm:2.0.2" @@ -21619,6 +33114,15 @@ __metadata: languageName: node linkType: hard +"stream-combiner@npm:~0.0.4": + version: 0.0.4 + resolution: "stream-combiner@npm:0.0.4" + dependencies: + duplexer: ~0.1.1 + checksum: 844b622cfe8b9de45a6007404f613b60aaf85200ab9862299066204242f89a7c8033b1c356c998aa6cfc630f6cd9eba119ec1c6dc1f93e245982be4a847aee7d + languageName: node + linkType: hard + "stream-events@npm:^1.0.5": version: 1.0.5 resolution: "stream-events@npm:1.0.5" @@ -21641,7 +33145,7 @@ __metadata: languageName: node linkType: hard -"stream-shift@npm:^1.0.2": +"stream-shift@npm:^1.0.0, stream-shift@npm:^1.0.2": version: 1.0.3 resolution: "stream-shift@npm:1.0.3" checksum: a24c0a3f66a8f9024bd1d579a533a53be283b4475d4e6b4b3211b964031447bdf6532dd1f3c2b0ad66752554391b7c62bd7ca4559193381f766534e723d50242 @@ -21659,9 +33163,16 @@ __metadata: languageName: node linkType: hard -"streamx@npm:^2.15.0, streamx@npm:^2.20.0": - version: 2.20.1 - resolution: "streamx@npm:2.20.1" +"streamsearch@npm:^1.1.0": + version: 1.1.0 + resolution: "streamsearch@npm:1.1.0" + checksum: 1cce16cea8405d7a233d32ca5e00a00169cc0e19fbc02aa839959985f267335d435c07f96e5e0edd0eadc6d39c98d5435fb5bbbdefc62c41834eadc5622ad942 + languageName: node + linkType: hard + +"streamx@npm:^2.15.0, streamx@npm:^2.21.0": + version: 2.21.1 + resolution: "streamx@npm:2.21.1" dependencies: bare-events: ^2.2.0 fast-fifo: ^1.3.2 @@ -21670,7 +33181,7 @@ __metadata: dependenciesMeta: bare-events: optional: true - checksum: 48605ddd3abdd86d2e3ee945ec7c9317f36abb5303347a8fff6e4c7926a72c33ec7ac86b50734ccd1cf65602b6a38e247966e8199b24e5a7485d9cec8f5327bd + checksum: 98abdd0a926b172be6f2b306cdda3d8689a4da51e478518aa187d321ceca31ebfcbfff222c55ef4140fdc2a5c14da5db9da19fdfd7a08bcdcb0c1c6e6df96f22 languageName: node linkType: hard @@ -21697,6 +33208,13 @@ __metadata: languageName: node linkType: hard +"string-env-interpolation@npm:^1.0.1": + version: 1.0.1 + resolution: "string-env-interpolation@npm:1.0.1" + checksum: d126329587f635bee65300e4451e7352b9b67e03daeb62f006ca84244cac12a1f6e45176b018653ba0c3ec3b5d980f9ca59d2eeed99cf799501cdaa7f871dc6f + languageName: node + linkType: hard + "string-hash@npm:^1.1.1": version: 1.1.3 resolution: "string-hash@npm:1.1.3" @@ -21748,22 +33266,23 @@ __metadata: linkType: hard "string.prototype.matchall@npm:^4.0.11": - version: 4.0.11 - resolution: "string.prototype.matchall@npm:4.0.11" + version: 4.0.12 + resolution: "string.prototype.matchall@npm:4.0.12" dependencies: - call-bind: ^1.0.7 + call-bind: ^1.0.8 + call-bound: ^1.0.3 define-properties: ^1.2.1 - es-abstract: ^1.23.2 + es-abstract: ^1.23.6 es-errors: ^1.3.0 es-object-atoms: ^1.0.0 - get-intrinsic: ^1.2.4 - gopd: ^1.0.1 - has-symbols: ^1.0.3 - internal-slot: ^1.0.7 - regexp.prototype.flags: ^1.5.2 + get-intrinsic: ^1.2.6 + gopd: ^1.2.0 + has-symbols: ^1.1.0 + internal-slot: ^1.1.0 + regexp.prototype.flags: ^1.5.3 set-function-name: ^2.0.2 - side-channel: ^1.0.6 - checksum: 6ac6566ed065c0c8489c91156078ca077db8ff64d683fda97ae652d00c52dfa5f39aaab0a710d8243031a857fd2c7c511e38b45524796764d25472d10d7075ae + side-channel: ^1.1.0 + checksum: 98a09d6af91bfc6ee25556f3d7cd6646d02f5f08bda55d45528ed273d266d55a71af7291fe3fc76854deffb9168cc1a917d0b07a7d5a178c7e9537c99e6d2b57 languageName: node linkType: hard @@ -21777,26 +33296,30 @@ __metadata: languageName: node linkType: hard -"string.prototype.trim@npm:^1.2.9": - version: 1.2.9 - resolution: "string.prototype.trim@npm:1.2.9" +"string.prototype.trim@npm:^1.2.10": + version: 1.2.10 + resolution: "string.prototype.trim@npm:1.2.10" dependencies: - call-bind: ^1.0.7 + call-bind: ^1.0.8 + call-bound: ^1.0.2 + define-data-property: ^1.1.4 define-properties: ^1.2.1 - es-abstract: ^1.23.0 + es-abstract: ^1.23.5 es-object-atoms: ^1.0.0 - checksum: ea2df6ec1e914c9d4e2dc856fa08228e8b1be59b59e50b17578c94a66a176888f417264bb763d4aac638ad3b3dad56e7a03d9317086a178078d131aa293ba193 + has-property-descriptors: ^1.0.2 + checksum: 87659cd8561237b6c69f5376328fda934693aedde17bb7a2c57008e9d9ff992d0c253a391c7d8d50114e0e49ff7daf86a362f7961cf92f7564cd01342ca2e385 languageName: node linkType: hard -"string.prototype.trimend@npm:^1.0.8": - version: 1.0.8 - resolution: "string.prototype.trimend@npm:1.0.8" +"string.prototype.trimend@npm:^1.0.8, string.prototype.trimend@npm:^1.0.9": + version: 1.0.9 + resolution: "string.prototype.trimend@npm:1.0.9" dependencies: - call-bind: ^1.0.7 + call-bind: ^1.0.8 + call-bound: ^1.0.2 define-properties: ^1.2.1 es-object-atoms: ^1.0.0 - checksum: cc3bd2de08d8968a28787deba9a3cb3f17ca5f9f770c91e7e8fa3e7d47f079bad70fadce16f05dda9f261788be2c6e84a942f618c3bed31e42abc5c1084f8dfd + checksum: cb86f639f41d791a43627784be2175daa9ca3259c7cb83e7a207a729909b74f2ea0ec5d85de5761e6835e5f443e9420c6ff3f63a845378e4a61dd793177bc287 languageName: node linkType: hard @@ -21877,6 +33400,15 @@ __metadata: languageName: node linkType: hard +"strip-indent@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-indent@npm:3.0.0" + dependencies: + min-indent: ^1.0.0 + checksum: 18f045d57d9d0d90cd16f72b2313d6364fd2cb4bf85b9f593523ad431c8720011a4d5f08b6591c9d580f446e78855c5334a30fb91aa1560f5d9f95ed1b4a0530 + languageName: node + linkType: hard + "strip-json-comments@npm:5.0.1": version: 5.0.1 resolution: "strip-json-comments@npm:5.0.1" @@ -21905,6 +33437,16 @@ __metadata: languageName: node linkType: hard +"strtok3@npm:^6.2.4": + version: 6.3.0 + resolution: "strtok3@npm:6.3.0" + dependencies: + "@tokenizer/token": ^0.3.0 + peek-readable: ^4.1.0 + checksum: 90732cff3f325aef7c47c511f609b593e0873ec77b5081810071cde941344e6a0ee3ccb0cae1a9f5b4e12c81a2546fd6b322fabcdfbd1dd08362c2ce5291334a + languageName: node + linkType: hard + "stubs@npm:^3.0.0": version: 3.0.0 resolution: "stubs@npm:3.0.0" @@ -21928,6 +33470,32 @@ __metadata: languageName: node linkType: hard +"style-mod@npm:^4.0.0, style-mod@npm:^4.1.0": + version: 4.1.2 + resolution: "style-mod@npm:4.1.2" + checksum: 7c5c3e82747f9bcf5f288d8d07f50848e4630fe5ff7bfe4d94cc87d6b6a2588227cbf21b4c792ac6406e5852293300a75e710714479a5c59a06af677f0825ef8 + languageName: node + linkType: hard + +"style-to-object@npm:^0.4.0": + version: 0.4.4 + resolution: "style-to-object@npm:0.4.4" + dependencies: + inline-style-parser: 0.1.1 + checksum: 41656c06f93ac0a7ac260ebc2f9d09a8bd74b8ec1836f358cc58e169235835a3a356977891d2ebbd76f0e08a53616929069199f9cce543214d3dc98346e19c9a + languageName: node + linkType: hard + +"style-value-types@npm:5.0.0": + version: 5.0.0 + resolution: "style-value-types@npm:5.0.0" + dependencies: + hey-listen: ^1.0.8 + tslib: ^2.1.0 + checksum: 16d198302cd102edf9dba94e7752a2364c93b1eaa5cc7c32b42b28eef4af4ccb5149a3f16bc2a256adc02616a2404f4612bd15f3081c1e8ca06132cae78be6c0 + languageName: node + linkType: hard + "stylehacks@npm:^5.1.1": version: 5.1.1 resolution: "stylehacks@npm:5.1.1" @@ -21940,6 +33508,20 @@ __metadata: languageName: node linkType: hard +"stylis@npm:4.2.0": + version: 4.2.0 + resolution: "stylis@npm:4.2.0" + checksum: 0eb6cc1b866dc17a6037d0a82ac7fa877eba6a757443e79e7c4f35bacedbf6421fadcab4363b39667b43355cbaaa570a3cde850f776498e5450f32ed2f9b7584 + languageName: node + linkType: hard + +"stylis@npm:^4.3.0": + version: 4.3.4 + resolution: "stylis@npm:4.3.4" + checksum: 7e3a482c7bba6e0e9e3187972e958acf800b1abe99f23e081fcb5dea8e4a05eca44286c1381ce2bc7179245ddbd7bf1f74237ed413fce7491320a543bcfebda9 + languageName: node + linkType: hard + "sucrase@npm:^3.20.2": version: 3.35.0 resolution: "sucrase@npm:3.35.0" @@ -22011,7 +33593,7 @@ __metadata: languageName: node linkType: hard -"supports-color@npm:^8.0.0, supports-color@npm:^8.1.0, supports-color@npm:~8.1.1": +"supports-color@npm:^8.0.0, supports-color@npm:^8.1.0, supports-color@npm:^8.1.1, supports-color@npm:~8.1.1": version: 8.1.1 resolution: "supports-color@npm:8.1.1" dependencies: @@ -22051,20 +33633,74 @@ __metadata: languageName: node linkType: hard -"svgo@npm:^3.0.2": - version: 3.3.2 - resolution: "svgo@npm:3.3.2" +"swagger-client@npm:^3.31.0": + version: 3.32.2 + resolution: "swagger-client@npm:3.32.2" dependencies: - "@trysound/sax": 0.2.0 - commander: ^7.2.0 - css-select: ^5.1.0 - css-tree: ^2.3.1 - css-what: ^6.1.0 - csso: ^5.0.5 - picocolors: ^1.0.0 - bin: - svgo: ./bin/svgo - checksum: a3f8aad597dec13ab24e679c4c218147048dc1414fe04e99447c5f42a6e077b33d712d306df84674b5253b98c9b84dfbfb41fdd08552443b04946e43d03e054e + "@babel/runtime-corejs3": ^7.22.15 + "@scarf/scarf": =1.4.0 + "@swagger-api/apidom-core": ">=1.0.0-beta.3 <1.0.0-rc.0" + "@swagger-api/apidom-error": ">=1.0.0-beta.3 <1.0.0-rc.0" + "@swagger-api/apidom-json-pointer": ">=1.0.0-beta.3 <1.0.0-rc.0" + "@swagger-api/apidom-ns-openapi-3-1": ">=1.0.0-beta.3 <1.0.0-rc.0" + "@swagger-api/apidom-reference": ">=1.0.0-beta.3 <1.0.0-rc.0" + cookie: ~0.7.2 + deepmerge: ~4.3.0 + fast-json-patch: ^3.0.0-1 + js-yaml: ^4.1.0 + neotraverse: =0.6.18 + node-abort-controller: ^3.1.1 + node-fetch-commonjs: ^3.3.2 + openapi-path-templating: ^1.5.1 + openapi-server-url-templating: ^1.0.0 + ramda: ^0.30.1 + ramda-adjunct: ^5.0.0 + checksum: 38c85d64a0a1e9f1e1ba44cae3a6894c7a9d0a93130e3a73095f9d2060902f8218282016c60663f17bf3c80871714e29c54383c695f2ee7e3eef6abb879c2992 + languageName: node + linkType: hard + +"swagger-ui-react@npm:^5.0.0": + version: 5.18.2 + resolution: "swagger-ui-react@npm:5.18.2" + dependencies: + "@babel/runtime-corejs3": ^7.24.7 + "@braintree/sanitize-url": =7.0.4 + "@scarf/scarf": =1.4.0 + base64-js: ^1.5.1 + classnames: ^2.5.1 + css.escape: 1.5.1 + deep-extend: 0.6.0 + dompurify: =3.1.6 + ieee754: ^1.2.1 + immutable: ^3.x.x + js-file-download: ^0.4.12 + js-yaml: =4.1.0 + lodash: ^4.17.21 + prop-types: ^15.8.1 + randexp: ^0.5.3 + randombytes: ^2.1.0 + react-copy-to-clipboard: 5.1.0 + react-debounce-input: =3.3.0 + react-immutable-proptypes: 2.2.0 + react-immutable-pure-component: ^2.2.0 + react-inspector: ^6.0.1 + react-redux: ^9.1.2 + react-syntax-highlighter: ^15.5.0 + redux: ^5.0.1 + redux-immutable: ^4.0.0 + remarkable: ^2.0.1 + reselect: ^5.1.1 + serialize-error: ^8.1.0 + sha.js: ^2.4.11 + swagger-client: ^3.31.0 + url-parse: ^1.5.10 + xml: =1.0.1 + xml-but-prettier: ^1.0.1 + zenscroll: ^4.0.2 + peerDependencies: + react: ">=16.8.0 <19" + react-dom: ">=16.8.0 <19" + checksum: 8ad40bda044c9ff5a940b4e76f88dd740dae183266dc2d48cd88b73877a0ad464f26ad41459de7d7562c5e1a0030ed5a15b99fe57d3f2919acc7ddb126c07447 languageName: node linkType: hard @@ -22080,6 +33716,25 @@ __metadata: languageName: node linkType: hard +"swr@npm:^2.0.0": + version: 2.2.5 + resolution: "swr@npm:2.2.5" + dependencies: + client-only: ^0.0.1 + use-sync-external-store: ^1.2.0 + peerDependencies: + react: ^16.11.0 || ^17.0.0 || ^18.0.0 + checksum: c6e6a5bd254951b22e5fd0930a95c7f79b5d0657f803c41ba1542cd6376623fb70b1895049d54ddde26da63b91951ae9d62a06772f82be28c1014d421e5b7aa9 + languageName: node + linkType: hard + +"symbol-observable@npm:^1.0.4": + version: 1.2.0 + resolution: "symbol-observable@npm:1.2.0" + checksum: 48ffbc22e3d75f9853b3ff2ae94a44d84f386415110aea5effc24d84c502e03a4a6b7a8f75ebaf7b585780bda34eb5d6da3121f826a6f93398429d30032971b6 + languageName: node + linkType: hard + "symbol-tree@npm:^3.2.4": version: 3.2.4 resolution: "symbol-tree@npm:3.2.4" @@ -22087,6 +33742,13 @@ __metadata: languageName: node linkType: hard +"tabbable@npm:^6.2.0": + version: 6.2.0 + resolution: "tabbable@npm:6.2.0" + checksum: f8440277d223949272c74bb627a3371be21735ca9ad34c2570f7e1752bd646ccfc23a9d8b1ee65d6561243f4134f5fbbf1ad6b39ac3c4b586554accaff4a1300 + languageName: node + linkType: hard + "tapable@npm:^1.0.0": version: 1.1.3 resolution: "tapable@npm:1.1.3" @@ -22180,6 +33842,20 @@ __metadata: languageName: node linkType: hard +"tar@npm:^7.4.3": + version: 7.4.3 + resolution: "tar@npm:7.4.3" + dependencies: + "@isaacs/fs-minipass": ^4.0.0 + chownr: ^3.0.0 + minipass: ^7.1.2 + minizlib: ^3.0.1 + mkdirp: ^3.0.1 + yallist: ^5.0.0 + checksum: 8485350c0688331c94493031f417df069b778aadb25598abdad51862e007c39d1dd5310702c7be4a6784731a174799d8885d2fde0484269aea205b724d7b2ffa + languageName: node + linkType: hard + "tarn@npm:^3.0.2": version: 3.0.2 resolution: "tarn@npm:3.0.2" @@ -22187,6 +33863,15 @@ __metadata: languageName: node linkType: hard +"tdigest@npm:^0.1.1": + version: 0.1.2 + resolution: "tdigest@npm:0.1.2" + dependencies: + bintrees: 1.0.2 + checksum: 44de8246752b6f8c2924685f969fd3d94c36949f22b0907e99bef2b2220726dd8467f4730ea96b06040b9aa2587c0866049640039d1b956952dfa962bc2075a3 + languageName: node + linkType: hard + "teeny-request@npm:^9.0.0": version: 9.0.0 resolution: "teeny-request@npm:9.0.0" @@ -22208,14 +33893,14 @@ __metadata: linkType: hard "terser-webpack-plugin@npm:^5.1.3, terser-webpack-plugin@npm:^5.3.10": - version: 5.3.10 - resolution: "terser-webpack-plugin@npm:5.3.10" + version: 5.3.11 + resolution: "terser-webpack-plugin@npm:5.3.11" dependencies: - "@jridgewell/trace-mapping": ^0.3.20 + "@jridgewell/trace-mapping": ^0.3.25 jest-worker: ^27.4.5 - schema-utils: ^3.1.1 - serialize-javascript: ^6.0.1 - terser: ^5.26.0 + schema-utils: ^4.3.0 + serialize-javascript: ^6.0.2 + terser: ^5.31.1 peerDependencies: webpack: ^5.1.0 peerDependenciesMeta: @@ -22225,13 +33910,13 @@ __metadata: optional: true uglify-js: optional: true - checksum: bd6e7596cf815f3353e2a53e79cbdec959a1b0276f5e5d4e63e9d7c3c5bb5306df567729da287d1c7b39d79093e56863c569c42c6c24cc34c76aa313bd2cbcea + checksum: c84c005d4041ad2e2eed0c9059b52a50ffd27f1e2afca7d34864a2b4b2bb1295405bc7578eeb25bae732e358339954d8cb6fbf6d83df52e8aa9333e8bf409ebe languageName: node linkType: hard -"terser@npm:^5.10.0, terser@npm:^5.26.0": - version: 5.36.0 - resolution: "terser@npm:5.36.0" +"terser@npm:^5.10.0, terser@npm:^5.31.1": + version: 5.37.0 + resolution: "terser@npm:5.37.0" dependencies: "@jridgewell/source-map": ^0.3.3 acorn: ^8.8.2 @@ -22239,7 +33924,7 @@ __metadata: source-map-support: ~0.5.20 bin: terser: bin/terser - checksum: 489afd31901a2b170f7766948a3aa0e25da0acb41e9e35bd9f9b4751dfa2fc846e485f6fb9d34f0839a96af77f675b5fbf0a20c9aa54e0b8d7c219cf0b55e508 + checksum: 70c06a8ce1288ff4370a7e481beb6fc8b22fc4995371479f49df1552aa9cf8e794ace66e1da6e87057eda1745644311213f5043bda9a06cf55421eff68b3ac06 languageName: node linkType: hard @@ -22255,8 +33940,8 @@ __metadata: linkType: hard "testcontainers@npm:^10.0.0": - version: 10.13.2 - resolution: "testcontainers@npm:10.13.2" + version: 10.16.0 + resolution: "testcontainers@npm:10.16.0" dependencies: "@balena/dockerignore": ^1.0.2 "@types/dockerode": ^3.3.29 @@ -22273,14 +33958,16 @@ __metadata: tar-fs: ^3.0.6 tmp: ^0.2.3 undici: ^5.28.4 - checksum: dd115745369981d159b9e74ce2461c2d7c9f3cfbe747e021c8268913b0b20beb5234cb160f22743cb40b38442dbcdfb5f985c63aa14d3b367493d0bfece6afe3 + checksum: 69d56bc68daf9b3aa0fef524133d5ab85b6028210f4fd456c05fff5f48b9452c6ff44274be281dbf45690595df8b6914eaf5c3fade75191aeaaa3087abd4a23d languageName: node linkType: hard "text-decoder@npm:^1.1.0": - version: 1.2.1 - resolution: "text-decoder@npm:1.2.1" - checksum: 0f42deda4a8f111af67f81f292e823f2bdcc85057fdeef35e3a5dda6b501605a1d449927a4a440af4485fbd02198b5baf722d146a195c1b1b211cdd37292ac66 + version: 1.2.3 + resolution: "text-decoder@npm:1.2.3" + dependencies: + b4a: ^1.6.4 + checksum: d7642a61f9d72330eac52ff6b6e8d34dea03ebbb1e82749a8734e7892e246cf262ed70730d20c4351c5dc5334297b9cc6c0b6a8725a204a63a197d7728bb35e5 languageName: node linkType: hard @@ -22332,7 +34019,23 @@ __metadata: languageName: node linkType: hard -"through@npm:^2.3.6": +"throttle-debounce@npm:^3.0.1": + version: 3.0.1 + resolution: "throttle-debounce@npm:3.0.1" + checksum: e34ef638e8df3a9154249101b68afcbf2652a139c803415ef8a2f6a8bc577bcd4d79e4bb914ad3cd206523ac78b9fb7e80885bfa049f64fbb1927f99d98b5736 + languageName: node + linkType: hard + +"through2@npm:^4.0.0": + version: 4.0.2 + resolution: "through2@npm:4.0.2" + dependencies: + readable-stream: 3 + checksum: ac7430bd54ccb7920fd094b1c7ff3e1ad6edd94202e5528331253e5fde0cc56ceaa690e8df9895de2e073148c52dfbe6c4db74cacae812477a35660090960cc0 + languageName: node + linkType: hard + +"through@npm:2, through@npm:^2.3.6, through@npm:~2.3, through@npm:~2.3.1": version: 2.3.8 resolution: "through@npm:2.3.8" checksum: a38c3e059853c494af95d50c072b83f8b676a9ba2818dcc5b108ef252230735c54e0185437618596c790bbba8fcdaef5b290405981ffa09dce67b1f1bf190cbd @@ -22362,6 +34065,27 @@ __metadata: languageName: node linkType: hard +"tiny-case@npm:^1.0.3": + version: 1.0.3 + resolution: "tiny-case@npm:1.0.3" + checksum: 3f7a30c39d5b0e1bc097b0b271bec14eb5b836093db034f35a0de26c14422380b50dc12bfd37498cf35b192f5df06f28a710712c87ead68872a9e37ad6f6049d + languageName: node + linkType: hard + +"tiny-invariant@npm:^1.0.6": + version: 1.3.3 + resolution: "tiny-invariant@npm:1.3.3" + checksum: 5e185c8cc2266967984ce3b352a4e57cb89dad5a8abb0dea21468a6ecaa67cd5bb47a3b7a85d08041008644af4f667fb8b6575ba38ba5fb00b3b5068306e59fe + languageName: node + linkType: hard + +"tiny-warning@npm:^1.0.2": + version: 1.0.3 + resolution: "tiny-warning@npm:1.0.3" + checksum: da62c4acac565902f0624b123eed6dd3509bc9a8d30c06e017104bedcf5d35810da8ff72864400ad19c5c7806fc0a8323c68baf3e326af7cb7d969f846100d71 + languageName: node + linkType: hard + "tmp@npm:^0.0.33": version: 0.0.33 resolution: "tmp@npm:0.0.33" @@ -22401,6 +34125,13 @@ __metadata: languageName: node linkType: hard +"toggle-selection@npm:^1.0.6": + version: 1.0.6 + resolution: "toggle-selection@npm:1.0.6" + checksum: a90dc80ed1e7b18db8f4e16e86a5574f87632dc729cfc07d9ea3ced50021ad42bb4e08f22c0913e0b98e3837b0b717e0a51613c65f30418e21eb99da6556a74c + languageName: node + linkType: hard + "toidentifier@npm:1.0.1": version: 1.0.1 resolution: "toidentifier@npm:1.0.1" @@ -22408,6 +34139,16 @@ __metadata: languageName: node linkType: hard +"token-types@npm:^4.1.1": + version: 4.2.1 + resolution: "token-types@npm:4.2.1" + dependencies: + "@tokenizer/token": ^0.3.0 + ieee754: ^1.2.1 + checksum: cce256766b33e0f08ceffefa2198fb4961a417866d00780e58625999ab5c0699821407053e64eadc41b00bbb6c0d0c4d02fbd2199940d8a3ccb71e1b148ab9a2 + languageName: node + linkType: hard + "toposort@npm:^2.0.2": version: 2.0.2 resolution: "toposort@npm:2.0.2" @@ -22422,7 +34163,7 @@ __metadata: languageName: node linkType: hard -"tough-cookie@npm:^4.1.2": +"tough-cookie@npm:^4.0.0, tough-cookie@npm:^4.1.2": version: 4.1.4 resolution: "tough-cookie@npm:4.1.4" dependencies: @@ -22444,6 +34185,15 @@ __metadata: languageName: node linkType: hard +"tr46@npm:^2.1.0": + version: 2.1.0 + resolution: "tr46@npm:2.1.0" + dependencies: + punycode: ^2.1.1 + checksum: ffe6049b9dca3ae329b059aada7f515b0f0064c611b39b51ff6b53897e954650f6f63d9319c6c008d36ead477c7b55e5f64c9dc60588ddc91ff720d64eb710b3 + languageName: node + linkType: hard + "tr46@npm:^3.0.0": version: 3.0.0 resolution: "tr46@npm:3.0.0" @@ -22478,6 +34228,40 @@ __metadata: languageName: node linkType: hard +"tree-sitter-json@npm:=0.24.8": + version: 0.24.8 + resolution: "tree-sitter-json@npm:0.24.8" + dependencies: + node-addon-api: ^8.2.2 + node-gyp: latest + node-gyp-build: ^4.8.2 + peerDependencies: + tree-sitter: ^0.21.1 + peerDependenciesMeta: + tree-sitter: + optional: true + checksum: 740f3483a5b2dbd8b439f4b409994187029a0a26f2b8609dbad3b4405c9005f1134a813d461793d5628a593fbd7df04ecf366a917dfcd32790292e8526b5a4df + languageName: node + linkType: hard + +"tree-sitter@npm:=0.22.1": + version: 0.22.1 + resolution: "tree-sitter@npm:0.22.1" + dependencies: + node-addon-api: ^8.2.1 + node-gyp: latest + node-gyp-build: ^4.8.2 + checksum: b6bf557dd7b5f7ea477d6e8254fdb4cfba0c2db6850a2c39fbb1ae86012b9b4a09fbc2583a79793fbe31b248ac8912047b2cedc7504e17934369ecdf1bba67d4 + languageName: node + linkType: hard + +"trim-lines@npm:^3.0.0": + version: 3.0.1 + resolution: "trim-lines@npm:3.0.1" + checksum: e241da104682a0e0d807222cc1496b92e716af4db7a002f4aeff33ae6a0024fef93165d49eab11aa07c71e1347c42d46563f91dfaa4d3fb945aa535cdead53ed + languageName: node + linkType: hard + "triple-beam@npm:^1.3.0, triple-beam@npm:^1.4.1": version: 1.4.1 resolution: "triple-beam@npm:1.4.1" @@ -22485,12 +34269,10 @@ __metadata: languageName: node linkType: hard -"true-case-path@npm:^1.0.3": - version: 1.0.3 - resolution: "true-case-path@npm:1.0.3" - dependencies: - glob: ^7.1.2 - checksum: 2e2e3bf37b4b05db2e2a1d60329960a4aa697ad7a89bd97c66f5f4da83977897c29c704276e62bca62d055d8078065bc08a1c7a01f409de11c6592af8b442cbe +"trough@npm:^2.0.0": + version: 2.2.0 + resolution: "trough@npm:2.2.0" + checksum: 6097df63169aca1f9b08c263b1b501a9b878387f46e161dde93f6d0bba7febba93c95f876a293c5ea370f6cb03bcb687b2488c8955c3cfb66c2c0161ea8c00f6 languageName: node linkType: hard @@ -22501,12 +34283,26 @@ __metadata: languageName: node linkType: hard +"ts-algebra@npm:^2.0.0": + version: 2.0.0 + resolution: "ts-algebra@npm:2.0.0" + checksum: 970b0e7db49cf8c1a8ff2a816eb047fac8add47511f5e4995e4998c56c6f7b226399284412de88f3e137ab55c857a4262c0d8f02f0765730e7d3a021de2ea7ef + languageName: node + linkType: hard + "ts-api-utils@npm:^1.0.1, ts-api-utils@npm:^1.3.0": - version: 1.3.0 - resolution: "ts-api-utils@npm:1.3.0" + version: 1.4.3 + resolution: "ts-api-utils@npm:1.4.3" peerDependencies: typescript: ">=4.2.0" - checksum: c746ddabfdffbf16cb0b0db32bb287236a19e583057f8649ee7c49995bb776e1d3ef384685181c11a1a480369e022ca97512cb08c517b2d2bd82c83754c97012 + checksum: ea00dee382d19066b2a3d8929f1089888b05fec797e32e7a7004938eda1dccf2e77274ee2afcd4166f53fab9b8d7ee90ebb225a3183f9ba8817d636f688a148d + languageName: node + linkType: hard + +"ts-easing@npm:^0.2.0": + version: 0.2.0 + resolution: "ts-easing@npm:0.2.0" + checksum: e67ee862acca3b2e2718e736f31999adcef862d0df76d76a0e138588728d8a87dfec9978556044640bd0e90203590ad88ac2fe8746d0e9959b8d399132315150 languageName: node linkType: hard @@ -22526,6 +34322,20 @@ __metadata: languageName: node linkType: hard +"ts-is-present@npm:^1.1.1": + version: 1.2.2 + resolution: "ts-is-present@npm:1.2.2" + checksum: 3620ecf48219d0dd108e493260a207f4733d8e39a18dffec23c7ed2b1ef2aba7158d0dfafe36f3f27d0092472535a5e474ce04ade54e972e64b2b6329d20ab0b + languageName: node + linkType: hard + +"ts-mixer@npm:^6.0.3, ts-mixer@npm:^6.0.4": + version: 6.0.4 + resolution: "ts-mixer@npm:6.0.4" + checksum: 36b1af526befd74345e736e9aa16f5c28876ebcea07784da14d929149fd7e6028cfd2fe9304c8efe8cb91b588443a9cc9e991df58e4c6e602326edbaae2af3ab + languageName: node + linkType: hard + "ts-morph@npm:^23.0.0": version: 23.0.0 resolution: "ts-morph@npm:23.0.0" @@ -22574,6 +34384,13 @@ __metadata: languageName: node linkType: hard +"ts-toolbelt@npm:^9.6.0": + version: 9.6.0 + resolution: "ts-toolbelt@npm:9.6.0" + checksum: 9f35fd95d895a5d32ea9fd2e532a695b0bae6cbff6832b77292efa188a0ed1ed6e54f63f74a8920390f3d909a7a3adb20a144686372a8e78b420246a9bd3d58a + languageName: node + linkType: hard + "tsconfig-paths@npm:^3.15.0": version: 3.15.0 resolution: "tsconfig-paths@npm:3.15.0" @@ -22593,17 +34410,17 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^1.14.1, tslib@npm:^1.8.1, tslib@npm:^1.9.0": - version: 1.14.1 - resolution: "tslib@npm:1.14.1" - checksum: dbe628ef87f66691d5d2959b3e41b9ca0045c3ee3c7c7b906cc1e328b39f199bb1ad9e671c39025bd56122ac57dfbf7385a94843b1cc07c60a4db74795829acd +"tslib@npm:2.8.1, tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.2.0, tslib@npm:^2.3.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.4.1, tslib@npm:^2.5.0, tslib@npm:^2.6.0, tslib@npm:^2.6.2, tslib@npm:^2.6.3, tslib@npm:^2.7.0, tslib@npm:^2.8.0, tslib@npm:^2.8.1": + version: 2.8.1 + resolution: "tslib@npm:2.8.1" + checksum: e4aba30e632b8c8902b47587fd13345e2827fa639e7c3121074d5ee0880723282411a8838f830b55100cbe4517672f84a2472667d355b81e8af165a55dc6203a languageName: node linkType: hard -"tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.2.0, tslib@npm:^2.3.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.4.1, tslib@npm:^2.5.0, tslib@npm:^2.6.0, tslib@npm:^2.6.2": - version: 2.8.0 - resolution: "tslib@npm:2.8.0" - checksum: de852ecd81adfdb4870927e250763345f07dc13fe7f395ce261424966bb122a0992ad844c3ec875c9e63e72afe2220a150712984e44dfd1a8a7e538a064e3d46 +"tslib@npm:^1.11.1, tslib@npm:^1.14.1, tslib@npm:^1.8.1, tslib@npm:^1.9.0": + version: 1.14.1 + resolution: "tslib@npm:1.14.1" + checksum: dbe628ef87f66691d5d2959b3e41b9ca0045c3ee3c7c7b906cc1e328b39f199bb1ad9e671c39025bd56122ac57dfbf7385a94843b1cc07c60a4db74795829acd languageName: node linkType: hard @@ -22641,6 +34458,13 @@ __metadata: languageName: node linkType: hard +"tunnel@npm:0.0.6": + version: 0.0.6 + resolution: "tunnel@npm:0.0.6" + checksum: c362948df9ad34b649b5585e54ce2838fa583aa3037091aaed66793c65b423a264e5229f0d7e9a95513a795ac2bd4cb72cda7e89a74313f182c1e9ae0b0994fa + languageName: node + linkType: hard + "tweetnacl@npm:^0.14.3, tweetnacl@npm:~0.14.0": version: 0.14.5 resolution: "tweetnacl@npm:0.14.5" @@ -22701,7 +34525,7 @@ __metadata: languageName: node linkType: hard -"type-is@npm:^1.6.16, type-is@npm:~1.6.18": +"type-is@npm:^1.6.16, type-is@npm:^1.6.4, type-is@npm:~1.6.18": version: 1.6.18 resolution: "type-is@npm:1.6.18" dependencies: @@ -22712,54 +34536,75 @@ __metadata: linkType: hard "typed-array-buffer@npm:^1.0.2": - version: 1.0.2 - resolution: "typed-array-buffer@npm:1.0.2" + version: 1.0.3 + resolution: "typed-array-buffer@npm:1.0.3" dependencies: - call-bind: ^1.0.7 + call-bound: ^1.0.3 es-errors: ^1.3.0 - is-typed-array: ^1.1.13 - checksum: 02ffc185d29c6df07968272b15d5319a1610817916ec8d4cd670ded5d1efe72901541ff2202fcc622730d8a549c76e198a2f74e312eabbfb712ed907d45cbb0b + is-typed-array: ^1.1.14 + checksum: 3fb91f0735fb413b2bbaaca9fabe7b8fc14a3fa5a5a7546bab8a57e755be0e3788d893195ad9c2b842620592de0e68d4c077d4c2c41f04ec25b8b5bb82fa9a80 languageName: node linkType: hard "typed-array-byte-length@npm:^1.0.1": - version: 1.0.1 - resolution: "typed-array-byte-length@npm:1.0.1" + version: 1.0.3 + resolution: "typed-array-byte-length@npm:1.0.3" dependencies: - call-bind: ^1.0.7 + call-bind: ^1.0.8 for-each: ^0.3.3 - gopd: ^1.0.1 - has-proto: ^1.0.3 - is-typed-array: ^1.1.13 - checksum: f65e5ecd1cf76b1a2d0d6f631f3ea3cdb5e08da106c6703ffe687d583e49954d570cc80434816d3746e18be889ffe53c58bf3e538081ea4077c26a41055b216d + gopd: ^1.2.0 + has-proto: ^1.2.0 + is-typed-array: ^1.1.14 + checksum: cda9352178ebeab073ad6499b03e938ebc30c4efaea63a26839d89c4b1da9d2640b0d937fc2bd1f049eb0a38def6fbe8a061b601292ae62fe079a410ce56e3a6 languageName: node linkType: hard -"typed-array-byte-offset@npm:^1.0.2": - version: 1.0.2 - resolution: "typed-array-byte-offset@npm:1.0.2" +"typed-array-byte-offset@npm:^1.0.3": + version: 1.0.4 + resolution: "typed-array-byte-offset@npm:1.0.4" dependencies: available-typed-arrays: ^1.0.7 - call-bind: ^1.0.7 + call-bind: ^1.0.8 for-each: ^0.3.3 - gopd: ^1.0.1 - has-proto: ^1.0.3 - is-typed-array: ^1.1.13 - checksum: c8645c8794a621a0adcc142e0e2c57b1823bbfa4d590ad2c76b266aa3823895cf7afb9a893bf6685e18454ab1b0241e1a8d885a2d1340948efa4b56add4b5f67 + gopd: ^1.2.0 + has-proto: ^1.2.0 + is-typed-array: ^1.1.15 + reflect.getprototypeof: ^1.0.9 + checksum: 670b7e6bb1d3c2cf6160f27f9f529e60c3f6f9611c67e47ca70ca5cfa24ad95415694c49d1dbfeda016d3372cab7dfc9e38c7b3e1bb8d692cae13a63d3c144d7 languageName: node linkType: hard -"typed-array-length@npm:^1.0.6": - version: 1.0.6 - resolution: "typed-array-length@npm:1.0.6" +"typed-array-length@npm:^1.0.7": + version: 1.0.7 + resolution: "typed-array-length@npm:1.0.7" dependencies: call-bind: ^1.0.7 for-each: ^0.3.3 gopd: ^1.0.1 - has-proto: ^1.0.3 is-typed-array: ^1.1.13 possible-typed-array-names: ^1.0.0 - checksum: f0315e5b8f0168c29d390ff410ad13e4d511c78e6006df4a104576844812ee447fcc32daab1f3a76c9ef4f64eff808e134528b5b2439de335586b392e9750e5c + reflect.getprototypeof: ^1.0.6 + checksum: deb1a4ffdb27cd930b02c7030cb3e8e0993084c643208e52696e18ea6dd3953dfc37b939df06ff78170423d353dc8b10d5bae5796f3711c1b3abe52872b3774c + languageName: node + linkType: hard + +"typed-error@npm:^3.0.2": + version: 3.2.2 + resolution: "typed-error@npm:3.2.2" + checksum: 90d0d2ebef72a3655153d7d4ffe8607ebb38a39e38f9f19642a55542c0459afc887862ff5353d57ee77502c5c438341843b21309ecd0cf2b19a344034c9fedef + languageName: node + linkType: hard + +"typed-rest-client@npm:2.1.0": + version: 2.1.0 + resolution: "typed-rest-client@npm:2.1.0" + dependencies: + des.js: ^1.1.0 + js-md4: ^0.3.2 + qs: ^6.10.3 + tunnel: 0.0.6 + underscore: ^1.12.1 + checksum: 0877215291c11ee100620510cf0e25e1c594b8a73722d896fe4f032a18a477b285062627f5536af7695f79c28341af9ac0f192723a7d8d7b3a755925491406cb languageName: node linkType: hard @@ -22770,21 +34615,19 @@ __metadata: languageName: node linkType: hard -"typescript-json-schema@npm:^0.64.0": - version: 0.64.0 - resolution: "typescript-json-schema@npm:0.64.0" +"types-ramda@npm:^0.30.1": + version: 0.30.1 + resolution: "types-ramda@npm:0.30.1" dependencies: - "@types/json-schema": ^7.0.9 - "@types/node": ^16.9.2 - glob: ^7.1.7 - path-equal: ^1.2.5 - safe-stable-stringify: ^2.2.0 - ts-node: ^10.9.1 - typescript: ~5.1.0 - yargs: ^17.1.1 - bin: - typescript-json-schema: bin/typescript-json-schema - checksum: 458c142e71d214e807a3a90ce31d74044dea282240fdd743c6b2632ec5d732599f0a1013617d4e030fe8961a5578a05b49d1edb642a97fc67cb0f098a405d9f5 + ts-toolbelt: ^9.6.0 + checksum: 7af1b5b6dbb5878e5104013f7eca7feff999b538d98d59c91ce82e69908b31223b44a163271b0c13c9828c27f6cff39f78cff0f83d82b73ac47f74ffb3fe7ded + languageName: node + linkType: hard + +"typesafe-actions@npm:^4.2.1": + version: 4.4.2 + resolution: "typesafe-actions@npm:4.4.2" + checksum: 43b3a91af74172b42e27098150d84eaa9f02f74a8f9c81225e560d48872f6a3174482651d6e6278f380ed25870edb2b949b4776382cf0393b8299a3723c56d9b languageName: node linkType: hard @@ -22816,16 +34659,6 @@ __metadata: languageName: node linkType: hard -"typescript@npm:~5.1.0": - version: 5.1.6 - resolution: "typescript@npm:5.1.6" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: b2f2c35096035fe1f5facd1e38922ccb8558996331405eb00a5111cc948b2e733163cc22fab5db46992aba7dd520fff637f2c1df4996ff0e134e77d3249a7350 - languageName: node - linkType: hard - "typescript@npm:~5.3.0": version: 5.3.3 resolution: "typescript@npm:5.3.3" @@ -22856,16 +34689,6 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@~5.1.0#~builtin": - version: 5.1.6 - resolution: "typescript@patch:typescript@npm%3A5.1.6#~builtin::version=5.1.6&hash=a1c5e5" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 21e88b0a0c0226f9cb9fd25b9626fb05b4c0f3fddac521844a13e1f30beb8f14e90bd409a9ac43c812c5946d714d6e0dee12d5d02dfc1c562c5aacfa1f49b606 - languageName: node - linkType: hard - "typescript@patch:typescript@~5.3.0#~builtin": version: 5.3.3 resolution: "typescript@patch:typescript@npm%3A5.3.3#~builtin::version=5.3.3&hash=a1c5e5" @@ -22886,6 +34709,30 @@ __metadata: languageName: node linkType: hard +"typestyle@npm:^2.4.0": + version: 2.4.0 + resolution: "typestyle@npm:2.4.0" + dependencies: + csstype: 3.0.10 + free-style: 3.1.0 + checksum: 8b4f02c24f67b594f98507b15a753dabd4db5eb0af007e1d310527c64030e11e9464b25b5a6bc65fb5eec9a4459a8336050121ecc29063ac87b8b47a6d698893 + languageName: node + linkType: hard + +"uc.micro@npm:^1.0.1, uc.micro@npm:^1.0.5": + version: 1.0.6 + resolution: "uc.micro@npm:1.0.6" + checksum: 6898bb556319a38e9cf175e3628689347bd26fec15fc6b29fa38e0045af63075ff3fea4cf1fdba9db46c9f0cbf07f2348cd8844889dd31ebd288c29fe0d27e7a + languageName: node + linkType: hard + +"uc.micro@npm:^2.0.0, uc.micro@npm:^2.1.0": + version: 2.1.0 + resolution: "uc.micro@npm:2.1.0" + checksum: 37197358242eb9afe367502d4638ac8c5838b78792ab218eafe48287b0ed28aaca268ec0392cc5729f6c90266744de32c06ae938549aee041fc93b0f9672d6b2 + languageName: node + linkType: hard + "uglify-js@npm:^3.1.4": version: 3.19.3 resolution: "uglify-js@npm:3.19.3" @@ -22895,6 +34742,36 @@ __metadata: languageName: node linkType: hard +"uid-safe@npm:~2.1.5": + version: 2.1.5 + resolution: "uid-safe@npm:2.1.5" + dependencies: + random-bytes: ~1.0.0 + checksum: 07536043da9a026f4a2bc397543d0ace7587449afa1d9d2c4fd3ce76af8a5263a678788bcc429dff499ef29d45843cd5ee9d05434450fcfc19cc661229f703d1 + languageName: node + linkType: hard + +"uid2@npm:0.0.3": + version: 0.0.3 + resolution: "uid2@npm:0.0.3" + checksum: c8f64acfa94aa42d90c1a61ba9df0162f0db0d28c211e21cf5792b3d70b7ad9fd75d19c7cadcce81896ea111335e57e65891a3b6d0a1343a9adf45abf3d4c47d + languageName: node + linkType: hard + +"uid2@npm:0.0.x": + version: 0.0.4 + resolution: "uid2@npm:0.0.4" + checksum: e92325ce2e3b7be504b19e835dbb5a8b0495031f364b08ca46745468ed0ae0f202a4fdaf99a1a2715844156efc3ab410456ae24a0f7c0ae4b0a2e9f2784edfd9 + languageName: node + linkType: hard + +"uid2@npm:^1.0.0": + version: 1.0.0 + resolution: "uid2@npm:1.0.0" + checksum: 7efad0da3839ef2bebc6fae4bd29905702cd64233b3907e3300aa2d7ea1a00c1ae8c41a5e16ca34ac2db2d25c5607d5989673e1df51a2a076fefbeed51605ec3 + languageName: node + linkType: hard + "uid@npm:2.0.2": version: 2.0.2 resolution: "uid@npm:2.0.2" @@ -22905,14 +34782,14 @@ __metadata: linkType: hard "unbox-primitive@npm:^1.0.2": - version: 1.0.2 - resolution: "unbox-primitive@npm:1.0.2" + version: 1.1.0 + resolution: "unbox-primitive@npm:1.1.0" dependencies: - call-bind: ^1.0.2 + call-bound: ^1.0.3 has-bigints: ^1.0.2 - has-symbols: ^1.0.3 - which-boxed-primitive: ^1.0.2 - checksum: b7a1cf5862b5e4b5deb091672ffa579aa274f648410009c81cca63fed3b62b610c4f3b773f912ce545bb4e31edc3138975b5bc777fc6e4817dca51affb6380e9 + has-symbols: ^1.1.0 + which-boxed-primitive: ^1.1.1 + checksum: 729f13b84a5bfa3fead1d8139cee5c38514e63a8d6a437819a473e241ba87eeb593646568621c7fc7f133db300ef18d65d1a5a60dc9c7beb9000364d93c581df languageName: node linkType: hard @@ -22923,6 +34800,13 @@ __metadata: languageName: node linkType: hard +"underscore@npm:^1.12.1": + version: 1.13.7 + resolution: "underscore@npm:1.13.7" + checksum: 174b011af29e4fbe2c70eb2baa8bfab0d0336cf2f5654f364484967bc6264a86224d0134b9176e4235c8cceae00d11839f0fd4824268de04b11c78aca1241684 + languageName: node + linkType: hard + "undici-types@npm:~5.26.4": version: 5.26.5 resolution: "undici-types@npm:5.26.5" @@ -22930,13 +34814,20 @@ __metadata: languageName: node linkType: hard -"undici-types@npm:~6.19.2, undici-types@npm:~6.19.8": +"undici-types@npm:~6.19.2": version: 6.19.8 resolution: "undici-types@npm:6.19.8" checksum: de51f1b447d22571cf155dfe14ff6d12c5bdaec237c765085b439c38ca8518fc360e88c70f99469162bf2e14188a7b0bcb06e1ed2dc031042b984b0bb9544017 languageName: node linkType: hard +"undici-types@npm:~6.20.0": + version: 6.20.0 + resolution: "undici-types@npm:6.20.0" + checksum: b7bc50f012dc6afbcce56c9fd62d7e86b20a62ff21f12b7b5cbf1973b9578d90f22a9c7fe50e638e96905d33893bf2f9f16d98929c4673c2480de05c6c96ea8b + languageName: node + linkType: hard + "undici@npm:^5.28.4": version: 5.28.4 resolution: "undici@npm:5.28.4" @@ -22977,6 +34868,21 @@ __metadata: languageName: node linkType: hard +"unified@npm:^10.0.0": + version: 10.1.2 + resolution: "unified@npm:10.1.2" + dependencies: + "@types/unist": ^2.0.0 + bail: ^2.0.0 + extend: ^3.0.0 + is-buffer: ^2.0.0 + is-plain-obj: ^4.0.0 + trough: ^2.0.0 + vfile: ^5.0.0 + checksum: 053e7c65ede644607f87bd625a299e4b709869d2f76ec8138569e6e886903b6988b21cd9699e471eda42bee189527be0a9dac05936f1d069a5e65d0125d5d756 + languageName: node + linkType: hard + "unique-filename@npm:^2.0.0": version: 2.0.1 resolution: "unique-filename@npm:2.0.1" @@ -22990,30 +34896,103 @@ __metadata: version: 3.0.0 resolution: "unique-filename@npm:3.0.0" dependencies: - unique-slug: ^4.0.0 - checksum: 8e2f59b356cb2e54aab14ff98a51ac6c45781d15ceaab6d4f1c2228b780193dc70fae4463ce9e1df4479cb9d3304d7c2043a3fb905bdeca71cc7e8ce27e063df + unique-slug: ^4.0.0 + checksum: 8e2f59b356cb2e54aab14ff98a51ac6c45781d15ceaab6d4f1c2228b780193dc70fae4463ce9e1df4479cb9d3304d7c2043a3fb905bdeca71cc7e8ce27e063df + languageName: node + linkType: hard + +"unique-filename@npm:^4.0.0": + version: 4.0.0 + resolution: "unique-filename@npm:4.0.0" + dependencies: + unique-slug: ^5.0.0 + checksum: 6a62094fcac286b9ec39edbd1f8f64ff92383baa430af303dfed1ffda5e47a08a6b316408554abfddd9730c78b6106bef4ca4d02c1231a735ddd56ced77573df + languageName: node + linkType: hard + +"unique-slug@npm:^3.0.0": + version: 3.0.0 + resolution: "unique-slug@npm:3.0.0" + dependencies: + imurmurhash: ^0.1.4 + checksum: 49f8d915ba7f0101801b922062ee46b7953256c93ceca74303bd8e6413ae10aa7e8216556b54dc5382895e8221d04f1efaf75f945c2e4a515b4139f77aa6640c + languageName: node + linkType: hard + +"unique-slug@npm:^4.0.0": + version: 4.0.0 + resolution: "unique-slug@npm:4.0.0" + dependencies: + imurmurhash: ^0.1.4 + checksum: 0884b58365af59f89739e6f71e3feacb5b1b41f2df2d842d0757933620e6de08eff347d27e9d499b43c40476cbaf7988638d3acb2ffbcb9d35fd035591adfd15 + languageName: node + linkType: hard + +"unique-slug@npm:^5.0.0": + version: 5.0.0 + resolution: "unique-slug@npm:5.0.0" + dependencies: + imurmurhash: ^0.1.4 + checksum: 222d0322bc7bbf6e45c08967863212398313ef73423f4125e075f893a02405a5ffdbaaf150f7dd1e99f8861348a486dd079186d27c5f2c60e465b7dcbb1d3e5b + languageName: node + linkType: hard + +"unist-util-generated@npm:^2.0.0": + version: 2.0.1 + resolution: "unist-util-generated@npm:2.0.1" + checksum: 6221ad0571dcc9c8964d6b054f39ef6571ed59cc0ce3e88ae97ea1c70afe76b46412a5ffaa91f96814644ac8477e23fb1b477d71f8d70e625728c5258f5c0d99 + languageName: node + linkType: hard + +"unist-util-is@npm:^5.0.0": + version: 5.2.1 + resolution: "unist-util-is@npm:5.2.1" + dependencies: + "@types/unist": ^2.0.0 + checksum: ae76fdc3d35352cd92f1bedc3a0d407c3b9c42599a52ab9141fe89bdd786b51f0ec5a2ab68b93fb532e239457cae62f7e39eaa80229e1cb94875da2eafcbe5c4 + languageName: node + linkType: hard + +"unist-util-position@npm:^4.0.0": + version: 4.0.4 + resolution: "unist-util-position@npm:4.0.4" + dependencies: + "@types/unist": ^2.0.0 + checksum: e7487b6cec9365299695e3379ded270a1717074fa11fd2407c9b934fb08db6fe1d9077ddeaf877ecf1813665f8ccded5171693d3d9a7a01a125ec5cdd5e88691 + languageName: node + linkType: hard + +"unist-util-stringify-position@npm:^3.0.0": + version: 3.0.3 + resolution: "unist-util-stringify-position@npm:3.0.3" + dependencies: + "@types/unist": ^2.0.0 + checksum: dbd66c15183607ca942a2b1b7a9f6a5996f91c0d30cf8966fb88955a02349d9eefd3974e9010ee67e71175d784c5a9fea915b0aa0b0df99dcb921b95c4c9e124 languageName: node linkType: hard -"unique-slug@npm:^3.0.0": - version: 3.0.0 - resolution: "unique-slug@npm:3.0.0" +"unist-util-visit-parents@npm:^5.0.0, unist-util-visit-parents@npm:^5.1.1": + version: 5.1.3 + resolution: "unist-util-visit-parents@npm:5.1.3" dependencies: - imurmurhash: ^0.1.4 - checksum: 49f8d915ba7f0101801b922062ee46b7953256c93ceca74303bd8e6413ae10aa7e8216556b54dc5382895e8221d04f1efaf75f945c2e4a515b4139f77aa6640c + "@types/unist": ^2.0.0 + unist-util-is: ^5.0.0 + checksum: 8ecada5978994f846b64658cf13b4092cd78dea39e1ba2f5090a5de842ba4852712c02351a8ae95250c64f864635e7b02aedf3b4a093552bb30cf1bd160efbaa languageName: node linkType: hard -"unique-slug@npm:^4.0.0": - version: 4.0.0 - resolution: "unique-slug@npm:4.0.0" +"unist-util-visit@npm:^4.0.0": + version: 4.1.2 + resolution: "unist-util-visit@npm:4.1.2" dependencies: - imurmurhash: ^0.1.4 - checksum: 0884b58365af59f89739e6f71e3feacb5b1b41f2df2d842d0757933620e6de08eff347d27e9d499b43c40476cbaf7988638d3acb2ffbcb9d35fd035591adfd15 + "@types/unist": ^2.0.0 + unist-util-is: ^5.0.0 + unist-util-visit-parents: ^5.1.1 + checksum: 95a34e3f7b5b2d4b68fd722b6229972099eb97b6df18913eda44a5c11df8b1e27efe7206dd7b88c4ed244a48c474a5b2e2629ab79558ff9eb936840295549cee languageName: node linkType: hard -"universal-github-app-jwt@npm:^1.1.1": +"universal-github-app-jwt@npm:^1.1.1, universal-github-app-jwt@npm:^1.1.2": version: 1.2.0 resolution: "universal-github-app-jwt@npm:1.2.0" dependencies: @@ -23051,6 +35030,15 @@ __metadata: languageName: node linkType: hard +"unixify@npm:^1.0.0": + version: 1.0.0 + resolution: "unixify@npm:1.0.0" + dependencies: + normalize-path: ^2.1.1 + checksum: 3be30e48579fc6c7390bd59b4ab9e745fede0c164dfb7351cf710bd1dbef8484b1441186205af6bcb13b731c0c88caf9b33459f7bf8c89e79c046e656ae433f0 + languageName: node + linkType: hard + "unpipe@npm:1.0.0, unpipe@npm:~1.0.0": version: 1.0.0 resolution: "unpipe@npm:1.0.0" @@ -23058,6 +35046,13 @@ __metadata: languageName: node linkType: hard +"unraw@npm:^3.0.0": + version: 3.0.0 + resolution: "unraw@npm:3.0.0" + checksum: 19eee0bc500ce197d262b79723a2c8c81c1d716baaa2a62c48a4d0d6b9e1fd9d350c5df86262e51343d591ab9c8a47ed150317d0b867b2b65795cdc17ef69873 + languageName: node + linkType: hard + "upath@npm:2.0.1": version: 2.0.1 resolution: "upath@npm:2.0.1" @@ -23097,7 +35092,7 @@ __metadata: languageName: node linkType: hard -"urijs@npm:^1.19.11": +"urijs@npm:^1.19.10, urijs@npm:^1.19.11": version: 1.19.11 resolution: "urijs@npm:1.19.11" checksum: f9b95004560754d30fd7dbee44b47414d662dc9863f1cf5632a7c7983648df11d23c0be73b9b4f9554463b61d5b0a520b70df9e1ee963ebb4af02e6da2cc80f3 @@ -23111,7 +35106,7 @@ __metadata: languageName: node linkType: hard -"url-parse@npm:^1.5.3": +"url-parse@npm:^1.5.10, url-parse@npm:^1.5.3": version: 1.5.10 resolution: "url-parse@npm:1.5.10" dependencies: @@ -23131,6 +35126,91 @@ __metadata: languageName: node linkType: hard +"urlpattern-polyfill@npm:^10.0.0": + version: 10.0.0 + resolution: "urlpattern-polyfill@npm:10.0.0" + checksum: 61d890f151ea4ecf34a3dcab32c65ad1f3cda857c9d154af198260c6e5b2ad96d024593409baaa6d4428dd1ab206c14799bf37fe011117ac93a6a44913ac5aa4 + languageName: node + linkType: hard + +"urlpattern-polyfill@npm:^8.0.0": + version: 8.0.2 + resolution: "urlpattern-polyfill@npm:8.0.2" + checksum: d2cc0905a613c77e330c426e8697ee522dd9640eda79ac51160a0f6350e103f09b8c327623880989f8ba7325e8d95267b745aa280fdcc2aead80b023e16bd09d + languageName: node + linkType: hard + +"use-callback-ref@npm:^1.3.3": + version: 1.3.3 + resolution: "use-callback-ref@npm:1.3.3" + dependencies: + tslib: ^2.0.0 + peerDependencies: + "@types/react": "*" + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 4da1c82d7a2409cee6c882748a40f4a083decf238308bf12c3d0166f0e338f8d512f37b8d11987eb5a421f14b9b5b991edf3e11ed25c3bb7a6559081f8359b44 + languageName: node + linkType: hard + +"use-immer@npm:^0.10.0": + version: 0.10.0 + resolution: "use-immer@npm:0.10.0" + peerDependencies: + immer: ">=8.0.0" + react: ^16.8.0 || ^17.0.1 || ^18.0.0 + checksum: 372b0eea0a05e9435f5dc57a877ec619ea9a479fc82423f502b4a498d5697f8b06b85d089058db5a056bc8bbdb8e6f9ea8c9850b51a6b05d5c63ab0c8eeb2b7e + languageName: node + linkType: hard + +"use-memo-one@npm:^1.1.1": + version: 1.1.3 + resolution: "use-memo-one@npm:1.1.3" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: 8f08eba26d69406b61bb4b8dacdd5a92bd6aef5b53d346dfe87954f7330ee10ecabc937cc7854635155d46053828e85c10b5a5aff7a04720e6a97b9f42999bac + languageName: node + linkType: hard + +"use-resize-observer@npm:^8.0.0": + version: 8.0.0 + resolution: "use-resize-observer@npm:8.0.0" + dependencies: + "@juggle/resize-observer": ^3.3.1 + peerDependencies: + react: ">=16.8.0" + react-dom: ">=16.8.0" + checksum: 944ce47811f6056b481ce2f1550c2881bd5c25838cae2e0fb0bc0ed4aad7b5f2e55dcc0fc52107998ecfb602446465f94b2e728d3f3259fe8e6d4a3031cfb24a + languageName: node + linkType: hard + +"use-sidecar@npm:^1.1.2": + version: 1.1.3 + resolution: "use-sidecar@npm:1.1.3" + dependencies: + detect-node-es: ^1.1.0 + tslib: ^2.0.0 + peerDependencies: + "@types/react": "*" + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 88664c6b2c5b6e53e4d5d987694c9053cea806da43130248c74ca058945c8caa6ccb7b1787205a9eb5b9d124633e42153848904002828acabccdc48cda026622 + languageName: node + linkType: hard + +"use-sync-external-store@npm:^1.2.0, use-sync-external-store@npm:^1.4.0": + version: 1.4.0 + resolution: "use-sync-external-store@npm:1.4.0" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + checksum: dc3843a1b59ac8bd01417bd79498d4c688d5df8bf4801be50008ef4bfaacb349058c0b1605b5b43c828e0a2d62722d7e861573b3f31cea77a7f23e8b0fc2f7e3 + languageName: node + linkType: hard + "util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2, util-deprecate@npm:~1.0.1": version: 1.0.2 resolution: "util-deprecate@npm:1.0.2" @@ -23183,14 +35263,23 @@ __metadata: languageName: node linkType: hard -"utils-merge@npm:1.0.1, utils-merge@npm:^1.0.1": +"utils-merge@npm:1.0.1, utils-merge@npm:1.x.x, utils-merge@npm:^1.0.1": version: 1.0.1 resolution: "utils-merge@npm:1.0.1" checksum: c81095493225ecfc28add49c106ca4f09cdf56bc66731aa8dabc2edbbccb1e1bfe2de6a115e5c6a380d3ea166d1636410b62ef216bb07b3feb1cfde1d95d5080 languageName: node linkType: hard -"uuid@npm:^3.3.2": +"uuid@npm:^11.0.0, uuid@npm:^11.0.2": + version: 11.0.3 + resolution: "uuid@npm:11.0.3" + bin: + uuid: dist/esm/bin/uuid + checksum: 646181c77e8b8df9bd07254faa703943e1c4d5ccde7d080312edf12f443f6c5750801fd9b27bf2e628594182165e6b1b880c0382538f7eca00b26622203741dc + languageName: node + linkType: hard + +"uuid@npm:^3.3.2, uuid@npm:^3.4.0": version: 3.4.0 resolution: "uuid@npm:3.4.0" bin: @@ -23217,6 +35306,20 @@ __metadata: languageName: node linkType: hard +"uvu@npm:^0.5.0": + version: 0.5.6 + resolution: "uvu@npm:0.5.6" + dependencies: + dequal: ^2.0.0 + diff: ^5.0.0 + kleur: ^4.0.3 + sade: ^1.7.3 + bin: + uvu: bin.js + checksum: 09460a37975627de9fcad396e5078fb844d01aaf64a6399ebfcfd9e55f1c2037539b47611e8631f89be07656962af0cf48c334993db82b9ae9c3d25ce3862168 + languageName: node + linkType: hard + "v8-compile-cache-lib@npm:^3.0.1": version: 3.0.1 resolution: "v8-compile-cache-lib@npm:3.0.1" @@ -23235,6 +35338,13 @@ __metadata: languageName: node linkType: hard +"valid-url@npm:^1.0.9": + version: 1.0.9 + resolution: "valid-url@npm:1.0.9" + checksum: 3ecb030559404441c2cf104cbabab8770efb0f36d117db03d1081052ef133015a68806148ce954bb4dd0b5c42c14b709a88783c93d66b0916cb67ba771c98702 + languageName: node + linkType: hard + "validate.io-array@npm:^1.0.3": version: 1.0.6 resolution: "validate.io-array@npm:1.0.6" @@ -23249,47 +35359,457 @@ __metadata: languageName: node linkType: hard -"validate.io-integer-array@npm:^1.0.0": - version: 1.0.0 - resolution: "validate.io-integer-array@npm:1.0.0" +"validate.io-integer-array@npm:^1.0.0": + version: 1.0.0 + resolution: "validate.io-integer-array@npm:1.0.0" + dependencies: + validate.io-array: ^1.0.3 + validate.io-integer: ^1.0.4 + checksum: 5f6d7fab8df7d2bf546a05e830201768464605539c75a2c2417b632b4411a00df84b462f81eac75e1be95303e7e0ac92f244c137424739f4e15cd21c2eb52c7f + languageName: node + linkType: hard + +"validate.io-integer@npm:^1.0.4": + version: 1.0.5 + resolution: "validate.io-integer@npm:1.0.5" + dependencies: + validate.io-number: ^1.0.3 + checksum: 88b3f8bb5a5277a95305d64abbfc437079220ce4f57a148cc6113e7ccec03dd86b10a69d413982602aa90a62b8d516148a78716f550dcd3aff863ac1c2a7a5e6 + languageName: node + linkType: hard + +"validate.io-number@npm:^1.0.3": + version: 1.0.3 + resolution: "validate.io-number@npm:1.0.3" + checksum: 42418aeb6c969efa745475154fe576809b02eccd0961aad0421b090d6e7a12d23a3e28b0d5dddd2c6347c1a6bdccb82bba5048c716131cd20207244d50e07282 + languageName: node + linkType: hard + +"value-or-promise@npm:1.0.11": + version: 1.0.11 + resolution: "value-or-promise@npm:1.0.11" + checksum: 13f8f2ef620118c73b4d1beee8ce6045d7182bbf15090ecfbcafb677ec43698506a5e9ace6bea5ea35c32bc612c9b1f824bb59b6581cdfb5c919052745c277d5 + languageName: node + linkType: hard + +"value-or-promise@npm:^1.0.11, value-or-promise@npm:^1.0.12": + version: 1.0.12 + resolution: "value-or-promise@npm:1.0.12" + checksum: f53a66c75b7447c90bbaf946a757ca09c094629cb80ba742f59c980ec3a69be0a385a0e75505dedb4e757862f1a994ca4beaf083a831f24d3ffb3d4bb18cd1e1 + languageName: node + linkType: hard + +"vary@npm:^1, vary@npm:^1.1.2, vary@npm:~1.1.2": + version: 1.1.2 + resolution: "vary@npm:1.1.2" + checksum: ae0123222c6df65b437669d63dfa8c36cee20a504101b2fcd97b8bf76f91259c17f9f2b4d70a1e3c6bbcee7f51b28392833adb6b2770b23b01abec84e369660b + languageName: node + linkType: hard + +"verror@npm:1.10.0": + version: 1.10.0 + resolution: "verror@npm:1.10.0" + dependencies: + assert-plus: ^1.0.0 + core-util-is: 1.0.2 + extsprintf: ^1.2.0 + checksum: c431df0bedf2088b227a4e051e0ff4ca54df2c114096b0c01e1cbaadb021c30a04d7dd5b41ab277bcd51246ca135bf931d4c4c796ecae7a4fef6d744ecef36ea + languageName: node + linkType: hard + +"vfile-message@npm:^3.0.0": + version: 3.1.4 + resolution: "vfile-message@npm:3.1.4" + dependencies: + "@types/unist": ^2.0.0 + unist-util-stringify-position: ^3.0.0 + checksum: d0ee7da1973ad76513c274e7912adbed4d08d180eaa34e6bd40bc82459f4b7bc50fcaff41556135e3339995575eac5f6f709aba9332b80f775618ea4880a1367 + languageName: node + linkType: hard + +"vfile@npm:^5.0.0": + version: 5.3.7 + resolution: "vfile@npm:5.3.7" + dependencies: + "@types/unist": ^2.0.0 + is-buffer: ^2.0.0 + unist-util-stringify-position: ^3.0.0 + vfile-message: ^3.0.0 + checksum: 642cce703afc186dbe7cabf698dc954c70146e853491086f5da39e1ce850676fc96b169fcf7898aa3ff245e9313aeec40da93acd1e1fcc0c146dc4f6308b4ef9 + languageName: node + linkType: hard + +"victory-area@npm:^37.1.1": + version: 37.3.5 + resolution: "victory-area@npm:37.3.5" + dependencies: + lodash: ^4.17.19 + victory-core: 37.3.5 + victory-vendor: 37.3.5 + peerDependencies: + react: ">=16.6.0" + checksum: c6769023a4d657d8cf03e7eaddf7edc5ddb70269e74c8a13f6bd247a42eb4677b205c5094ddd14dfd33694d401744efa8998ded38ce930e25d1d44f4d34f0957 + languageName: node + linkType: hard + +"victory-axis@npm:37.3.5, victory-axis@npm:^37.1.1": + version: 37.3.5 + resolution: "victory-axis@npm:37.3.5" + dependencies: + lodash: ^4.17.19 + victory-core: 37.3.5 + peerDependencies: + react: ">=16.6.0" + checksum: 2011097a9241ce43dce8cfdf1018977b4a958093a661edcf88849215336b792a9ccf9bb9851605a20f2752c87c5b5fb82cb9c86dcdf5943450faa73a7f5f9052 + languageName: node + linkType: hard + +"victory-bar@npm:^37.1.1": + version: 37.3.5 + resolution: "victory-bar@npm:37.3.5" + dependencies: + lodash: ^4.17.19 + victory-core: 37.3.5 + victory-vendor: 37.3.5 + peerDependencies: + react: ">=16.6.0" + checksum: be1c95b8c1320eac20bff9504f579e2eb5e7f1fed7d8363246194535b8dc7e0316a2b62cdeac4bb43898adc93345a28ee946014ef7015206b4f85543ef2ee365 + languageName: node + linkType: hard + +"victory-box-plot@npm:^36.9.1": + version: 36.9.2 + resolution: "victory-box-plot@npm:36.9.2" + dependencies: + lodash: ^4.17.19 + victory-core: ^36.9.2 + victory-vendor: ^36.9.2 + peerDependencies: + react: ">=16.6.0" + checksum: f0e6d7a99d9d4209ad6f9340b0082d761857c9792e3d93e964682b5f516da7e2a5ef1399df8fdee0fe5e1f16ee4a79db1c0f4da5dbf9210c73a3373f3cd34d17 + languageName: node + linkType: hard + +"victory-box-plot@npm:^37.1.1": + version: 37.3.5 + resolution: "victory-box-plot@npm:37.3.5" + dependencies: + lodash: ^4.17.19 + victory-core: 37.3.5 + victory-vendor: 37.3.5 + peerDependencies: + react: ">=16.6.0" + checksum: 93c8bf2fd523be7f1c30d67fe7574ead43f2e63f914094f27ebd61bebf219dbd2e0f8f4e8382d6eee2aec4bb0261463e8801384145e86c5fdadc2c37fb22c280 + languageName: node + linkType: hard + +"victory-brush-container@npm:37.3.5": + version: 37.3.5 + resolution: "victory-brush-container@npm:37.3.5" + dependencies: + lodash: ^4.17.19 + react-fast-compare: ^3.2.0 + victory-core: 37.3.5 + peerDependencies: + react: ">=16.6.0" + checksum: 73f989ecd527440c5409282256b8ed2f7425baf17727e3d98286915fc424106cf62320167d3d11c03bba80154a6611235eb1a9ece3b568c92897b1378be158f5 + languageName: node + linkType: hard + +"victory-chart@npm:^37.1.1": + version: 37.3.5 + resolution: "victory-chart@npm:37.3.5" + dependencies: + lodash: ^4.17.19 + react-fast-compare: ^3.2.0 + victory-axis: 37.3.5 + victory-core: 37.3.5 + victory-polar-axis: 37.3.5 + victory-shared-events: 37.3.5 + peerDependencies: + react: ">=16.6.0" + checksum: 44d42fafac9a108b0641817e937834d88085ebc4857236ff4c92bd02d858c4243e1e6525a34ec41718d993583bb869182ef3153278a20e71d9986691b7674b54 + languageName: node + linkType: hard + +"victory-core@npm:37.3.5, victory-core@npm:^37.1.1": + version: 37.3.5 + resolution: "victory-core@npm:37.3.5" + dependencies: + lodash: ^4.17.21 + react-fast-compare: ^3.2.0 + victory-vendor: 37.3.5 + peerDependencies: + react: ">=16.6.0" + checksum: cb021419e6cfee495868b7a2e419235b6858f2d17b0a1ab2a7b79429e759e836985a04a9ca8446aa928e76d51f185cedd4eae82204168e4b3420084a429f1533 + languageName: node + linkType: hard + +"victory-core@npm:^36.9.1, victory-core@npm:^36.9.2": + version: 36.9.2 + resolution: "victory-core@npm:36.9.2" + dependencies: + lodash: ^4.17.21 + react-fast-compare: ^3.2.0 + victory-vendor: ^36.9.2 + peerDependencies: + react: ">=16.6.0" + checksum: da17211f4b40a38b6dcb5fe7a32221bfaa870f2813f3cc95fcd7eb60bb357d4246ac69127fd7c90d40e1efaab05dffaed656fa1c14e0b7a444da8a2a3d401d4e + languageName: node + linkType: hard + +"victory-create-container@npm:^37.1.1": + version: 37.3.5 + resolution: "victory-create-container@npm:37.3.5" + dependencies: + lodash: ^4.17.19 + victory-brush-container: 37.3.5 + victory-core: 37.3.5 + victory-cursor-container: 37.3.5 + victory-selection-container: 37.3.5 + victory-voronoi-container: 37.3.5 + victory-zoom-container: 37.3.5 + peerDependencies: + react: ">=16.6.0" + checksum: f7b946245f0cc2cb7017521902a892d603006e00ca73190c7a1ccd335c3367db9c4af4bd3c28e3b03a345800b39a5dc8ef00efc7032f92827df09aa0b6d962e6 + languageName: node + linkType: hard + +"victory-cursor-container@npm:37.3.5, victory-cursor-container@npm:^37.1.1": + version: 37.3.5 + resolution: "victory-cursor-container@npm:37.3.5" + dependencies: + lodash: ^4.17.19 + victory-core: 37.3.5 + peerDependencies: + react: ">=16.6.0" + checksum: f5b2224e9a920909287f79ac7978f44bd6eabb3394afc79116cd7e452368575e1e7e6907ce7f0a5626aa826b5bdebe4c7684402eab69fb9b93b1da42f76e1ce2 + languageName: node + linkType: hard + +"victory-group@npm:^37.1.1": + version: 37.3.5 + resolution: "victory-group@npm:37.3.5" + dependencies: + lodash: ^4.17.19 + react-fast-compare: ^3.2.0 + victory-core: 37.3.5 + victory-shared-events: 37.3.5 + peerDependencies: + react: ">=16.6.0" + checksum: 0b661a9d4fa8dfd4674f9461883eedc4b4755659803e5d249b63df13a5c9ac1f75e00a23d4d8f80a1c34f30ac467aa8a0b509bfb978d9211814ca7fc0c53e304 + languageName: node + linkType: hard + +"victory-legend@npm:^37.1.1": + version: 37.3.5 + resolution: "victory-legend@npm:37.3.5" + dependencies: + lodash: ^4.17.19 + victory-core: 37.3.5 + peerDependencies: + react: ">=16.6.0" + checksum: 53a06bfef56066a0cfffcca54233f40befaebd6cfa96e014e09d6691bb59789225fb19652f43ec4de25acc62cbde8e89d34aa7c7196e838d459134542cb1aa4e + languageName: node + linkType: hard + +"victory-line@npm:^37.1.1": + version: 37.3.5 + resolution: "victory-line@npm:37.3.5" + dependencies: + lodash: ^4.17.19 + victory-core: 37.3.5 + victory-vendor: 37.3.5 + peerDependencies: + react: ">=16.6.0" + checksum: d602a12e759ee59d542acc82de25c5910833cf03836d12d9ef8ab026a954baddc2df60d331cfbf6b44eb1617da543f6d2f11a8cce43038d94eeb2a8db16d022c + languageName: node + linkType: hard + +"victory-pie@npm:^37.1.1": + version: 37.3.5 + resolution: "victory-pie@npm:37.3.5" + dependencies: + lodash: ^4.17.19 + victory-core: 37.3.5 + victory-vendor: 37.3.5 + peerDependencies: + react: ">=16.6.0" + checksum: ce4054abf483c654298271e693202945402b9e38dc1fb98827701277a1b14cde5c5f77fc04b497de4603dc133665bf104679e47734d24ce2bf2d45eb84ca4922 + languageName: node + linkType: hard + +"victory-polar-axis@npm:37.3.5": + version: 37.3.5 + resolution: "victory-polar-axis@npm:37.3.5" + dependencies: + lodash: ^4.17.19 + victory-core: 37.3.5 + peerDependencies: + react: ">=16.6.0" + checksum: 506f8f1be5762afe16bb0e5fbb329b511e5b676524ffba3a82ecd39e1532864f280e6ebf723824a856fd1c86e633cba5deecf2a6dcf9d20203aca52940f9b303 + languageName: node + linkType: hard + +"victory-scatter@npm:^37.1.1": + version: 37.3.5 + resolution: "victory-scatter@npm:37.3.5" + dependencies: + lodash: ^4.17.19 + victory-core: 37.3.5 + peerDependencies: + react: ">=16.6.0" + checksum: 3f0908b34646e31232e6d728633b5f0e652830c7f2f3eec7f91354575677ce236e31a317a59bf80f5f80cf8cc2adb3b20595f4a3280d3fd976a18f2d79fb8c55 + languageName: node + linkType: hard + +"victory-selection-container@npm:37.3.5": + version: 37.3.5 + resolution: "victory-selection-container@npm:37.3.5" + dependencies: + lodash: ^4.17.19 + victory-core: 37.3.5 + peerDependencies: + react: ">=16.6.0" + checksum: d98f220a74e6c3ff417a0c991eede28d78acca4cf97f86dcce2c9a966b5d084cdd2cd5a67c4dbb5da23d064ee808f3adb8b206401c3012a41f63973b237293b0 + languageName: node + linkType: hard + +"victory-shared-events@npm:37.3.5": + version: 37.3.5 + resolution: "victory-shared-events@npm:37.3.5" + dependencies: + json-stringify-safe: ^5.0.1 + lodash: ^4.17.19 + react-fast-compare: ^3.2.0 + victory-core: 37.3.5 + peerDependencies: + react: ">=16.6.0" + checksum: 01a61c1a94c979a22d52c90fd834d24728bb23664ac30ee161d62ce34f41f782d90956c5f345d4b3b7e598d903584eb026a244ea19d6208c99956bcd06be8e0f + languageName: node + linkType: hard + +"victory-stack@npm:^37.1.1": + version: 37.3.5 + resolution: "victory-stack@npm:37.3.5" + dependencies: + lodash: ^4.17.19 + react-fast-compare: ^3.2.0 + victory-core: 37.3.5 + victory-shared-events: 37.3.5 + peerDependencies: + react: ">=16.6.0" + checksum: 3eedf72b2c35fdd9ade500075230478a641041f677ec384d8e3fcaafebd4b2bc12bd8c49d10c8c0b94916d8ece1217bbe3808ec38af08679bc486724390127e8 + languageName: node + linkType: hard + +"victory-tooltip@npm:37.3.5, victory-tooltip@npm:^37.1.1": + version: 37.3.5 + resolution: "victory-tooltip@npm:37.3.5" + dependencies: + lodash: ^4.17.19 + victory-core: 37.3.5 + peerDependencies: + react: ">=16.6.0" + checksum: 76b78b8673972d146dd6ca4b7e2b7612bb505c598d478126bcbd172bb8cceb54809cafdb02598d5ef242b7fc1735fb07dff1159a340501402b57a16f790b22d9 + languageName: node + linkType: hard + +"victory-tooltip@npm:^36.9.2": + version: 36.9.2 + resolution: "victory-tooltip@npm:36.9.2" + dependencies: + lodash: ^4.17.19 + victory-core: ^36.9.2 + peerDependencies: + react: ">=16.6.0" + checksum: 43499f0dad993755b96baafd09bf7578b88cf598d09cc8d926cba1debcd4ba8645e0bb2d0692d6b97275830261b7749d2189deb2873495929db2103b0c23e2a6 + languageName: node + linkType: hard + +"victory-vendor@npm:37.3.5": + version: 37.3.5 + resolution: "victory-vendor@npm:37.3.5" dependencies: - validate.io-array: ^1.0.3 - validate.io-integer: ^1.0.4 - checksum: 5f6d7fab8df7d2bf546a05e830201768464605539c75a2c2417b632b4411a00df84b462f81eac75e1be95303e7e0ac92f244c137424739f4e15cd21c2eb52c7f + "@types/d3-array": ^3.0.3 + "@types/d3-ease": ^3.0.0 + "@types/d3-interpolate": ^3.0.1 + "@types/d3-scale": ^4.0.2 + "@types/d3-shape": ^3.1.0 + "@types/d3-time": ^3.0.0 + "@types/d3-timer": ^3.0.0 + d3-array: ^3.1.6 + d3-ease: ^3.0.1 + d3-interpolate: ^3.0.1 + d3-scale: ^4.0.2 + d3-shape: ^3.1.0 + d3-time: ^3.0.0 + d3-timer: ^3.0.1 + checksum: 6dfd0dc0e8c1eaade896b472c7e8d9977ca751be88fb478f2a6eec34dd5d6412be4410399550f4096de47c36af968910f8d67892d0c1a5242b057d5b5ca3a5dc languageName: node linkType: hard -"validate.io-integer@npm:^1.0.4": - version: 1.0.5 - resolution: "validate.io-integer@npm:1.0.5" +"victory-vendor@npm:^36.9.2": + version: 36.9.2 + resolution: "victory-vendor@npm:36.9.2" dependencies: - validate.io-number: ^1.0.3 - checksum: 88b3f8bb5a5277a95305d64abbfc437079220ce4f57a148cc6113e7ccec03dd86b10a69d413982602aa90a62b8d516148a78716f550dcd3aff863ac1c2a7a5e6 + "@types/d3-array": ^3.0.3 + "@types/d3-ease": ^3.0.0 + "@types/d3-interpolate": ^3.0.1 + "@types/d3-scale": ^4.0.2 + "@types/d3-shape": ^3.1.0 + "@types/d3-time": ^3.0.0 + "@types/d3-timer": ^3.0.0 + d3-array: ^3.1.6 + d3-ease: ^3.0.1 + d3-interpolate: ^3.0.1 + d3-scale: ^4.0.2 + d3-shape: ^3.1.0 + d3-time: ^3.0.0 + d3-timer: ^3.0.1 + checksum: a755110e287b700202d08ac81982093ab100edaa9d61beef1476d59e9705605bd8299a3aa41fa04b933a12bd66737f4c8f7d18448dd6488c69d4f72480023a2e languageName: node linkType: hard -"validate.io-number@npm:^1.0.3": - version: 1.0.3 - resolution: "validate.io-number@npm:1.0.3" - checksum: 42418aeb6c969efa745475154fe576809b02eccd0961aad0421b090d6e7a12d23a3e28b0d5dddd2c6347c1a6bdccb82bba5048c716131cd20207244d50e07282 +"victory-voronoi-container@npm:37.3.5, victory-voronoi-container@npm:^37.1.1": + version: 37.3.5 + resolution: "victory-voronoi-container@npm:37.3.5" + dependencies: + delaunay-find: 0.0.6 + lodash: ^4.17.19 + react-fast-compare: ^3.2.0 + victory-core: 37.3.5 + victory-tooltip: 37.3.5 + peerDependencies: + react: ">=16.6.0" + checksum: e02199145961851c4377296413e0b780ec617c7c1139a7fbe2cce90299487c50e756011a7c4f1347f3fecc7a5df915d5430eff00bc555526dae806dbe4c820cd languageName: node linkType: hard -"vary@npm:^1, vary@npm:^1.1.2, vary@npm:~1.1.2": - version: 1.1.2 - resolution: "vary@npm:1.1.2" - checksum: ae0123222c6df65b437669d63dfa8c36cee20a504101b2fcd97b8bf76f91259c17f9f2b4d70a1e3c6bbcee7f51b28392833adb6b2770b23b01abec84e369660b +"victory-voronoi-container@npm:^36.9.1": + version: 36.9.2 + resolution: "victory-voronoi-container@npm:36.9.2" + dependencies: + delaunay-find: 0.0.6 + lodash: ^4.17.19 + react-fast-compare: ^3.2.0 + victory-core: ^36.9.2 + victory-tooltip: ^36.9.2 + peerDependencies: + react: ">=16.6.0" + checksum: c59ba256f1479d69749c93b0c7aa25f1f99a705e40a5cc0cee474fb1f150012ddae8fb8e75bc79c14254efb5581fb946d24041b4af965d294a84106f843625f5 languageName: node linkType: hard -"verror@npm:1.10.0": - version: 1.10.0 - resolution: "verror@npm:1.10.0" +"victory-zoom-container@npm:37.3.5, victory-zoom-container@npm:^37.1.1": + version: 37.3.5 + resolution: "victory-zoom-container@npm:37.3.5" dependencies: - assert-plus: ^1.0.0 - core-util-is: 1.0.2 - extsprintf: ^1.2.0 - checksum: c431df0bedf2088b227a4e051e0ff4ca54df2c114096b0c01e1cbaadb021c30a04d7dd5b41ab277bcd51246ca135bf931d4c4c796ecae7a4fef6d744ecef36ea + lodash: ^4.17.19 + victory-core: 37.3.5 + peerDependencies: + react: ">=16.6.0" + checksum: 9ab47aa2934c3e062c5259f1456d7071c05337db9c54b3d35e25d8ae78a82e28878a7ae73f1071aff5ff3e0b0d733825293fe9e2dfdd99dfa96e7f25fb59c6e8 languageName: node linkType: hard @@ -23300,6 +35820,38 @@ __metadata: languageName: node linkType: hard +"vscode-languageserver-types@npm:^3.17.1": + version: 3.17.5 + resolution: "vscode-languageserver-types@npm:3.17.5" + checksum: 79b420e7576398d396579ca3a461c9ed70e78db4403cd28bbdf4d3ed2b66a2b4114031172e51fad49f0baa60a2180132d7cb2ea35aa3157d7af3c325528210ac + languageName: node + linkType: hard + +"w3c-hr-time@npm:^1.0.2": + version: 1.0.2 + resolution: "w3c-hr-time@npm:1.0.2" + dependencies: + browser-process-hrtime: ^1.0.0 + checksum: ec3c2dacbf8050d917bbf89537a101a08c2e333b4c19155f7d3bedde43529d4339db6b3d049d9610789cb915f9515f8be037e0c54c079e9d4735c50b37ed52b9 + languageName: node + linkType: hard + +"w3c-keyname@npm:^2.2.4": + version: 2.2.8 + resolution: "w3c-keyname@npm:2.2.8" + checksum: 95bafa4c04fa2f685a86ca1000069c1ec43ace1f8776c10f226a73296caeddd83f893db885c2c220ebeb6c52d424e3b54d7c0c1e963bbf204038ff1a944fbb07 + languageName: node + linkType: hard + +"w3c-xmlserializer@npm:^2.0.0": + version: 2.0.0 + resolution: "w3c-xmlserializer@npm:2.0.0" + dependencies: + xml-name-validator: ^3.0.0 + checksum: ae25c51cf71f1fb2516df1ab33a481f83461a117565b95e3d0927432522323f93b1b2846cbb60196d337970c421adb604fc2d0d180c6a47a839da01db5b9973b + languageName: node + linkType: hard + "w3c-xmlserializer@npm:^4.0.0": version: 4.0.0 resolution: "w3c-xmlserializer@npm:4.0.0" @@ -23309,6 +35861,21 @@ __metadata: languageName: node linkType: hard +"wait-on@npm:8.0.1": + version: 8.0.1 + resolution: "wait-on@npm:8.0.1" + dependencies: + axios: ^1.7.7 + joi: ^17.13.3 + lodash: ^4.17.21 + minimist: ^1.2.8 + rxjs: ^7.8.1 + bin: + wait-on: bin/wait-on + checksum: 20e670a7c7ef8959a859c27d269297e11a6be0324f4f0d0b494dfc2d43582f66a70f5a6ead158ed47a840632706ff2b9c939284bea7856bf283e9de9e33d84f3 + languageName: node + linkType: hard + "walker@npm:^1.0.8": version: 1.0.8 resolution: "walker@npm:1.0.8" @@ -23359,6 +35926,32 @@ __metadata: languageName: node linkType: hard +"web-streams-polyfill@npm:^3.0.3": + version: 3.3.3 + resolution: "web-streams-polyfill@npm:3.3.3" + checksum: 21ab5ea08a730a2ef8023736afe16713b4f2023ec1c7085c16c8e293ee17ed085dff63a0ad8722da30c99c4ccbd4ccd1b2e79c861829f7ef2963d7de7004c2cb + languageName: node + linkType: hard + +"web-tree-sitter@npm:=0.24.5": + version: 0.24.5 + resolution: "web-tree-sitter@npm:0.24.5" + checksum: 4b380571801557a6cfb5e599b9be2da49439e5c30a1c3e3a204d9408afcbe476f25ce54e956959ce8753e1a9fff74634af2cf9b9365acc7b0ff97d73ecae0010 + languageName: node + linkType: hard + +"webcola@npm:3.4.0": + version: 3.4.0 + resolution: "webcola@npm:3.4.0" + dependencies: + d3-dispatch: ^1.0.3 + d3-drag: ^1.0.4 + d3-shape: ^1.3.5 + d3-timer: ^1.0.5 + checksum: 046f7cc06ef077b42e2cdecba9b9407452008444629a95d1c921283b9dae7c874ef8b5d66d4e21d56f427662598ae12d11992fbe10ec29d8ec0bcc68f6c40b75 + languageName: node + linkType: hard + "webidl-conversions@npm:^3.0.0": version: 3.0.1 resolution: "webidl-conversions@npm:3.0.1" @@ -23366,6 +35959,20 @@ __metadata: languageName: node linkType: hard +"webidl-conversions@npm:^5.0.0": + version: 5.0.0 + resolution: "webidl-conversions@npm:5.0.0" + checksum: ccf1ec2ca7c0b5671e5440ace4a66806ae09c49016ab821481bec0c05b1b82695082dc0a27d1fe9d804d475a408ba0c691e6803fd21be608e710955d4589cd69 + languageName: node + linkType: hard + +"webidl-conversions@npm:^6.1.0": + version: 6.1.0 + resolution: "webidl-conversions@npm:6.1.0" + checksum: 1f526507aa491f972a0c1409d07f8444e1d28778dfa269a9971f2e157182f3d496dc33296e4ed45b157fdb3bf535bb90c90bf10c50dcf1dd6caacb2a34cc84fb + languageName: node + linkType: hard + "webidl-conversions@npm:^7.0.0": version: 7.0.0 resolution: "webidl-conversions@npm:7.0.0" @@ -23373,21 +35980,6 @@ __metadata: languageName: node linkType: hard -"webpack-dev-middleware@npm:^5.3.4": - version: 5.3.4 - resolution: "webpack-dev-middleware@npm:5.3.4" - dependencies: - colorette: ^2.0.10 - memfs: ^3.4.3 - mime-types: ^2.1.31 - range-parser: ^1.2.1 - schema-utils: ^4.0.0 - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - checksum: 90cf3e27d0714c1a745454a1794f491b7076434939340605b9ee8718ba2b85385b120939754e9fdbd6569811e749dee53eec319e0d600e70e0b0baffd8e3fb13 - languageName: node - linkType: hard - "webpack-dev-middleware@npm:^7.4.2": version: 7.4.2 resolution: "webpack-dev-middleware@npm:7.4.2" @@ -23407,56 +35999,9 @@ __metadata: languageName: node linkType: hard -"webpack-dev-server@npm:^4.15.1": - version: 4.15.2 - resolution: "webpack-dev-server@npm:4.15.2" - dependencies: - "@types/bonjour": ^3.5.9 - "@types/connect-history-api-fallback": ^1.3.5 - "@types/express": ^4.17.13 - "@types/serve-index": ^1.9.1 - "@types/serve-static": ^1.13.10 - "@types/sockjs": ^0.3.33 - "@types/ws": ^8.5.5 - ansi-html-community: ^0.0.8 - bonjour-service: ^1.0.11 - chokidar: ^3.5.3 - colorette: ^2.0.10 - compression: ^1.7.4 - connect-history-api-fallback: ^2.0.0 - default-gateway: ^6.0.3 - express: ^4.17.3 - graceful-fs: ^4.2.6 - html-entities: ^2.3.2 - http-proxy-middleware: ^2.0.3 - ipaddr.js: ^2.0.1 - launch-editor: ^2.6.0 - open: ^8.0.9 - p-retry: ^4.5.0 - rimraf: ^3.0.2 - schema-utils: ^4.0.0 - selfsigned: ^2.1.1 - serve-index: ^1.9.1 - sockjs: ^0.3.24 - spdy: ^4.0.2 - webpack-dev-middleware: ^5.3.4 - ws: ^8.13.0 - peerDependencies: - webpack: ^4.37.0 || ^5.0.0 - peerDependenciesMeta: - webpack: - optional: true - webpack-cli: - optional: true - bin: - webpack-dev-server: bin/webpack-dev-server.js - checksum: 123507129cb4d55fdc5fabdd177574f31133605748372bb11353307b7a583ef25c6fd27b6addf56bf070ba44c88d5da861771c2ec55f52405082ec9efd01f039 - languageName: node - linkType: hard - "webpack-dev-server@npm:^5.0.0": - version: 5.1.0 - resolution: "webpack-dev-server@npm:5.1.0" + version: 5.2.0 + resolution: "webpack-dev-server@npm:5.2.0" dependencies: "@types/bonjour": ^3.5.13 "@types/connect-history-api-fallback": ^1.5.4 @@ -23471,10 +36016,9 @@ __metadata: colorette: ^2.0.10 compression: ^1.7.4 connect-history-api-fallback: ^2.0.0 - express: ^4.19.2 + express: ^4.21.2 graceful-fs: ^4.2.6 - html-entities: ^2.4.0 - http-proxy-middleware: ^2.0.3 + http-proxy-middleware: ^2.0.7 ipaddr.js: ^2.1.0 launch-editor: ^2.6.1 open: ^10.0.3 @@ -23495,7 +36039,7 @@ __metadata: optional: true bin: webpack-dev-server: bin/webpack-dev-server.js - checksum: 3128fffeb76b97cc4c506607f81bb644437f6961cf310915e22ecaf79a45c185893d7fc8e1844183fb44827061ec2f3d321e937840f02d4989959a09551a8e35 + checksum: 87b7acc194cfa3e5c95cd797bf1f0c2ffc8718bbc02e8f47777b9a861a6b7691f27c5138162ba2a9ac2c337d122e14f220342789c290027a3f9db44b4af104c9 languageName: node linkType: hard @@ -23523,17 +36067,17 @@ __metadata: languageName: node linkType: hard -"webpack@npm:^5.70.0, webpack@npm:^5.89.0": - version: 5.95.0 - resolution: "webpack@npm:5.95.0" +"webpack@npm:^5.70.0, webpack@npm:^5.94.0": + version: 5.97.1 + resolution: "webpack@npm:5.97.1" dependencies: - "@types/estree": ^1.0.5 - "@webassemblyjs/ast": ^1.12.1 - "@webassemblyjs/wasm-edit": ^1.12.1 - "@webassemblyjs/wasm-parser": ^1.12.1 - acorn: ^8.7.1 - acorn-import-attributes: ^1.9.5 - browserslist: ^4.21.10 + "@types/eslint-scope": ^3.7.7 + "@types/estree": ^1.0.6 + "@webassemblyjs/ast": ^1.14.1 + "@webassemblyjs/wasm-edit": ^1.14.1 + "@webassemblyjs/wasm-parser": ^1.14.1 + acorn: ^8.14.0 + browserslist: ^4.24.0 chrome-trace-event: ^1.0.2 enhanced-resolve: ^5.17.1 es-module-lexer: ^1.2.1 @@ -23555,7 +36099,7 @@ __metadata: optional: true bin: webpack: bin/webpack.js - checksum: 0c3dfe288de4d62f8f3dc25478a618894883cab739121330763b7847e43304630ea2815ae2351a5f8ff6ab7c9642caf530d503d89bda261fe2cd220e524dd5d1 + checksum: 649065e2258b495ae41a4088be804b4be2ec07d280aa514ebef43da79caf96fa973d26a08826c3902b5676a098d9b37c589f16be7b4da17b68b08b6c76441196 languageName: node linkType: hard @@ -23577,6 +36121,15 @@ __metadata: languageName: node linkType: hard +"whatwg-encoding@npm:^1.0.5": + version: 1.0.5 + resolution: "whatwg-encoding@npm:1.0.5" + dependencies: + iconv-lite: 0.4.24 + checksum: 5be4efe111dce29ddee3448d3915477fcc3b28f991d9cf1300b4e50d6d189010d47bca2f51140a844cf9b726e8f066f4aee72a04d687bfe4f2ee2767b2f5b1e6 + languageName: node + linkType: hard + "whatwg-encoding@npm:^2.0.0": version: 2.0.0 resolution: "whatwg-encoding@npm:2.0.0" @@ -23586,6 +36139,13 @@ __metadata: languageName: node linkType: hard +"whatwg-mimetype@npm:^2.3.0": + version: 2.3.0 + resolution: "whatwg-mimetype@npm:2.3.0" + checksum: 23eb885940bcbcca4ff841c40a78e9cbb893ec42743993a42bf7aed16085b048b44b06f3402018931687153550f9a32d259dfa524e4f03577ab898b6965e5383 + languageName: node + linkType: hard + "whatwg-mimetype@npm:^3.0.0": version: 3.0.0 resolution: "whatwg-mimetype@npm:3.0.0" @@ -23613,40 +36173,52 @@ __metadata: languageName: node linkType: hard -"which-boxed-primitive@npm:^1.0.2": - version: 1.0.2 - resolution: "which-boxed-primitive@npm:1.0.2" +"whatwg-url@npm:^8.0.0, whatwg-url@npm:^8.5.0": + version: 8.7.0 + resolution: "whatwg-url@npm:8.7.0" dependencies: - is-bigint: ^1.0.1 - is-boolean-object: ^1.1.0 - is-number-object: ^1.0.4 - is-string: ^1.0.5 - is-symbol: ^1.0.3 - checksum: 53ce774c7379071729533922adcca47220228405e1895f26673bbd71bdf7fb09bee38c1d6399395927c6289476b5ae0629863427fd151491b71c4b6cb04f3a5e + lodash: ^4.7.0 + tr46: ^2.1.0 + webidl-conversions: ^6.1.0 + checksum: a87abcc6cefcece5311eb642858c8fdb234e51ec74196bfacf8def2edae1bfbffdf6acb251646ed6301f8cee44262642d8769c707256125a91387e33f405dd1e languageName: node linkType: hard -"which-builtin-type@npm:^1.1.3": - version: 1.1.4 - resolution: "which-builtin-type@npm:1.1.4" +"which-boxed-primitive@npm:^1.0.2, which-boxed-primitive@npm:^1.1.0, which-boxed-primitive@npm:^1.1.1": + version: 1.1.1 + resolution: "which-boxed-primitive@npm:1.1.1" + dependencies: + is-bigint: ^1.1.0 + is-boolean-object: ^1.2.1 + is-number-object: ^1.1.1 + is-string: ^1.1.1 + is-symbol: ^1.1.1 + checksum: ee41d0260e4fd39551ad77700c7047d3d281ec03d356f5e5c8393fe160ba0db53ef446ff547d05f76ffabfd8ad9df7c9a827e12d4cccdbc8fccf9239ff8ac21e + languageName: node + linkType: hard + +"which-builtin-type@npm:^1.2.1": + version: 1.2.1 + resolution: "which-builtin-type@npm:1.2.1" dependencies: + call-bound: ^1.0.2 function.prototype.name: ^1.1.6 has-tostringtag: ^1.0.2 is-async-function: ^2.0.0 - is-date-object: ^1.0.5 - is-finalizationregistry: ^1.0.2 + is-date-object: ^1.1.0 + is-finalizationregistry: ^1.1.0 is-generator-function: ^1.0.10 - is-regex: ^1.1.4 + is-regex: ^1.2.1 is-weakref: ^1.0.2 isarray: ^2.0.5 - which-boxed-primitive: ^1.0.2 + which-boxed-primitive: ^1.1.0 which-collection: ^1.0.2 - which-typed-array: ^1.1.15 - checksum: 1f413025250072534de2a2ee25139a24d477512b532b05c85fb9aa05aef04c6e1ca8e2668acf971b777e602721dbdec4b9d6a4f37c6b9ff8f026ad030352707f + which-typed-array: ^1.1.16 + checksum: 7a3617ba0e7cafb795f74db418df889867d12bce39a477f3ee29c6092aa64d396955bf2a64eae3726d8578440e26777695544057b373c45a8bcf5fbe920bf633 languageName: node linkType: hard -"which-collection@npm:^1.0.2": +"which-collection@npm:^1.0.1, which-collection@npm:^1.0.2": version: 1.0.2 resolution: "which-collection@npm:1.0.2" dependencies: @@ -23658,20 +36230,21 @@ __metadata: languageName: node linkType: hard -"which-typed-array@npm:^1.1.14, which-typed-array@npm:^1.1.15, which-typed-array@npm:^1.1.2": - version: 1.1.15 - resolution: "which-typed-array@npm:1.1.15" +"which-typed-array@npm:^1.1.13, which-typed-array@npm:^1.1.16, which-typed-array@npm:^1.1.2": + version: 1.1.18 + resolution: "which-typed-array@npm:1.1.18" dependencies: available-typed-arrays: ^1.0.7 - call-bind: ^1.0.7 + call-bind: ^1.0.8 + call-bound: ^1.0.3 for-each: ^0.3.3 - gopd: ^1.0.1 + gopd: ^1.2.0 has-tostringtag: ^1.0.2 - checksum: 65227dcbfadf5677aacc43ec84356d17b5500cb8b8753059bb4397de5cd0c2de681d24e1a7bd575633f976a95f88233abfd6549c2105ef4ebd58af8aa1807c75 + checksum: d2feea7f51af66b3a240397aa41c796585033e1069f18e5b6d4cd3878538a1e7780596fd3ea9bf347c43d9e98e13be09b37d9ea3887cef29b11bc291fd47bb52 languageName: node linkType: hard -"which@npm:^1.2.14, which@npm:^1.2.9, which@npm:^1.3.1": +"which@npm:^1.2.14, which@npm:^1.3.1": version: 1.3.1 resolution: "which@npm:1.3.1" dependencies: @@ -23704,7 +36277,18 @@ __metadata: languageName: node linkType: hard -"wide-align@npm:^1.1.5": +"which@npm:^5.0.0": + version: 5.0.0 + resolution: "which@npm:5.0.0" + dependencies: + isexe: ^3.1.1 + bin: + node-which: bin/which.js + checksum: 6ec99e89ba32c7e748b8a3144e64bfc74aa63e2b2eacbb61a0060ad0b961eb1a632b08fb1de067ed59b002cec3e21de18299216ebf2325ef0f78e0f121e14e90 + languageName: node + linkType: hard + +"wide-align@npm:^1.1.2, wide-align@npm:^1.1.5": version: 1.1.5 resolution: "wide-align@npm:1.1.5" dependencies: @@ -23713,33 +36297,33 @@ __metadata: languageName: node linkType: hard -"winston-transport@npm:^4.5.0, winston-transport@npm:^4.7.0": - version: 4.8.0 - resolution: "winston-transport@npm:4.8.0" +"winston-transport@npm:^4.5.0, winston-transport@npm:^4.7.0, winston-transport@npm:^4.9.0": + version: 4.9.0 + resolution: "winston-transport@npm:4.9.0" dependencies: - logform: ^2.6.1 - readable-stream: ^4.5.2 + logform: ^2.7.0 + readable-stream: ^3.6.2 triple-beam: ^1.3.0 - checksum: f84092188176d49a6f4f75321ba3e50107ac0942a51a6d7e36b80af19dafb22b57258aaa6d8220763044ea23e30bffd597d3280d2a2298e6a491fe424896bac7 + checksum: f5fd06a27def7597229925ba2b8b9ffa61b5b8748f994c8325064744e4e36dfea19868a16c16b3806f9b98bb7da67c25f08ae6fba3bdc6db4a9555673474a972 languageName: node linkType: hard "winston@npm:^3.2.1": - version: 3.15.0 - resolution: "winston@npm:3.15.0" + version: 3.17.0 + resolution: "winston@npm:3.17.0" dependencies: "@colors/colors": ^1.6.0 "@dabh/diagnostics": ^2.0.2 async: ^3.2.3 is-stream: ^2.0.0 - logform: ^2.6.0 + logform: ^2.7.0 one-time: ^1.0.0 readable-stream: ^3.4.0 safe-stable-stringify: ^2.3.1 stack-trace: 0.0.x triple-beam: ^1.3.0 - winston-transport: ^4.7.0 - checksum: 2ae6f3a3359fadd90f69a4db20d78aba6901e18114648e48c8538e925511e4820f8d488f19b1c026096ece614732338aa138f4a0fa2c5e29e8fbc53029f55473 + winston-transport: ^4.9.0 + checksum: ba772c25937007cea6cdeddc931de18a1ea336ae7b3aff2c15de762de5c559b2d310ca2e7a911c209711d325e47d653485e33271ddfb27cd73179e35c7d52267 languageName: node linkType: hard @@ -23807,7 +36391,7 @@ __metadata: languageName: node linkType: hard -"ws@npm:8.18.0, ws@npm:^8.11.0, ws@npm:^8.13.0, ws@npm:^8.18.0": +"ws@npm:*, ws@npm:8.18.0, ws@npm:^8.11.0, ws@npm:^8.17.1, ws@npm:^8.18.0, ws@npm:^8.8.0": version: 8.18.0 resolution: "ws@npm:8.18.0" peerDependencies: @@ -23822,6 +36406,66 @@ __metadata: languageName: node linkType: hard +"ws@npm:^7.4.6": + version: 7.5.10 + resolution: "ws@npm:7.5.10" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: f9bb062abf54cc8f02d94ca86dcd349c3945d63851f5d07a3a61c2fcb755b15a88e943a63cf580cbdb5b74436d67ef6b67f745b8f7c0814e411379138e1863cb + languageName: node + linkType: hard + +"xcase@npm:^2.0.1": + version: 2.0.1 + resolution: "xcase@npm:2.0.1" + checksum: 1d407306593f1049ebb5d3b7b86b0d40b4b108be428cf4d17c57454ef5444c962555c387384c121d83a6bcf7a9b6b04a51cc4b76786bfb0fac8d0a108b5b7ef8 + languageName: node + linkType: hard + +"xml-but-prettier@npm:^1.0.1": + version: 1.0.1 + resolution: "xml-but-prettier@npm:1.0.1" + dependencies: + repeat-string: ^1.5.2 + checksum: 66b400079d8f2b2a149d437d94a1286318fb80a4c181a9597282711b595de15640b0066a72a4a7093afce6369798dc9725d5c2338bde59ba1a33fd7f5e753635 + languageName: node + linkType: hard + +"xml-crypto@npm:^6.0.0": + version: 6.0.0 + resolution: "xml-crypto@npm:6.0.0" + dependencies: + "@xmldom/is-dom-node": ^1.0.1 + "@xmldom/xmldom": ^0.8.10 + xpath: ^0.0.33 + checksum: 1c679ed66e4cea6309602cf8d536973f7832b69bd400310802365af972c9a0261c9a456c64015e0e92b8c93f168f9f13a355bbbd04d1219ca61c2a3f544d1208 + languageName: node + linkType: hard + +"xml-encryption@npm:^3.0.2": + version: 3.0.2 + resolution: "xml-encryption@npm:3.0.2" + dependencies: + "@xmldom/xmldom": ^0.8.5 + escape-html: ^1.0.3 + xpath: 0.0.32 + checksum: aac1b987d5de5becfc747c88c3a656c00799a153ab541078b875a69e1ac1f1c2f29bf85f22eab6a78382dc2919f79401a916cc392aba7994475919e0695893eb + languageName: node + linkType: hard + +"xml-name-validator@npm:^3.0.0": + version: 3.0.0 + resolution: "xml-name-validator@npm:3.0.0" + checksum: b3ac459afed783c285bb98e4960bd1f3ba12754fd4f2320efa0f9181ca28928c53cc75ca660d15d205e81f92304419afe94c531c7cfb3e0649aa6d140d53ecb0 + languageName: node + linkType: hard + "xml-name-validator@npm:^4.0.0": version: 4.0.0 resolution: "xml-name-validator@npm:4.0.0" @@ -23829,6 +36473,37 @@ __metadata: languageName: node linkType: hard +"xml2js@npm:^0.6.2": + version: 0.6.2 + resolution: "xml2js@npm:0.6.2" + dependencies: + sax: ">=0.6.0" + xmlbuilder: ~11.0.0 + checksum: 458a83806193008edff44562c0bdb982801d61ee7867ae58fd35fab781e69e17f40dfeb8fc05391a4648c9c54012066d3955fe5d993ffbe4dc63399023f32ac2 + languageName: node + linkType: hard + +"xml@npm:=1.0.1": + version: 1.0.1 + resolution: "xml@npm:1.0.1" + checksum: 11b5545ef3f8fec3fa29ce251f50ad7b6c97c103ed4d851306ec23366f5fa4699dd6a942262df52313a0cd1840ab26256da253c023bad3309d8ce46fe6020ca0 + languageName: node + linkType: hard + +"xmlbuilder@npm:^15.1.1": + version: 15.1.1 + resolution: "xmlbuilder@npm:15.1.1" + checksum: 14f7302402e28d1f32823583d121594a9dca36408d40320b33f598bd589ca5163a352d076489c9c64d2dc1da19a790926a07bf4191275330d4de2b0d85bb1843 + languageName: node + linkType: hard + +"xmlbuilder@npm:~11.0.0": + version: 11.0.1 + resolution: "xmlbuilder@npm:11.0.1" + checksum: 7152695e16f1a9976658215abab27e55d08b1b97bca901d58b048d2b6e106b5af31efccbdecf9b07af37c8377d8e7e821b494af10b3a68b0ff4ae60331b415b0 + languageName: node + linkType: hard + "xmlchars@npm:^2.2.0": version: 2.2.0 resolution: "xmlchars@npm:2.2.0" @@ -23836,6 +36511,27 @@ __metadata: languageName: node linkType: hard +"xpath@npm:0.0.32": + version: 0.0.32 + resolution: "xpath@npm:0.0.32" + checksum: 887e9747b960ea45fb47a9464744424512de0a49205e82c2ad6be662d7a2f1a75145662a143304340864c6da68fd8d767cce4065cc198ee07a3d4897e0a3d4bb + languageName: node + linkType: hard + +"xpath@npm:^0.0.33": + version: 0.0.33 + resolution: "xpath@npm:0.0.33" + checksum: 075cd553819302b9df0ae11526b666016ee286b72e0600a923c7565d847fcfa7ff195db3065ec86b9a12f1f81bfc82f1a316fc53442a8572c31582e87ccaec4a + languageName: node + linkType: hard + +"xpath@npm:^0.0.34": + version: 0.0.34 + resolution: "xpath@npm:0.0.34" + checksum: c10ae2b7be442460462e80a9ef79ca1c9b529abcf696ec3859cddd5a52b64b7e55a54c2c5352ac9c5d195939e2b3aefe708a7428780d7ec0ae7565257ab2a224 + languageName: node + linkType: hard + "xtend@npm:^4.0.0": version: 4.0.2 resolution: "xtend@npm:4.0.2" @@ -23843,6 +36539,31 @@ __metadata: languageName: node linkType: hard +"xterm-addon-attach@npm:^0.9.0": + version: 0.9.0 + resolution: "xterm-addon-attach@npm:0.9.0" + peerDependencies: + xterm: ^5.0.0 + checksum: 70e5d3ecf139c04fae13c644b79c33858ef1a6e28dfe78f91dad3e34f5a155579029b87e91d1d016575acaf17f74e6c59402bde4bcff03461595bea0870f1ec1 + languageName: node + linkType: hard + +"xterm-addon-fit@npm:^0.8.0": + version: 0.8.0 + resolution: "xterm-addon-fit@npm:0.8.0" + peerDependencies: + xterm: ^5.0.0 + checksum: 5af2041b442f7c804eda2e6f62e3b68b5159b0ae6bd96e2aa8d85b26441df57291cbfed653d1196d4af5d9b94bfc39993df8b409a25c35e0d36bdaf6f5cdfe5f + languageName: node + linkType: hard + +"xterm@npm:^5.2.1, xterm@npm:^5.3.0": + version: 5.3.0 + resolution: "xterm@npm:5.3.0" + checksum: 1bdfdfe4cae4412128376180d85e476b43fb021cdd1114b18acad821c9ea44b5b600e0d88febf2b3572f38fad7741e5161ce0178a44369617cf937222cc6e011 + languageName: node + linkType: hard + "y18n@npm:^5.0.5": version: 5.0.8 resolution: "y18n@npm:5.0.8" @@ -23850,10 +36571,10 @@ __metadata: languageName: node linkType: hard -"yallist@npm:^2.1.2": - version: 2.1.2 - resolution: "yallist@npm:2.1.2" - checksum: 9ba99409209f485b6fcb970330908a6d41fa1c933f75e08250316cce19383179a6b70a7e0721b89672ebb6199cc377bf3e432f55100da6a7d6e11902b0a642cb +"yallist@npm:4.0.0, yallist@npm:^4.0.0": + version: 4.0.0 + resolution: "yallist@npm:4.0.0" + checksum: 343617202af32df2a15a3be36a5a8c0c8545208f3d3dfbc6bb7c3e3b7e8c6f8e7485432e4f3b88da3031a6e20afa7c711eded32ddfb122896ac5d914e75848d5 languageName: node linkType: hard @@ -23864,10 +36585,10 @@ __metadata: languageName: node linkType: hard -"yallist@npm:^4.0.0": - version: 4.0.0 - resolution: "yallist@npm:4.0.0" - checksum: 343617202af32df2a15a3be36a5a8c0c8545208f3d3dfbc6bb7c3e3b7e8c6f8e7485432e4f3b88da3031a6e20afa7c711eded32ddfb122896ac5d914e75848d5 +"yallist@npm:^5.0.0": + version: 5.0.0 + resolution: "yallist@npm:5.0.0" + checksum: eba51182400b9f35b017daa7f419f434424410691bbc5de4f4240cc830fdef906b504424992700dc047f16b4d99100a6f8b8b11175c193f38008e9c96322b6a5 languageName: node linkType: hard @@ -23900,12 +36621,12 @@ __metadata: languageName: node linkType: hard -"yaml@npm:^2.0.0, yaml@npm:^2.0.0-10, yaml@npm:^2.2.2, yaml@npm:^2.5.1": - version: 2.6.1 - resolution: "yaml@npm:2.6.1" +"yaml@npm:^2.0.0, yaml@npm:^2.0.0-10, yaml@npm:^2.2.1, yaml@npm:^2.2.2": + version: 2.7.0 + resolution: "yaml@npm:2.7.0" bin: yaml: bin.mjs - checksum: 5cf2627f121dcf04ccdebce8e6cbac7c9983d465c4eab314f6fbdc13cda8a07f4e8f9c2252a382b30bcabe05ee3c683647293afd52eb37cbcefbdc7b6ebde9ee + checksum: 6e8b2f9b9d1b18b10274d58eb3a47ec223d9a93245a890dcb34d62865f7e744747190a9b9177d5f0ef4ea2e44ad2c0214993deb42e0800766203ac46f00a12dd languageName: node linkType: hard @@ -23954,12 +36675,12 @@ __metadata: linkType: hard "yauzl@npm:^3.0.0": - version: 3.1.3 - resolution: "yauzl@npm:3.1.3" + version: 3.2.0 + resolution: "yauzl@npm:3.2.0" dependencies: buffer-crc32: ~0.2.3 pend: ~1.2.0 - checksum: 5b782f6e99361a9c715e7a82e7aae3d983b6ddff6ebe3a66d2dd3f4ee601ec41c55fa88587bf6de0acbc013aac0b2cac84f9f0cd48372fd5329ee5e273f46f2c + checksum: d16440447bbc4973cf60c455290d6a394c47b82d449193098b10c69a6cc8f3eb003e361a512d1885ca67c96c95351aadb46bfcc47ee2c73a5134743d99275554 languageName: node linkType: hard @@ -24001,18 +36722,29 @@ __metadata: languageName: node linkType: hard -"yup@npm:^0.32.11": - version: 0.32.11 - resolution: "yup@npm:0.32.11" +"yup@npm:^1.0.0": + version: 1.6.1 + resolution: "yup@npm:1.6.1" dependencies: - "@babel/runtime": ^7.15.4 - "@types/lodash": ^4.14.175 - lodash: ^4.17.21 - lodash-es: ^4.17.21 - nanoclone: ^0.2.1 - property-expr: ^2.0.4 + property-expr: ^2.0.5 + tiny-case: ^1.0.3 toposort: ^2.0.2 - checksum: 43a16786b47cc910fed4891cebdd89df6d6e31702e9462e8f969c73eac88551ce750732608012201ea6b93802c8847cb0aa27b5d57370640f4ecf30f9f97d4b0 + type-fest: ^2.19.0 + checksum: 4ef0b15eb01d89a4f15c78c112b588468d553420be6f2f519d0e58a270c96a5bbbf1bff7bc8909851ba8b3df5e1fdb8b34d4a3bd4e9269006c592b3e8580568f + languageName: node + linkType: hard + +"zen-observable@npm:^0.10.0": + version: 0.10.0 + resolution: "zen-observable@npm:0.10.0" + checksum: cee4e8902fcf4ed49f96937e9bc30b980ad3311b85e94b836c77f787163c98f19c65d2d8ac80990e8ecf4c1497d84821d58580d5ee20015f55516de146e8b7af + languageName: node + linkType: hard + +"zenscroll@npm:^4.0.2": + version: 4.0.2 + resolution: "zenscroll@npm:4.0.2" + checksum: 5fe5c8b685246985cbb8eb270bbbac013bddaf5cde0fb9042c7b5640e31877d11a28892a802426659fe505b0b514d4d004fedd27c0cc22682611cc8f9e43132e languageName: node linkType: hard @@ -24028,11 +36760,11 @@ __metadata: linkType: hard "zod-to-json-schema@npm:^3.20.4, zod-to-json-schema@npm:^3.21.4": - version: 3.23.5 - resolution: "zod-to-json-schema@npm:3.23.5" + version: 3.24.1 + resolution: "zod-to-json-schema@npm:3.24.1" peerDependencies: - zod: ^3.23.3 - checksum: 3ac37128d1b989b027e55684201e1da90237f0955dc9bb40da013bc60f2ed23c57026df2fdc14da187be4d53873daad08210807c28c0dde4375c9df0e5fe7901 + zod: ^3.24.1 + checksum: 7195563f611bc21ea7f44129b8e32780125a9bd98b2e6b8709ac98bd2645729fecd87b8aeeaa8789617ee3f38e6585bab23dd613e2a35c31c6c157908f7a1681 languageName: node linkType: hard @@ -24046,8 +36778,22 @@ __metadata: linkType: hard "zod@npm:^3.22.4": - version: 3.23.8 - resolution: "zod@npm:3.23.8" - checksum: 15949ff82118f59c893dacd9d3c766d02b6fa2e71cf474d5aa888570c469dbf5446ac5ad562bb035bf7ac9650da94f290655c194f4a6de3e766f43febd432c5c + version: 3.24.1 + resolution: "zod@npm:3.24.1" + checksum: dcd5334725b29555593c186fd6505878bb7ccb4f5954f728d2de24bf71f9397492d83bdb69d5b8a376eb500a02273ae0691b57deb1eb8718df3f64c77cc5534a + languageName: node + linkType: hard + +"zstd-codec@npm:^0.1.5": + version: 0.1.5 + resolution: "zstd-codec@npm:0.1.5" + checksum: ba62bf643c3ca9759fedc090b73a0c3b1e506364fcae902a70b112c1f5b30bc6aabff3184808cc4430f2ab6644cabae979368152ae908c1d8ef39cd8c3223c85 + languageName: node + linkType: hard + +"zwitch@npm:^2.0.0": + version: 2.0.4 + resolution: "zwitch@npm:2.0.4" + checksum: f22ec5fc2d5f02c423c93d35cdfa83573a3a3bd98c66b927c368ea4d0e7252a500df2a90a6b45522be536a96a73404393c958e945fdba95e6832c200791702b6 languageName: node linkType: hard